components:
  schemas:
    JsonValue: {}
    Problem:
      additionalProperties: true
      properties:
        code:
          type: string
        detail:
          type: string
        fieldErrors:
          items:
            additionalProperties: true
            properties:
              name:
                type: string
              reason:
                type: string
            required:
              - name
              - reason
            type: object
          type: array
        requestId:
          type: string
        status:
          type: integer
        title:
          type: string
        traceId:
          type: string
        type:
          format: uri
          type: string
      required:
        - type
        - title
        - status
        - code
        - detail
        - requestId
        - traceId
        - fieldErrors
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
externalDocs:
  description: Customer documentation
  url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/customer_website
info:
  description: Generated discovery contract for the live Platform3 master route. Domain field semantics remain owned by the linked data dictionary.
  title: Platform3 Content Alpha API
  version: 1.0.0
openapi: 3.1.0
paths:
  /:
    get:
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_63dae804
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      security: []
      summary: Read the API discovery descriptor
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /dev/mint:
    post:
      description: "Response contract: demo_token."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_dev_mint_b4e5fdf1
      parameters:
        - in: query
          name: tenantId
          required: false
          schema:
            type: string
      responses:
        "200": &a1
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a1
        "202": *a1
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      security: []
      summary: Mint a public demo JWT scoped to tenantId=demo.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/catalog-facets:
    get:
      description: "Response contract: page<content_catalog_facet>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_catalog_facets_f11ff308
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List the twelve named governed catalog discovery facets.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    post:
      description: "Request contract: content_catalog_facet.create. Response contract: content_catalog_facet."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_catalog_facets_c31ebaa5
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a2
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a2
        "202": *a2
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Create one of the twelve named governed catalog discovery facets in an unseeded tenant.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/exports/common-cartridge:
    post:
      description: "Request contract: common_cartridge_export.create. Response contract: common_cartridge_export."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_exports_common_cartridge_c50e88ee
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a3
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a3
        "202": *a3
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Generate a transport-only Common Cartridge or IMSCP package from Curriculum plus Content references.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/exports/common-cartridge/{exportId}/download:
    get:
      description: "Response contract: imscc bytes."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_exports_common_cartridge_exportId_download_36bd20b0
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: exportId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Download generated Common Cartridge transport bytes.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/imports/qti-package:
    post:
      description: "Graph-bearing package materialization runs inside one exclusive tenant fence before the fresh idempotency claim. A write may affect at most 1,024 active banks; each bank may contain at most 1,024 active members and 4,096 joined question/KC facts. Inclusive cap-plus-one rejection returns typed 409 with bank_members or form_graph and rolls back graph, item timestamp/ETag, and fresh ledger state. Retire or split before retry; completed HTTP replay is mutation- and budget-free after ledger arbitration. Request contract: application/zip. Response contract: qti_import."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_imports_qti_package_901034aa
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: header
          name: X-Content-Expected-Xp
          required: true
          schema:
            type: string
        - in: header
          name: X-Content-Subject-Id
          required: true
          schema:
            type: string
        - in: header
          name: X-Content-Target-Grade-Id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a4
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a4
        "202": *a4
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Import QTI package bytes through the approved QTI-backed path, materializing assessment items as questions, assessment tests as test forms, scoped answer keys/components, and referenced assessmentStimulus question anatomy.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/imports/timeback-production:
    post:
      description: "Graph-bearing records run inside one exclusive tenant fence before a fresh idempotency claim. A write may affect at most 1,024 active banks; each bank may contain at most 1,024 active members and 4,096 joined question/KC facts. The inclusive limits also cover revivals, cardinality-neutral upserts, and exact active repository replays. Cap plus one returns 409 content.invalid_test_bank_member_contract with fieldErrors bank_members or form_graph and rolls back graph, item timestamp/ETag, and fresh ledger state. Retire or split the graph before retrying; completed HTTP replay is mutation- and budget-free after ledger arbitration. Request contract: timeback_production_import.create. Response contract: timeback_production_import."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_imports_timeback_production_24b83c42
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a5
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a5
        "202": *a5
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Accept source-shaped TimeBack production content rows and normalize them server-side into flat Content assets.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items:
    get:
      description: "Response contract: page<content_item>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_d9e2933a
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: query
          name: accessibility_profile
          required: false
          schema:
            type: string
        - in: query
          name: alpha_subject_id
          required: false
          schema:
            type: string
        - in: query
          name: assessment_role
          required: false
          schema:
            type: string
        - in: query
          name: content_kind
          required: false
          schema:
            type: string
        - in: query
          name: curriculum_node_id
          required: false
          schema:
            type: string
        - in: query
          name: dok
          required: false
          schema:
            type: string
        - in: query
          name: expected_xp_band
          required: false
          schema:
            type: string
        - in: query
          name: facet
          required: false
          schema:
            type: string
        - in: query
          name: grade_band
          required: false
          schema:
            type: string
        - in: query
          name: is_mastery_gate
          required: false
          schema:
            type: boolean
        - in: query
          name: kc_refs
          required: false
          schema:
            type: string
        - in: query
          name: language
          required: false
          schema:
            type: string
        - in: query
          name: modality
          required: false
          schema:
            type: string
        - in: query
          name: modifiedSince
          required: false
          schema:
            type: string
        - in: query
          name: provenance
          required: false
          schema:
            type: string
        - in: query
          name: quality_rating
          required: false
          schema:
            type: string
        - in: query
          name: rights_license
          required: false
          schema:
            type: string
        - in: query
          name: source_activity_ref
          required: false
          schema:
            type: string
        - in: query
          name: source_record_id
          required: false
          schema:
            type: string
        - in: query
          name: source_system
          required: false
          schema:
            type: string
        - in: query
          name: standards_framework_refs
          required: false
          schema:
            type: string
        - in: query
          name: subject
          required: false
          schema:
            type: string
        - in: query
          name: subject_id
          required: false
          schema:
            type: string
        - in: query
          name: subtype
          required: false
          schema:
            type: string
        - in: query
          name: target_grade_id
          required: false
          schema:
            type: string
        - in: query
          name: test_type
          required: false
          schema:
            type: string
        - in: query
          name: usage_scope
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List student-touchable Content items with typed filters, catalog facet filters, and cursor paging.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    post:
      description: "Request contract: content_item.create. Response contract: content_item."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_items_f52b2d3f
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: header
          name: Authorization
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
        - in: header
          name: Idempotency-Key
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a6
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a6
        "202": *a6
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Create a non-QTI Content item; content_kind=test_spec atomically creates the complete seven-field blueprint sidecar and returns its native content_id.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}:
    get:
      description: "Response contract: content_item."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_f0a3eded
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read one Content item and its ETag.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    patch:
      description: "Request contract: content_item.patch. Response contract: content_item."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_PATCH_tenants_tenantId_alpha_content_items_contentId_5ada6a23
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Update editable Content metadata using If-Match.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/answer-keys:
    get:
      description: "Response contract: page<answer_key>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_answer_keys_e56d8761
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: query
          name: version_id
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List teacher-only answer keys for the latest effective grading version or an exact version_id. Requires read:answer_key and delegates to the QTI answer-key view; string text-entry keys stay in correct_response.values.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/answer-slots:
    get:
      description: "Response contract: page<answer_slot>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_answer_slots_6f4e1ad7
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: query
          name: includeAnswerKeys
          required: false
          schema:
            type: boolean
        - in: query
          name: version_id
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List blank answer slots for the latest effective grading version or an exact version_id, optionally with scoped answer keys.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/assessment-components:
    get:
      description: "Response contract: page<assessment_component>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_assessment_components_bd146b2e
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: query
          name: component_role
          required: false
          schema:
            type: string
        - in: query
          name: version_id
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List first-class QTI structure for the latest effective grading version or an exact version_id, including choice/text-entry/extended-text part rows, question refs, distractors, rubrics, and preauthored feedback.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/bank-members:
    get:
      description: "Validates every active bank_member row before selecting members pinned to the bank's latest exact version; malformed current or historical rows fail with a typed 409 instead of disappearing from the projection. The inclusive limits are 1,024 active members and 4,096 joined question/KC facts; cap-plus-one fails before row mapping and identifies bank_members or form_graph. Response contract: test_bank_members."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_bank_members_454ecc9d
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List test-bank forms with exact-form-version question-level canonical KC attribution and explicit readiness counts.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/blueprint:
    get:
      description: "Response contract: test_spec."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_blueprint_6638a8ef
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read the first-class test_spec blueprint sidecar.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/catalog-facets:
    get:
      description: "Response contract: page<content_catalog_facet_assignment>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_catalog_facets_9f7dfd45
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List sidecar catalog facet assignments for a Content item.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    post:
      description: "Request contract: content_catalog_facet_assignment.create. Response contract: content_catalog_facet_assignment."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_items_contentId_catalog_facets_918a80ee
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a7
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a7
        "202": *a7
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Assign a governed sidecar catalog facet value.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/curriculum-links:
    get:
      description: "Response contract: page<content_curriculum_link>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_curriculum_links_bca44dca
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read the frozen legacy Content-to-Curriculum link archive.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/effectiveness:
    get:
      description: "Response contract: content_effectiveness."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_effectiveness_75d9f0b0
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read derived content-effectiveness rollup; apps do not increment it.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/external-link:
    get:
      description: "Response contract: external_link."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_external_link_6059f22a
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read governed outside URL facts for content_kind=external_link.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    post:
      description: "Request contract: external_link.set. Response contract: external_link."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_items_contentId_external_link_54feebb6
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a8
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a8
        "202": *a8
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Set governed outside URL facts without storing secrets.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/interactive-composition:
    get:
      description: "Response contract: interactive_composition."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_interactive_composition_032073ce
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read Content-owned typed interactive article/video composition without parsing tb-* HTML.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    put:
      description: "Request contract: interactive_composition.replace. Response contract: interactive_composition."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_PUT_tenants_tenantId_alpha_content_items_contentId_interactive_composition_454eeda8
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Replace ordered article segment/question bindings or video cue/question bindings for one Content object.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/kc-tags:
    get:
      description: "Response contract: page<content_kc_tag>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_kc_tags_519785b4
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List canonical weighted links from one Content item to governed registry KCs.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    post:
      description: "The upsert, including cardinality-neutral replay or revival, runs inside one exclusive tenant graph fence. It may affect at most 1,024 active banks; each bank may contain at most 1,024 active members and 4,096 joined question/KC facts. Inclusive cap-plus-one returns typed 409 with bank_members or form_graph and leaves graph, item timestamp/ETag, and fresh ledger state unchanged. Retire or split the graph before retrying; completed HTTP replay is mutation- and budget-free after ledger arbitration. Request contract: content_kc_tag.upsert. Response contract: content_kc_tag."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_items_contentId_kc_tags_e256ee6e
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a9
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a9
        "202": *a9
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Create or replace a weighted Content-to-registry-KC relationship.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/kc-tags/{kcId}:
    delete:
      description: "Retirement is graph-bearing remediation and runs inside the same exclusive tenant fence. Each write may affect at most 1,024 active banks, with inclusive per-bank ceilings of 1,024 active members and 4,096 joined question/KC facts; typed 409 rejection names bank_members or form_graph and rolls back graph, timestamp/ETag, and fresh ledger state. Response contract: content_kc_tag."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_DELETE_tenants_tenantId_alpha_content_items_contentId_kc_tags_kcId_a0d6ae7a
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: path
          name: kcId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "204":
          description: Successful deletion
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Soft-retire one weighted Content-to-registry-KC relationship while retaining its evidence.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/media:
    get:
      description: "Response contract: page<media_asset>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_media_0585e863
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - description: Opaque cursor returned as nextCursor by the previous page.
          in: query
          name: cursor
          required: false
          schema:
            type: string
        - description: Maximum media assets to return.
          in: query
          name: limit
          required: false
          schema:
            default: 25
            maximum: 100
            minimum: 1
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List first-party media assets attached to one Content item.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    post:
      description: "For primary video/mp4, send the exact current version, declared duration, captions or transcript, and the closed immutable Incept source_asset {url,bucket,path,sha256,byte_length,media_type}. Content allowlists and fetches once with redirects disabled, public-address and resource bounds, verifies MP4 type/length/hash, stores the bytes, and strips the signed URL/token. Idempotency binds the stable descriptor and attachment semantics while excluding only the expiring URL, so a fresh signature can retry the same immutable target without duplicate media or completed-replay refetch. Generic JSON metadata or inline bytes cannot forge this path. Request contract: media_asset.create. Response contract: media_asset."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_items_contentId_media_a1d29760
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a10
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a10
        "202": *a10
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Attach media; primary Incept video uses the closed fetch-once source_asset contract and returns an authenticated first-party delivery_url.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/publish:
    post:
      description: "Request contract: content_publication.create. Response contract: content_publication."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_items_contentId_publish_972d94e5
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a11
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a11
        "202": *a11
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Publish one exact immutable test_spec, test_bank, article, or verified interactive video after server-owned kind checks; callers cannot set trust.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/references:
    get:
      description: "Response contract: page<content_reference>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_references_1ecac3d3
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List uniform references from one Content asset to other Content assets; Content references never nest payloads.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    post:
      description: "bank_member requires explicit exact parent and referenced version ids owned by their corresponding artifacts, a fixed-form assessment_role=bank parent, an assessment_role=form test target, an exact ordered embeds graph, and active canonical KC attribution for every embedded question. Omitted or explicit-null version ids fail closed and never resolve mutable latest pointers. Every active reference write uses the exclusive tenant graph fence and may affect at most 1,024 active banks; each affected bank may contain at most 1,024 active members and 4,096 joined question/KC facts. Inclusive cap-plus-one rejection returns typed 409, identifies bank_members or form_graph, and rolls back graph, item timestamp/ETag, and fresh ledger state. Retire or split before retry; completed HTTP replay is mutation- and budget-free after ledger arbitration. Request contract: content_reference.create. Response contract: content_reference."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_items_contentId_references_e0c71d45
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a12
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a12
        "202": *a12
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Create a typed reference from one Content asset to another Content asset.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/references/{referenceId}:
    delete:
      description: "Retirement runs inside the same tenant graph fence as creation and is the supported remediation for a graph at its inclusive 1,024-affected-bank, 1,024-member, or 4,096-joined-fact ceiling. Validation failure is a typed 409 with bank_members or form_graph and leaves the graph, item timestamp/ETag, and fresh ledger unchanged; completed HTTP replay remains mutation- and budget-free after ledger arbitration. Response contract: content_reference."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_DELETE_tenants_tenantId_alpha_content_items_contentId_references_referenceId_280485af
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: path
          name: referenceId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "204":
          description: Successful deletion
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Soft-retire a Content-to-Content reference without deleting the retained audit row.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/scoring-plan:
    get:
      description: "Response contract: page<scoring_plan>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_scoring_plan_41aa293b
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: query
          name: version_id
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read QTI scoring-plan provenance for the latest effective grading version or an exact version_id.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/student-view:
    get:
      description: "Response contract: student_view."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_student_view_7057b6dd
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: query
          name: includeAnswerKeys
          required: false
          schema:
            type: boolean
        - in: query
          name: version_id
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read the blank student-safe projection for the latest version or an immutable exact version_id; answer keys require includeAnswerKeys=true plus read:answer_key.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/trust:
    get:
      description: "Response contract: content_trust_evidence."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_trust_556100d5
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read safe trust and validation evidence.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/versions:
    get:
      description: "Response contract: page<content_version>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_versions_d2f6bfc2
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List append-only exact versions for one Content item, including immutable TimeBack source revisions and deployed legacy v1 history.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    post:
      description: "Request contract: content_version.create. Response contract: content_version."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_items_contentId_versions_9bfaaa0b
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a13
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a13
        "202": *a13
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Create an append-only student-view or authoring version; article bodies use student_view.blocks, while question canonical_xml atomically regenerates that version's QTI choices, answer slots, answer keys, and scoring projection.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/versions/{versionId}:
    get:
      description: "Response contract: content_version."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_versions_versionId_de98e881
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: path
          name: versionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read one immutable Content exact version, including historical TimeBack source revisions.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/versions/{versionId}/release-eligibility:
    get:
      description: "For test_bank content, validates the complete active fixed-form membership graph before returning the trust-derived release answer. Response contract: content_release_eligibility or typed Content Problem."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_versions_versionId_release_eligibil_7490db4c
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: path
          name: versionId
          required: true
          schema:
            type: string
        - in: query
          name: producer_surface
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Read Content's current fail-closed exact-version release answer for one governed producer surface.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentId}/versions/{versionId}/test-serve-eligibility:
    get:
      description: "Response contract: content_test_serve_eligibility or typed Content Problem."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentId_versions_versionId_test_serve_eligi_e9dcd858
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentId
          required: true
          schema:
            type: string
        - in: path
          name: versionId
          required: true
          schema:
            type: string
        - in: query
          name: producer_surface
          required: false
          schema:
            type: string
        - in: query
          name: test_identity_id
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Check the separately governed demo/test-cohort authority for one exact draft or untrusted bank/form version without changing ordinary release eligibility.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/items/{contentLocator}/media/{mediaLocator}:
    get:
      description: "Response contract: media bytes."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_items_contentLocator_media_mediaLocator_5e4e2e14
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: contentLocator
          required: true
          schema:
            type: string
        - in: path
          name: mediaLocator
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Fetch bytes for a media_asset.delivery_url value.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/policies:
    get:
      description: "Response contract: page<content_policy>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_policies_3ecbfa48
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List provisioned tenant policy rows. This read projection is not the runtime authority for the bundled source-adapter policy.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/test-serve-authorizations:
    post:
      description: "Request contract: content_test_serve_authorization.create. Response contract: content_test_serve_authorization."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_content_test_serve_authorizations_93e4306c
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a14
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a14
        "202": *a14
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Atomically revalidate one exact draft bank-to-form selection and append its immutable test-serve audit receipt.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/content/trust-status:
    get:
      description: "Response contract: page<content_trust_evidence>."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_content_trust_status_4c774138
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: List trust evidence rows by trust_status.
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/exports/common-cartridge:
    post:
      description: "Request contract: common_cartridge_export.create. Response contract: common_cartridge_export."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_POST_tenants_tenantId_alpha_exports_common_cartridge_7f009b42
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200": &a15
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        "201": *a15
        "202": *a15
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Generate a transport-only Common Cartridge or IMSCP package from Curriculum plus Content references. (compatibility alias)
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
  /tenants/{tenantId}/alpha/exports/common-cartridge/{exportId}/download:
    get:
      description: "Response contract: imscc bytes."
      externalDocs:
        description: Owning data dictionary
        url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
      operationId: content_alpha_GET_tenants_tenantId_alpha_exports_common_cartridge_exportId_download_bf9e5f5c
      parameters:
        - in: path
          name: tenantId
          required: true
          schema:
            type: string
        - in: path
          name: exportId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: Successful response
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
          description: Problem response
      summary: Download generated Common Cartridge transport bytes. (compatibility alias)
      tags:
        - Content
      x-data-dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
security:
  - bearerAuth: []
servers:
  - description: Platform3 master alias
    url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/implementation/api
tags:
  - externalDocs:
      description: Owning data dictionary
      url: https://platform3-andymontgomery-9773s-projects.vercel.app/content/alpha/data_dictionary
    name: Content
x-platform3-module: content
x-platform3-operation-count: 48
x-platform3-shipped-inventory-source: site/vercel.json
x-platform3-surface: alpha
