> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Commit a previewed feed revision (HITL)

> Atomically promote a signed PREVIEW baseline to a COMMITTED revision. The previewBaseline encodes the expected active_revision_id — if another commit advanced the head since the preview, this call returns 422 STALE_PREVIEW_BASELINE. Pass feedId, previewBaseline, and revision exactly as returned by POST /feed/preview or POST /feed/upload.



## OpenAPI

````yaml /v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/commit
openapi: 3.0.0
info:
  title: Scope3 Storefront API
  version: 2.0.0
  description: |-
    REST API for partners to manage storefronts, inventory sources, and billing.

    ## Authentication

    All endpoints require a Bearer token in the Authorization header:
    ```
    Authorization: Bearer your-api-key
    ```

    ## Base URL

    `https://api.interchange.io/api/v2/storefront`

    ## For AI Agents

    AI agents can use the MCP endpoint at `/mcp/v2/storefront` with three tools:
    - `initialize`: Start an MCP session
    - `api_call`: Make REST API calls
    - `ask_about_capability`: Learn about API features
servers:
  - url: https://api.interchange.io/api/v2/storefront
    description: Production server
security: []
tags:
  - name: Account
    description: Account management, service tokens, and preferences
  - name: Asks
    description: >-
      What you are waiting on Scope3 for — support, product, and supply asks in
      one list
  - name: Storefront
    description: Manage storefront and inventory sources
  - name: Storefront Agents
    description: List and manage registered sales, signals, and outcomes agents
  - name: Storefront Activity
    description: Audit log of configuration and inventory changes on the storefront
  - name: Storefront Billing
    description: Payout bank details and billing configuration for storefronts
  - name: AI Usage
    description: Storefront AI token usage visibility by model
  - name: MCP
    description: Model Context Protocol endpoints
paths:
  /inventory-sources/{sourceId}/feed/commit:
    post:
      tags:
        - Storefront
      summary: Commit a previewed feed revision (HITL)
      description: >-
        Atomically promote a signed PREVIEW baseline to a COMMITTED revision.
        The previewBaseline encodes the expected active_revision_id — if another
        commit advanced the head since the preview, this call returns 422
        STALE_PREVIEW_BASELINE. Pass feedId, previewBaseline, and revision
        exactly as returned by POST /feed/preview or POST /feed/upload.
      operationId: commitInventoryFeed
      parameters:
        - in: path
          name: sourceId
          schema:
            description: Inventory source ID
            type: string
            minLength: 1
          required: true
          description: Inventory source ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeedCommitBody'
      responses:
        '200':
          description: Commit a previewed feed revision (HITL)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedCommitResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            STALE_PREVIEW_BASELINE — the feed head advanced since the preview.
            Re-preview and re-commit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    FeedCommitBody:
      description: Request body for POST /inventory-sources/:sourceId/feed/commit.
      type: object
      properties:
        feedId:
          description: Feed id returned by the preview call.
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        previewBaseline:
          description: >-
            Signed baseline object returned by the preview call. Pass it back
            unchanged.
          type: object
          properties:
            previewToken:
              type: string
              minLength: 1
            revisionId:
              type: string
              minLength: 1
            customerId:
              type: integer
              maximum: 9007199254740991
              minimum: 1
            sourceId:
              type: string
              minLength: 1
            profileId:
              type: string
              minLength: 1
            profileVersion:
              type: string
              minLength: 1
            payloadDigest:
              type: string
              pattern: ^sha256:[a-f0-9]{64}$
            activeRevisionId:
              nullable: true
              type: string
              minLength: 1
            activeCursor:
              nullable: true
              type: string
              minLength: 1
            activeSnapshot:
              nullable: true
              type: string
              minLength: 1
            createdAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            expiresAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            staleErrorCode:
              type: string
              enum:
                - STALE_PREVIEW_BASELINE
          required:
            - previewToken
            - revisionId
            - customerId
            - sourceId
            - profileId
            - profileVersion
            - payloadDigest
            - activeRevisionId
            - activeCursor
            - activeSnapshot
            - createdAt
            - expiresAt
            - staleErrorCode
          additionalProperties: false
        revision:
          x-scope3-semantic-validation:
            vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
            canonicalValidator: InventoryFeedRevisionSchema
            constraints:
              - FACT_IDS_UNIQUE_WITHIN_SOURCE_REVISION
              - FACT_SOURCES_MATCH_REVISION_SOURCE
              - FULL_REPLACEMENT_IS_NOT_PARTIALLY_VALID
              - COMMITTED_FULL_REPLACEMENT_IS_NOT_EMPTY
              - INVALID_REVISION_CANNOT_COMMIT
            required: true
          description: >-
            Full revision object returned by the preview call. Pass it back
            unchanged.
          type: object
          properties:
            schemaVersion:
              type: string
              enum:
                - 1.0.0
            revisionId:
              type: string
              minLength: 1
            sourceId:
              type: string
              minLength: 1
            profileId:
              type: string
              minLength: 1
            profileVersion:
              type: string
              minLength: 1
            deliverySemantics:
              type: string
              enum:
                - FULL_REPLACEMENT
                - PATCH_UPSERT
            snapshot:
              type: string
              minLength: 1
            cursor:
              type: string
              minLength: 1
            observedThrough:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            coveredPeriod:
              x-scope3-semantic-validation:
                vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                canonicalValidator: InventoryPeriodSchema
                constraints:
                  - START_BEFORE_END
                required: true
              type: object
              properties:
                start:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                end:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              required:
                - start
                - end
              additionalProperties: false
            idempotencyKey:
              type: string
              minLength: 1
            contentDigest:
              type: string
              pattern: ^sha256:[a-f0-9]{64}$
            catalogRevision:
              type: string
              minLength: 1
            provenance:
              x-scope3-semantic-validation:
                vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                canonicalValidator: ProvenanceSchema
                constraints:
                  - FILE_REQUIRES_FILE_NAME
                  - ADAPTER_REQUIRES_ADAPTER_ID
                required: true
              type: object
              properties:
                actorType:
                  type: string
                  enum:
                    - API
                    - FILE
                    - HUMAN
                    - ADAPTER
                actorId:
                  type: string
                  minLength: 1
                adapterId:
                  type: string
                  minLength: 1
                fileName:
                  type: string
                  minLength: 1
                requestId:
                  type: string
                  minLength: 1
                submittedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                contentDigest:
                  type: string
                  pattern: ^sha256:[a-f0-9]{64}$
              required:
                - actorType
                - submittedAt
                - contentDigest
              additionalProperties: false
            correction:
              oneOf:
                - type: object
                  properties:
                    correctionId:
                      type: string
                      minLength: 1
                    targetType:
                      type: string
                      enum:
                        - REVISION
                    targetRevisionId:
                      type: string
                      minLength: 1
                    mode:
                      type: string
                      enum:
                        - REPLACEMENT
                    reason:
                      type: string
                      minLength: 1
                  required:
                    - correctionId
                    - targetType
                    - targetRevisionId
                    - mode
                    - reason
                  additionalProperties: false
                - type: object
                  properties:
                    correctionId:
                      type: string
                      minLength: 1
                    targetType:
                      type: string
                      enum:
                        - FACT
                    targetFactId:
                      type: string
                      minLength: 1
                    mode:
                      type: string
                      enum:
                        - REPLACEMENT
                        - PATCH
                    reason:
                      type: string
                      minLength: 1
                  required:
                    - correctionId
                    - targetType
                    - targetFactId
                    - mode
                    - reason
                  additionalProperties: false
              type: object
            facts:
              type: array
              items:
                x-scope3-semantic-validation:
                  vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                  canonicalValidator: AvailabilityFactSchema
                  constraints:
                    - SCOPE_SOURCE_MATCHES_FACT_SOURCE
                    - BOOKED_QUANTITY_UNIT_MATCHES_GROSS_UNIT
                    - EMBEDDED_BOOKED_QUANTITY_DOES_NOT_EXCEED_GROSS_CAPACITY
                    - GROSS_REQUIRES_BOOKED_QUANTITY_OR_TEMPORAL_FENCE
                    - UNPROVEN_TEMPORAL_JOIN_IS_NOT_RESERVABLE
                    - TEMPORAL_FENCE_MATCHES_ENCLOSING_FACT
                    - PRODUCT_FORMAT_REQUIRES_PRODUCT_SCOPE
                  required: true
                type: object
                properties:
                  factId:
                    type: string
                    minLength: 1
                  sourceId:
                    type: string
                    minLength: 1
                  scope:
                    x-scope3-semantic-validation:
                      vocabulary: >-
                        urn:scope3:inventory-feed-contracts:semantic-validation:v1
                      canonicalValidator: InventoryScopeRefSchema
                      constraints:
                        - CANONICAL_COLLECTION_MAPPING_REQUIRED
                        - EXACTLY_ONE_CANONICAL_COLLECTION_ID
                      required: true
                    anyOf:
                      - type: object
                        properties:
                          scopeType:
                            type: string
                            enum:
                              - component
                          sourceId:
                            type: string
                            minLength: 1
                          kind:
                            type: string
                            enum:
                              - placement
                              - ad_unit
                              - property
                          externalId:
                            type: string
                            minLength: 1
                        required:
                          - scopeType
                          - sourceId
                          - kind
                          - externalId
                        additionalProperties: false
                      - type: object
                        properties:
                          scopeType:
                            type: string
                            enum:
                              - component
                          sourceId:
                            type: string
                            minLength: 1
                          kind:
                            description: >-
                              Canonical AdCP content Collection only, such as a
                              series, publication, event series, or rotation.
                              Generic pools and seller groupings are not
                              Collections.
                            type: string
                            enum:
                              - collection
                          externalId:
                            type: string
                            minLength: 1
                          collectionSelector:
                            description: >-
                              Required mapping to exactly one Collection
                              declared by publisher_domain in adagents.json.
                            type: object
                            properties:
                              publisher_domain:
                                type: string
                                pattern: >-
                                  ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                              collection_ids:
                                type: array
                                items:
                                  type: string
                            required:
                              - publisher_domain
                              - collection_ids
                            additionalProperties: {}
                        required:
                          - scopeType
                          - sourceId
                          - kind
                          - externalId
                          - collectionSelector
                        additionalProperties: false
                      - type: object
                        properties:
                          scopeType:
                            type: string
                            enum:
                              - wholesale_product
                          sourceId:
                            type: string
                            minLength: 1
                          productId:
                            type: string
                            minLength: 1
                        required:
                          - scopeType
                          - sourceId
                          - productId
                        additionalProperties: false
                  dimensions:
                    default: {}
                    type: object
                    additionalProperties: {}
                  period:
                    x-scope3-semantic-validation:
                      vocabulary: >-
                        urn:scope3:inventory-feed-contracts:semantic-validation:v1
                      canonicalValidator: InventoryPeriodSchema
                      constraints:
                        - START_BEFORE_END
                      required: true
                    type: object
                    properties:
                      start:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      end:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    required:
                      - start
                      - end
                    additionalProperties: false
                  observedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  poolId:
                    type: string
                    minLength: 1
                  availability:
                    type: object
                    properties:
                      basis:
                        type: string
                        enum:
                          - NET_SELLABLE
                          - GROSS
                      quantity:
                        type: object
                        properties:
                          unit:
                            description: >-
                              Profile-permitted quantity unit. The target
                              profile allowlist remains pending.
                            type: string
                            minLength: 1
                          amount:
                            type: number
                            minimum: 0
                        required:
                          - unit
                          - amount
                        additionalProperties: false
                      upstreamBooked:
                        type: object
                        properties:
                          unit:
                            description: >-
                              Profile-permitted quantity unit. The target
                              profile allowlist remains pending.
                            type: string
                            minLength: 1
                          amount:
                            type: number
                            minimum: 0
                        required:
                          - unit
                          - amount
                        additionalProperties: false
                      temporalJoinFence:
                        x-scope3-semantic-validation:
                          vocabulary: >-
                            urn:scope3:inventory-feed-contracts:semantic-validation:v1
                          canonicalValidator: TemporalJoinFenceSchema
                          constraints:
                            - OBSERVED_SKEW_DERIVED_FROM_TIMESTAMPS
                            - MONOTONIC_EVIDENCE_REMAINS_UNPROVEN
                            - STATUS_MATCHES_SELECTED_PROOF
                            - UNPROVEN_REQUIRES_DIAGNOSTIC
                          required: true
                        type: object
                        properties:
                          grossFactId:
                            type: string
                            minLength: 1
                          bookingFactId:
                            type: string
                            minLength: 1
                          sourceId:
                            type: string
                            minLength: 1
                          poolId:
                            type: string
                            minLength: 1
                          unit:
                            type: string
                            minLength: 1
                          period:
                            x-scope3-semantic-validation:
                              vocabulary: >-
                                urn:scope3:inventory-feed-contracts:semantic-validation:v1
                              canonicalValidator: InventoryPeriodSchema
                              constraints:
                                - START_BEFORE_END
                              required: true
                            type: object
                            properties:
                              start:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              end:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            required:
                              - start
                              - end
                            additionalProperties: false
                          strategy:
                            type: string
                            enum:
                              - SAME_SNAPSHOT
                              - MONOTONIC_WITHIN_SKEW
                          grossSnapshot:
                            type: string
                            minLength: 1
                          bookingSnapshot:
                            type: string
                            minLength: 1
                          grossObservedThrough:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          bookingObservedThrough:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          observedSkewSeconds:
                            type: number
                            minimum: 0
                          status:
                            type: string
                            enum:
                              - PROVEN
                              - UNPROVEN
                          diagnosticCode:
                            type: string
                            minLength: 1
                        required:
                          - grossFactId
                          - bookingFactId
                          - sourceId
                          - poolId
                          - unit
                          - period
                          - strategy
                          - grossSnapshot
                          - bookingSnapshot
                          - grossObservedThrough
                          - bookingObservedThrough
                          - observedSkewSeconds
                          - status
                        additionalProperties: false
                      reservable:
                        type: boolean
                    required:
                      - basis
                      - quantity
                      - reservable
                    additionalProperties: false
                  pricingOptions:
                    default: []
                    type: array
                    items:
                      anyOf:
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - cpm
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                              minimum: 0
                            floor_price:
                              type: number
                              minimum: 0
                            max_bid:
                              type: boolean
                            price_guidance:
                              type: object
                              properties:
                                p25:
                                  type: number
                                  minimum: 0
                                p50:
                                  type: number
                                  minimum: 0
                                p75:
                                  type: number
                                  minimum: 0
                                p90:
                                  type: number
                                  minimum: 0
                              additionalProperties: {}
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - currency
                          additionalProperties: {}
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - vcpm
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                              minimum: 0
                            floor_price:
                              type: number
                              minimum: 0
                            max_bid:
                              type: boolean
                            price_guidance:
                              type: object
                              properties:
                                p25:
                                  type: number
                                  minimum: 0
                                p50:
                                  type: number
                                  minimum: 0
                                p75:
                                  type: number
                                  minimum: 0
                                p90:
                                  type: number
                                  minimum: 0
                              additionalProperties: {}
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - currency
                          additionalProperties: {}
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - cpc
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                              minimum: 0
                            floor_price:
                              type: number
                              minimum: 0
                            max_bid:
                              type: boolean
                            price_guidance:
                              type: object
                              properties:
                                p25:
                                  type: number
                                  minimum: 0
                                p50:
                                  type: number
                                  minimum: 0
                                p75:
                                  type: number
                                  minimum: 0
                                p90:
                                  type: number
                                  minimum: 0
                              additionalProperties: {}
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - currency
                          additionalProperties: {}
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - cpcv
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                              minimum: 0
                            floor_price:
                              type: number
                              minimum: 0
                            max_bid:
                              type: boolean
                            price_guidance:
                              type: object
                              properties:
                                p25:
                                  type: number
                                  minimum: 0
                                p50:
                                  type: number
                                  minimum: 0
                                p75:
                                  type: number
                                  minimum: 0
                                p90:
                                  type: number
                                  minimum: 0
                              additionalProperties: {}
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - currency
                          additionalProperties: {}
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - cpv
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                              minimum: 0
                            floor_price:
                              type: number
                              minimum: 0
                            max_bid:
                              type: boolean
                            price_guidance:
                              type: object
                              properties:
                                p25:
                                  type: number
                                  minimum: 0
                                p50:
                                  type: number
                                  minimum: 0
                                p75:
                                  type: number
                                  minimum: 0
                                p90:
                                  type: number
                                  minimum: 0
                              additionalProperties: {}
                            parameters:
                              type: object
                              properties:
                                view_threshold:
                                  anyOf:
                                    - type: number
                                    - type: object
                                      properties:
                                        duration_seconds:
                                          type: number
                                          minimum: 1
                                      required:
                                        - duration_seconds
                                      additionalProperties: {}
                              required:
                                - view_threshold
                              additionalProperties: {}
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - currency
                            - parameters
                          additionalProperties: {}
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - cpp
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                              minimum: 0
                            floor_price:
                              type: number
                              minimum: 0
                            price_guidance:
                              type: object
                              properties:
                                p25:
                                  type: number
                                  minimum: 0
                                p50:
                                  type: number
                                  minimum: 0
                                p75:
                                  type: number
                                  minimum: 0
                                p90:
                                  type: number
                                  minimum: 0
                              additionalProperties: {}
                            parameters:
                              type: object
                              properties:
                                demographic_system:
                                  anyOf:
                                    - type: string
                                      enum:
                                        - nielsen
                                    - type: string
                                      enum:
                                        - barb
                                    - type: string
                                      enum:
                                        - agf
                                    - type: string
                                      enum:
                                        - oztam
                                    - type: string
                                      enum:
                                        - mediametrie
                                    - type: string
                                      enum:
                                        - custom
                                demographic:
                                  type: string
                                min_points:
                                  type: number
                                  minimum: 0
                              required:
                                - demographic
                              additionalProperties: {}
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - currency
                            - parameters
                          additionalProperties: {}
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - cpa
                            event_type:
                              anyOf:
                                - type: string
                                  enum:
                                    - page_view
                                - type: string
                                  enum:
                                    - view_content
                                - type: string
                                  enum:
                                    - select_content
                                - type: string
                                  enum:
                                    - select_item
                                - type: string
                                  enum:
                                    - search
                                - type: string
                                  enum:
                                    - share
                                - type: string
                                  enum:
                                    - add_to_cart
                                - type: string
                                  enum:
                                    - remove_from_cart
                                - type: string
                                  enum:
                                    - viewed_cart
                                - type: string
                                  enum:
                                    - add_to_wishlist
                                - type: string
                                  enum:
                                    - initiate_checkout
                                - type: string
                                  enum:
                                    - add_payment_info
                                - type: string
                                  enum:
                                    - purchase
                                - type: string
                                  enum:
                                    - refund
                                - type: string
                                  enum:
                                    - lead
                                - type: string
                                  enum:
                                    - qualify_lead
                                - type: string
                                  enum:
                                    - close_convert_lead
                                - type: string
                                  enum:
                                    - disqualify_lead
                                - type: string
                                  enum:
                                    - complete_registration
                                - type: string
                                  enum:
                                    - subscribe
                                - type: string
                                  enum:
                                    - follow
                                - type: string
                                  enum:
                                    - content_view
                                - type: string
                                  enum:
                                    - watch_milestone
                                - type: string
                                  enum:
                                    - start_trial
                                - type: string
                                  enum:
                                    - app_install
                                - type: string
                                  enum:
                                    - app_launch
                                - type: string
                                  enum:
                                    - contact
                                - type: string
                                  enum:
                                    - schedule
                                - type: string
                                  enum:
                                    - donate
                                - type: string
                                  enum:
                                    - submit_application
                                - type: string
                                  enum:
                                    - custom
                            custom_event_name:
                              type: string
                            event_source_id:
                              type: string
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - event_type
                            - currency
                            - fixed_price
                          additionalProperties: {}
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - flat_rate
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                              minimum: 0
                            floor_price:
                              type: number
                              minimum: 0
                            price_guidance:
                              type: object
                              properties:
                                p25:
                                  type: number
                                  minimum: 0
                                p50:
                                  type: number
                                  minimum: 0
                                p75:
                                  type: number
                                  minimum: 0
                                p90:
                                  type: number
                                  minimum: 0
                              additionalProperties: {}
                            parameters:
                              type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - dooh
                                sov_percentage:
                                  type: number
                                  minimum: 0
                                  maximum: 100
                                loop_duration_seconds:
                                  type: number
                                  minimum: 1
                                min_plays_per_hour:
                                  type: number
                                  minimum: 1
                                venue_package:
                                  type: string
                                duration_hours:
                                  type: number
                                  minimum: 0
                                daypart:
                                  type: string
                                estimated_impressions:
                                  type: number
                                  minimum: 0
                              required:
                                - type
                              additionalProperties: {}
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - currency
                          additionalProperties: {}
                        - type: object
                          properties:
                            pricing_option_id:
                              type: string
                            pricing_model:
                              type: string
                              enum:
                                - time
                            currency:
                              type: string
                              pattern: ^[A-Z]{3}$
                            fixed_price:
                              type: number
                              minimum: 0
                            floor_price:
                              type: number
                              minimum: 0
                            price_guidance:
                              type: object
                              properties:
                                p25:
                                  type: number
                                  minimum: 0
                                p50:
                                  type: number
                                  minimum: 0
                                p75:
                                  type: number
                                  minimum: 0
                                p90:
                                  type: number
                                  minimum: 0
                              additionalProperties: {}
                            parameters:
                              type: object
                              properties:
                                time_unit:
                                  anyOf:
                                    - type: string
                                      enum:
                                        - hour
                                    - type: string
                                      enum:
                                        - day
                                    - type: string
                                      enum:
                                        - week
                                    - type: string
                                      enum:
                                        - month
                                min_duration:
                                  type: number
                                  minimum: 1
                                max_duration:
                                  type: number
                                  minimum: 1
                              required:
                                - time_unit
                              additionalProperties: {}
                            min_spend_per_package:
                              type: number
                              minimum: 0
                            price_breakdown:
                              type: object
                              properties:
                                list_price:
                                  type: number
                                adjustments:
                                  type: array
                                  items:
                                    type: object
                                    additionalProperties: {}
                              required:
                                - list_price
                                - adjustments
                              additionalProperties: {}
                            eligible_adjustments:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                    enum:
                                      - fee
                                  - type: string
                                    enum:
                                      - discount
                                  - type: string
                                    enum:
                                      - commission
                                  - type: string
                                    enum:
                                      - settlement
                          required:
                            - pricing_option_id
                            - pricing_model
                            - currency
                            - parameters
                          additionalProperties: {}
                  formatOptions:
                    default: []
                    type: array
                    items:
                      anyOf:
                        - type: object
                          properties:
                            scope:
                              type: string
                              enum:
                                - publisher
                            publisher_domain:
                              type: string
                              pattern: >-
                                ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                            format_option_id:
                              type: string
                          required:
                            - scope
                            - publisher_domain
                            - format_option_id
                          additionalProperties: {}
                        - type: object
                          properties:
                            scope:
                              type: string
                              enum:
                                - product
                            format_option_id:
                              type: string
                            publisher_domain:
                              not: {}
                          required:
                            - scope
                            - format_option_id
                          additionalProperties: {}
                  sourceMetadata:
                    default: {}
                    type: object
                    additionalProperties: {}
                  provenance:
                    x-scope3-semantic-validation:
                      vocabulary: >-
                        urn:scope3:inventory-feed-contracts:semantic-validation:v1
                      canonicalValidator: ProvenanceSchema
                      constraints:
                        - FILE_REQUIRES_FILE_NAME
                        - ADAPTER_REQUIRES_ADAPTER_ID
                      required: true
                    type: object
                    properties:
                      actorType:
                        type: string
                        enum:
                          - API
                          - FILE
                          - HUMAN
                          - ADAPTER
                      actorId:
                        type: string
                        minLength: 1
                      adapterId:
                        type: string
                        minLength: 1
                      fileName:
                        type: string
                        minLength: 1
                      requestId:
                        type: string
                        minLength: 1
                      submittedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      contentDigest:
                        type: string
                        pattern: ^sha256:[a-f0-9]{64}$
                    required:
                      - actorType
                      - submittedAt
                      - contentDigest
                    additionalProperties: false
                required:
                  - factId
                  - sourceId
                  - scope
                  - period
                  - observedAt
                  - poolId
                  - availability
                  - provenance
                additionalProperties: false
            diagnostics:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                    minLength: 1
                  severity:
                    type: string
                    enum:
                      - ERROR
                      - WARNING
                      - INFO
                  scope:
                    type: string
                    enum:
                      - REVISION
                      - ROW
                      - FACT
                  message:
                    type: string
                    minLength: 1
                  rowIndex:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  factId:
                    type: string
                    minLength: 1
                  field:
                    type: string
                    minLength: 1
                  details:
                    type: object
                    additionalProperties: {}
                required:
                  - code
                  - severity
                  - scope
                  - message
                additionalProperties: false
            validationStatus:
              type: string
              enum:
                - VALID
                - INVALID
                - PARTIALLY_VALID
            commitStatus:
              type: string
              enum:
                - PREVIEW
                - COMMITTED
                - REJECTED
          required:
            - schemaVersion
            - revisionId
            - sourceId
            - profileId
            - profileVersion
            - deliverySemantics
            - idempotencyKey
            - contentDigest
            - provenance
            - facts
            - diagnostics
            - validationStatus
            - commitStatus
          additionalProperties: false
      required:
        - feedId
        - previewBaseline
        - revision
    FeedCommitResponse:
      description: >-
        Response from POST /feed/commit. The revision is now COMMITTED and the
        feed head has advanced.
      type: object
      properties:
        feedId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        sourceId:
          type: string
        revision:
          $ref: '#/components/schemas/FeedRevisionEnvelope'
        revisionRecord:
          $ref: '#/components/schemas/FeedRevisionRecord'
      required:
        - feedId
        - sourceId
        - revision
        - revisionRecord
      additionalProperties: false
    ErrorResponse:
      description: Standard error response
      type: object
      properties:
        data:
          type: string
          nullable: true
          enum:
            - null
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - data
        - error
      additionalProperties: false
    FeedRevisionEnvelope:
      x-scope3-semantic-validation:
        vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
        canonicalValidator: InventoryFeedRevisionSchema
        constraints:
          - FACT_IDS_UNIQUE_WITHIN_SOURCE_REVISION
          - FACT_SOURCES_MATCH_REVISION_SOURCE
          - FULL_REPLACEMENT_IS_NOT_PARTIALLY_VALID
          - COMMITTED_FULL_REPLACEMENT_IS_NOT_EMPTY
          - INVALID_REVISION_CANNOT_COMMIT
        required: true
      description: >-
        Inventory feed revision envelope returned by preview, upload, commit,
        and push endpoints. Matches the InventoryFeedRevisionSchema contract.
      type: object
      properties:
        schemaVersion:
          type: string
          enum:
            - 1.0.0
        revisionId:
          type: string
          minLength: 1
        sourceId:
          type: string
          minLength: 1
        profileId:
          type: string
          minLength: 1
        profileVersion:
          type: string
          minLength: 1
        deliverySemantics:
          type: string
          enum:
            - FULL_REPLACEMENT
            - PATCH_UPSERT
        snapshot:
          type: string
          minLength: 1
        cursor:
          type: string
          minLength: 1
        observedThrough:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        coveredPeriod:
          x-scope3-semantic-validation:
            vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
            canonicalValidator: InventoryPeriodSchema
            constraints:
              - START_BEFORE_END
            required: true
          type: object
          properties:
            start:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            end:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - start
            - end
          additionalProperties: false
        idempotencyKey:
          type: string
          minLength: 1
        contentDigest:
          type: string
          pattern: ^sha256:[a-f0-9]{64}$
        catalogRevision:
          type: string
          minLength: 1
        provenance:
          x-scope3-semantic-validation:
            vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
            canonicalValidator: ProvenanceSchema
            constraints:
              - FILE_REQUIRES_FILE_NAME
              - ADAPTER_REQUIRES_ADAPTER_ID
            required: true
          type: object
          properties:
            actorType:
              type: string
              enum:
                - API
                - FILE
                - HUMAN
                - ADAPTER
            actorId:
              type: string
              minLength: 1
            adapterId:
              type: string
              minLength: 1
            fileName:
              type: string
              minLength: 1
            requestId:
              type: string
              minLength: 1
            submittedAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            contentDigest:
              type: string
              pattern: ^sha256:[a-f0-9]{64}$
          required:
            - actorType
            - submittedAt
            - contentDigest
          additionalProperties: false
        correction:
          oneOf:
            - type: object
              properties:
                correctionId:
                  type: string
                  minLength: 1
                targetType:
                  type: string
                  enum:
                    - REVISION
                targetRevisionId:
                  type: string
                  minLength: 1
                mode:
                  type: string
                  enum:
                    - REPLACEMENT
                reason:
                  type: string
                  minLength: 1
              required:
                - correctionId
                - targetType
                - targetRevisionId
                - mode
                - reason
              additionalProperties: false
            - type: object
              properties:
                correctionId:
                  type: string
                  minLength: 1
                targetType:
                  type: string
                  enum:
                    - FACT
                targetFactId:
                  type: string
                  minLength: 1
                mode:
                  type: string
                  enum:
                    - REPLACEMENT
                    - PATCH
                reason:
                  type: string
                  minLength: 1
              required:
                - correctionId
                - targetType
                - targetFactId
                - mode
                - reason
              additionalProperties: false
          type: object
        facts:
          type: array
          items:
            x-scope3-semantic-validation:
              vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
              canonicalValidator: AvailabilityFactSchema
              constraints:
                - SCOPE_SOURCE_MATCHES_FACT_SOURCE
                - BOOKED_QUANTITY_UNIT_MATCHES_GROSS_UNIT
                - EMBEDDED_BOOKED_QUANTITY_DOES_NOT_EXCEED_GROSS_CAPACITY
                - GROSS_REQUIRES_BOOKED_QUANTITY_OR_TEMPORAL_FENCE
                - UNPROVEN_TEMPORAL_JOIN_IS_NOT_RESERVABLE
                - TEMPORAL_FENCE_MATCHES_ENCLOSING_FACT
                - PRODUCT_FORMAT_REQUIRES_PRODUCT_SCOPE
              required: true
            type: object
            properties:
              factId:
                type: string
                minLength: 1
              sourceId:
                type: string
                minLength: 1
              scope:
                x-scope3-semantic-validation:
                  vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                  canonicalValidator: InventoryScopeRefSchema
                  constraints:
                    - CANONICAL_COLLECTION_MAPPING_REQUIRED
                    - EXACTLY_ONE_CANONICAL_COLLECTION_ID
                  required: true
                anyOf:
                  - type: object
                    properties:
                      scopeType:
                        type: string
                        enum:
                          - component
                      sourceId:
                        type: string
                        minLength: 1
                      kind:
                        type: string
                        enum:
                          - placement
                          - ad_unit
                          - property
                      externalId:
                        type: string
                        minLength: 1
                    required:
                      - scopeType
                      - sourceId
                      - kind
                      - externalId
                    additionalProperties: false
                  - type: object
                    properties:
                      scopeType:
                        type: string
                        enum:
                          - component
                      sourceId:
                        type: string
                        minLength: 1
                      kind:
                        description: >-
                          Canonical AdCP content Collection only, such as a
                          series, publication, event series, or rotation.
                          Generic pools and seller groupings are not
                          Collections.
                        type: string
                        enum:
                          - collection
                      externalId:
                        type: string
                        minLength: 1
                      collectionSelector:
                        description: >-
                          Required mapping to exactly one Collection declared by
                          publisher_domain in adagents.json.
                        type: object
                        properties:
                          publisher_domain:
                            type: string
                            pattern: >-
                              ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                          collection_ids:
                            type: array
                            items:
                              type: string
                        required:
                          - publisher_domain
                          - collection_ids
                        additionalProperties: {}
                    required:
                      - scopeType
                      - sourceId
                      - kind
                      - externalId
                      - collectionSelector
                    additionalProperties: false
                  - type: object
                    properties:
                      scopeType:
                        type: string
                        enum:
                          - wholesale_product
                      sourceId:
                        type: string
                        minLength: 1
                      productId:
                        type: string
                        minLength: 1
                    required:
                      - scopeType
                      - sourceId
                      - productId
                    additionalProperties: false
              dimensions:
                default: {}
                type: object
                additionalProperties: {}
              period:
                x-scope3-semantic-validation:
                  vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                  canonicalValidator: InventoryPeriodSchema
                  constraints:
                    - START_BEFORE_END
                  required: true
                type: object
                properties:
                  start:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  end:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - start
                  - end
                additionalProperties: false
              observedAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              poolId:
                type: string
                minLength: 1
              availability:
                type: object
                properties:
                  basis:
                    type: string
                    enum:
                      - NET_SELLABLE
                      - GROSS
                  quantity:
                    type: object
                    properties:
                      unit:
                        description: >-
                          Profile-permitted quantity unit. The target profile
                          allowlist remains pending.
                        type: string
                        minLength: 1
                      amount:
                        type: number
                        minimum: 0
                    required:
                      - unit
                      - amount
                    additionalProperties: false
                  upstreamBooked:
                    type: object
                    properties:
                      unit:
                        description: >-
                          Profile-permitted quantity unit. The target profile
                          allowlist remains pending.
                        type: string
                        minLength: 1
                      amount:
                        type: number
                        minimum: 0
                    required:
                      - unit
                      - amount
                    additionalProperties: false
                  temporalJoinFence:
                    x-scope3-semantic-validation:
                      vocabulary: >-
                        urn:scope3:inventory-feed-contracts:semantic-validation:v1
                      canonicalValidator: TemporalJoinFenceSchema
                      constraints:
                        - OBSERVED_SKEW_DERIVED_FROM_TIMESTAMPS
                        - MONOTONIC_EVIDENCE_REMAINS_UNPROVEN
                        - STATUS_MATCHES_SELECTED_PROOF
                        - UNPROVEN_REQUIRES_DIAGNOSTIC
                      required: true
                    type: object
                    properties:
                      grossFactId:
                        type: string
                        minLength: 1
                      bookingFactId:
                        type: string
                        minLength: 1
                      sourceId:
                        type: string
                        minLength: 1
                      poolId:
                        type: string
                        minLength: 1
                      unit:
                        type: string
                        minLength: 1
                      period:
                        x-scope3-semantic-validation:
                          vocabulary: >-
                            urn:scope3:inventory-feed-contracts:semantic-validation:v1
                          canonicalValidator: InventoryPeriodSchema
                          constraints:
                            - START_BEFORE_END
                          required: true
                        type: object
                        properties:
                          start:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          end:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        required:
                          - start
                          - end
                        additionalProperties: false
                      strategy:
                        type: string
                        enum:
                          - SAME_SNAPSHOT
                          - MONOTONIC_WITHIN_SKEW
                      grossSnapshot:
                        type: string
                        minLength: 1
                      bookingSnapshot:
                        type: string
                        minLength: 1
                      grossObservedThrough:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      bookingObservedThrough:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      observedSkewSeconds:
                        type: number
                        minimum: 0
                      status:
                        type: string
                        enum:
                          - PROVEN
                          - UNPROVEN
                      diagnosticCode:
                        type: string
                        minLength: 1
                    required:
                      - grossFactId
                      - bookingFactId
                      - sourceId
                      - poolId
                      - unit
                      - period
                      - strategy
                      - grossSnapshot
                      - bookingSnapshot
                      - grossObservedThrough
                      - bookingObservedThrough
                      - observedSkewSeconds
                      - status
                    additionalProperties: false
                  reservable:
                    type: boolean
                required:
                  - basis
                  - quantity
                  - reservable
                additionalProperties: false
              pricingOptions:
                default: []
                type: array
                items:
                  anyOf:
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpm
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - vcpm
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpc
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpcv
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpv
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        parameters:
                          type: object
                          properties:
                            view_threshold:
                              anyOf:
                                - type: number
                                - type: object
                                  properties:
                                    duration_seconds:
                                      type: number
                                      minimum: 1
                                  required:
                                    - duration_seconds
                                  additionalProperties: {}
                          required:
                            - view_threshold
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                        - parameters
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpp
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        parameters:
                          type: object
                          properties:
                            demographic_system:
                              anyOf:
                                - type: string
                                  enum:
                                    - nielsen
                                - type: string
                                  enum:
                                    - barb
                                - type: string
                                  enum:
                                    - agf
                                - type: string
                                  enum:
                                    - oztam
                                - type: string
                                  enum:
                                    - mediametrie
                                - type: string
                                  enum:
                                    - custom
                            demographic:
                              type: string
                            min_points:
                              type: number
                              minimum: 0
                          required:
                            - demographic
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                        - parameters
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpa
                        event_type:
                          anyOf:
                            - type: string
                              enum:
                                - page_view
                            - type: string
                              enum:
                                - view_content
                            - type: string
                              enum:
                                - select_content
                            - type: string
                              enum:
                                - select_item
                            - type: string
                              enum:
                                - search
                            - type: string
                              enum:
                                - share
                            - type: string
                              enum:
                                - add_to_cart
                            - type: string
                              enum:
                                - remove_from_cart
                            - type: string
                              enum:
                                - viewed_cart
                            - type: string
                              enum:
                                - add_to_wishlist
                            - type: string
                              enum:
                                - initiate_checkout
                            - type: string
                              enum:
                                - add_payment_info
                            - type: string
                              enum:
                                - purchase
                            - type: string
                              enum:
                                - refund
                            - type: string
                              enum:
                                - lead
                            - type: string
                              enum:
                                - qualify_lead
                            - type: string
                              enum:
                                - close_convert_lead
                            - type: string
                              enum:
                                - disqualify_lead
                            - type: string
                              enum:
                                - complete_registration
                            - type: string
                              enum:
                                - subscribe
                            - type: string
                              enum:
                                - follow
                            - type: string
                              enum:
                                - content_view
                            - type: string
                              enum:
                                - watch_milestone
                            - type: string
                              enum:
                                - start_trial
                            - type: string
                              enum:
                                - app_install
                            - type: string
                              enum:
                                - app_launch
                            - type: string
                              enum:
                                - contact
                            - type: string
                              enum:
                                - schedule
                            - type: string
                              enum:
                                - donate
                            - type: string
                              enum:
                                - submit_application
                            - type: string
                              enum:
                                - custom
                        custom_event_name:
                          type: string
                        event_source_id:
                          type: string
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - event_type
                        - currency
                        - fixed_price
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - flat_rate
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        parameters:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - dooh
                            sov_percentage:
                              type: number
                              minimum: 0
                              maximum: 100
                            loop_duration_seconds:
                              type: number
                              minimum: 1
                            min_plays_per_hour:
                              type: number
                              minimum: 1
                            venue_package:
                              type: string
                            duration_hours:
                              type: number
                              minimum: 0
                            daypart:
                              type: string
                            estimated_impressions:
                              type: number
                              minimum: 0
                          required:
                            - type
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - time
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        parameters:
                          type: object
                          properties:
                            time_unit:
                              anyOf:
                                - type: string
                                  enum:
                                    - hour
                                - type: string
                                  enum:
                                    - day
                                - type: string
                                  enum:
                                    - week
                                - type: string
                                  enum:
                                    - month
                            min_duration:
                              type: number
                              minimum: 1
                            max_duration:
                              type: number
                              minimum: 1
                          required:
                            - time_unit
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                        - parameters
                      additionalProperties: {}
              formatOptions:
                default: []
                type: array
                items:
                  anyOf:
                    - type: object
                      properties:
                        scope:
                          type: string
                          enum:
                            - publisher
                        publisher_domain:
                          type: string
                          pattern: >-
                            ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                        format_option_id:
                          type: string
                      required:
                        - scope
                        - publisher_domain
                        - format_option_id
                      additionalProperties: {}
                    - type: object
                      properties:
                        scope:
                          type: string
                          enum:
                            - product
                        format_option_id:
                          type: string
                        publisher_domain:
                          not: {}
                      required:
                        - scope
                        - format_option_id
                      additionalProperties: {}
              sourceMetadata:
                default: {}
                type: object
                additionalProperties: {}
              provenance:
                x-scope3-semantic-validation:
                  vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                  canonicalValidator: ProvenanceSchema
                  constraints:
                    - FILE_REQUIRES_FILE_NAME
                    - ADAPTER_REQUIRES_ADAPTER_ID
                  required: true
                type: object
                properties:
                  actorType:
                    type: string
                    enum:
                      - API
                      - FILE
                      - HUMAN
                      - ADAPTER
                  actorId:
                    type: string
                    minLength: 1
                  adapterId:
                    type: string
                    minLength: 1
                  fileName:
                    type: string
                    minLength: 1
                  requestId:
                    type: string
                    minLength: 1
                  submittedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  contentDigest:
                    type: string
                    pattern: ^sha256:[a-f0-9]{64}$
                required:
                  - actorType
                  - submittedAt
                  - contentDigest
                additionalProperties: false
            required:
              - factId
              - sourceId
              - scope
              - dimensions
              - period
              - observedAt
              - poolId
              - availability
              - pricingOptions
              - formatOptions
              - sourceMetadata
              - provenance
            additionalProperties: false
        diagnostics:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                minLength: 1
              severity:
                type: string
                enum:
                  - ERROR
                  - WARNING
                  - INFO
              scope:
                type: string
                enum:
                  - REVISION
                  - ROW
                  - FACT
              message:
                type: string
                minLength: 1
              rowIndex:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              factId:
                type: string
                minLength: 1
              field:
                type: string
                minLength: 1
              details:
                type: object
                additionalProperties: {}
            required:
              - code
              - severity
              - scope
              - message
            additionalProperties: false
        validationStatus:
          type: string
          enum:
            - VALID
            - INVALID
            - PARTIALLY_VALID
        commitStatus:
          type: string
          enum:
            - PREVIEW
            - COMMITTED
            - REJECTED
      required:
        - schemaVersion
        - revisionId
        - sourceId
        - profileId
        - profileVersion
        - deliverySemantics
        - idempotencyKey
        - contentDigest
        - provenance
        - facts
        - diagnostics
        - validationStatus
        - commitStatus
      additionalProperties: false
    FeedRevisionRecord:
      type: object
      properties:
        id:
          description: Surrogate row id of the revision record.
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        feedId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        revisionId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        idempotencyKey:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        contentDigest:
          description: SHA-256 content digest of the accepted facts.
          type: string
        validationStatus:
          type: string
          enum:
            - VALID
            - INVALID
            - PARTIALLY_VALID
        commitStatus:
          type: string
          enum:
            - PREVIEW
            - COMMITTED
            - REJECTED
        replayed:
          description: True if this row was returned from an idempotency cache hit.
          type: boolean
      required:
        - id
        - feedId
        - revisionId
        - idempotencyKey
        - contentDigest
        - validationStatus
        - commitStatus
        - replayed
      additionalProperties: false
    ApiError:
      description: Structured error object
      type: object
      properties:
        code:
          description: Machine-readable error code
          type: string
        message:
          description: Human-readable error message
          type: string
        field:
          description: Field path associated with the error
          type: string
        details:
          description: Additional error context
          type: object
          additionalProperties: {}
      required:
        - code
        - message
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````