components:
  schemas:
    CheckEligibilityRequest:
      additionalProperties: false
      properties:
        facts:
          additionalProperties:
            oneOf:
              - additionalProperties: false
                properties:
                  type:
                    const: "null"
                    type: string
                required:
                  - type
                type: object
              - additionalProperties: false
                properties:
                  type:
                    const: string
                    type: string
                  value:
                    type: string
                required:
                  - type
                  - value
                type: object
              - additionalProperties: false
                properties:
                  type:
                    const: number
                    type: string
                  value:
                    type: number
                required:
                  - type
                  - value
                type: object
              - additionalProperties: false
                properties:
                  type:
                    const: boolean
                    type: string
                  value:
                    type: boolean
                required:
                  - type
                  - value
                type: object
              - additionalProperties: false
                properties:
                  type:
                    const: date
                    type: string
                  value:
                    format: date
                    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])))$
                    type: string
                required:
                  - type
                  - value
                type: object
              - additionalProperties: false
                properties:
                  type:
                    const: string-set
                    type: string
                  values:
                    items:
                      type: string
                    type: array
                required:
                  - type
                  - values
                type: object
              - additionalProperties: false
                properties:
                  type:
                    const: number-set
                    type: string
                  values:
                    items:
                      type: number
                    type: array
                required:
                  - type
                  - values
                type: object
          propertyNames:
            pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
            type: string
          type: object
        offer_id:
          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
          type: string
      required:
        - offer_id
        - facts
      type: object
    CheckEligibilityResponse200:
      $defs:
        __schema0:
          anyOf:
            - additionalProperties: false
              properties:
                kind:
                  enum:
                    - all
                    - any
                  type: string
                outcome:
                  enum:
                    - met
                    - unmet
                    - unknown
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/CheckEligibilityResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - outcome
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                outcome:
                  enum:
                    - met
                    - unmet
                    - unknown
                  type: string
                rule:
                  $ref: "#/components/schemas/CheckEligibilityResponse200/$defs/__schema0"
              required:
                - kind
                - outcome
                - rule
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  enum:
                    - predicate
                    - manual
                    - constant
                  type: string
                outcome:
                  enum:
                    - met
                    - unmet
                    - unknown
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - outcome
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          additionalProperties: false
          properties:
            entity_id:
              pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
              type: string
            evaluation:
              additionalProperties: false
              properties:
                eligible:
                  anyOf:
                    - type: boolean
                    - type: "null"
                trace:
                  $ref: "#/components/schemas/CheckEligibilityResponse200/$defs/__schema0"
              required:
                - eligible
                - trace
              type: object
            lifecycle:
              enum:
                - active
                - ended
                - withdrawn
              type: string
            offer_id:
              pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
              type: string
            program_id:
              pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
              type: string
            revision_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
          required:
            - entity_id
            - program_id
            - offer_id
            - revision_digest
            - lifecycle
            - evaluation
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    CreateCatalogSubmissionRequest:
      additionalProperties: false
      properties:
        authoring_files:
          default: []
          items:
            additionalProperties: false
            properties:
              content:
                minLength: 1
                type: string
              path:
                pattern: ^vendors\/[a-z0-9]{2}\/[a-z0-9]+(?:-[a-z0-9]+)*\.ya?ml$
                type: string
            required:
              - path
              - content
            type: object
          type: array
        authority:
          oneOf:
            - additionalProperties: false
              properties:
                kind:
                  const: authenticated_form
                  type: string
              required:
                - kind
              type: object
            - additionalProperties: false
              properties:
                admission_artifact_digests:
                  default: []
                  items:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  type: array
                approval_digest:
                  anyOf:
                    - pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    - type: "null"
                command_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                grant_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                kind:
                  const: governed_ops
                  type: string
                run_receipt_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
              required:
                - kind
                - command_digest
                - grant_digest
                - approval_digest
                - run_receipt_digest
                - admission_artifact_digests
              type: object
        remove_entity_ids:
          default: []
          items:
            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
            type: string
          type: array
      required:
        - authoring_files
        - remove_entity_ids
        - authority
      type: object
    CreateCatalogSubmissionResponse202:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          additionalProperties: false
          properties:
            authentication_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            change_set_digest:
              anyOf:
                - pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                - type: "null"
            created_at:
              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)))$
              type: string
            ingress:
              enum:
                - authenticated_form
                - governed_ops
              type: string
            live_parent_release_id:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            payload_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            proposal_digest:
              anyOf:
                - pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                - type: "null"
            publication_release_id:
              anyOf:
                - pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                - type: "null"
            stages:
              items:
                additionalProperties: false
                properties:
                  diagnostics:
                    items:
                      additionalProperties: false
                      properties:
                        code:
                          pattern: ^[a-z0-9][a-z0-9_-]*$
                          type: string
                        message:
                          minLength: 1
                          type: string
                        path:
                          type: string
                        stage:
                          enum:
                            - validation
                            - evidence
                            - identity
                            - content
                            - readiness
                            - authorization
                            - publication
                            - readback
                          type: string
                      required:
                        - stage
                        - code
                        - message
                      type: object
                    type: array
                  stage:
                    enum:
                      - validation
                      - evidence
                      - identity
                      - content
                      - readiness
                      - authorization
                      - publication
                      - readback
                    type: string
                  status:
                    enum:
                      - pending
                      - passed
                      - failed
                      - not_required
                      - invalidated
                    type: string
                required:
                  - stage
                  - status
                  - diagnostics
                type: object
              type: array
            state:
              enum:
                - queued
                - active
                - awaiting_admission
                - awaiting_authorization
                - rejected
                - invalidated
                - published
              type: string
            submission_id:
              pattern: ^sub_[a-f0-9]{64}$
              type: string
            telemetry:
              additionalProperties: false
              properties:
                active_ms:
                  maximum: 9007199254740991
                  minimum: 0
                  type: integer
                cache_reuse:
                  additionalProperties: false
                  properties:
                    created:
                      maximum: 9007199254740991
                      minimum: 0
                      type: integer
                    reused:
                      maximum: 9007199254740991
                      minimum: 0
                      type: integer
                  required:
                    - reused
                    - created
                  type: object
                closure_cardinality:
                  maximum: 9007199254740991
                  minimum: 0
                  type: integer
                live_readback_ms:
                  anyOf:
                    - maximum: 9007199254740991
                      minimum: 0
                      type: integer
                    - type: "null"
                queued_ms:
                  maximum: 9007199254740991
                  minimum: 0
                  type: integer
                stages_invoked:
                  items:
                    enum:
                      - validation
                      - evidence
                      - identity
                      - content
                      - readiness
                      - authorization
                      - publication
                      - readback
                    type: string
                  type: array
              required:
                - queued_ms
                - active_ms
                - live_readback_ms
                - closure_cardinality
                - stages_invoked
                - cache_reuse
              type: object
            updated_at:
              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)))$
              type: string
          required:
            - submission_id
            - state
            - ingress
            - payload_digest
            - authentication_digest
            - proposal_digest
            - change_set_digest
            - live_parent_release_id
            - publication_release_id
            - stages
            - telemetry
            - created_at
            - updated_at
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetAgentReadinessOfferRelationResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          additionalProperties: false
          properties:
            admitted_offer_revision_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            agent_readiness_profile_id:
              pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
              type: string
            applicable_stages:
              items:
                enum:
                  - evaluate
                  - sign_up
                  - pay
                  - provision
                  - operate
                type: string
              minItems: 1
              type: array
            declaration_revision_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            effective_from:
              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)))$
              type: string
            effective_until:
              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)))$
              type: string
            offer_id:
              pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
              type: string
            offer_relation_proposal_id:
              pattern: ^[a-z0-9][a-z0-9_-]*$
              type: string
            purpose:
              enum:
                - application_path
                - redemption_path
                - operating_path
              type: string
            relation_contract:
              const: sourcey.agent-readiness-offer-relation/v1alpha1
              type: string
            relation_id:
              pattern: ^[a-z0-9][a-z0-9_-]*$
              type: string
            relation_revision_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
          required:
            - relation_contract
            - relation_id
            - agent_readiness_profile_id
            - offer_id
            - purpose
            - applicable_stages
            - effective_from
            - declaration_revision_digest
            - offer_relation_proposal_id
            - admitted_offer_revision_digest
            - relation_revision_digest
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetCaptureReceiptResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          additionalProperties: false
          properties:
            authority_entity_revision_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            authority_program_revision_digest:
              anyOf:
                - pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                - type: "null"
            base_release_id:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            capture:
              additionalProperties: false
              properties:
                availability:
                  enum:
                    - public
                    - restricted
                  type: string
                bytes:
                  exclusiveMinimum: 0
                  maximum: 9007199254740991
                  type: integer
                digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                final_url:
                  format: uri
                  type: string
                media_type:
                  minLength: 1
                  type: string
                method:
                  enum:
                    - http
                    - headless
                    - archive
                    - manual
                  type: string
                redirect_chain:
                  items:
                    additionalProperties: false
                    properties:
                      from:
                        format: uri
                        type: string
                      status:
                        anyOf:
                          - const: 301
                            type: number
                          - const: 302
                            type: number
                          - const: 303
                            type: number
                          - const: 307
                            type: number
                          - const: 308
                            type: number
                      to:
                        format: uri
                        type: string
                    required:
                      - status
                      - from
                      - to
                    type: object
                  maxItems: 5
                  type: array
                requested_url:
                  format: uri
                  type: string
                retrieved_at:
                  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)))$
                  type: string
                subject_source_url:
                  format: uri
                  type: string
              required:
                - subject_source_url
                - requested_url
                - final_url
                - redirect_chain
                - retrieved_at
                - method
                - media_type
                - digest
                - bytes
                - availability
              type: object
            capture_policy_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            issued_at:
              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)))$
              type: string
            issuer_id:
              pattern: ^[a-z0-9][a-z0-9_-]*$
              type: string
            job_id:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            operation_id:
              pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
              type: string
            protected:
              additionalProperties: false
              properties:
                algorithm:
                  const: ed25519
                  type: string
                key_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                signature:
                  minLength: 1
                  type: string
                signature_purpose:
                  enum:
                    - catalog-capture
                    - catalog-evidence
                    - catalog-identity
                    - catalog-authority
                    - catalog-attestation
                    - catalog-verification
                    - catalog-dispute
                    - catalog-policy
                    - catalog-release
                    - catalog-feed
                  type: string
                signer_registry_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
              required:
                - signature_purpose
                - signer_registry_digest
                - key_id
                - algorithm
                - signature
              type: object
            receipt_contract:
              const: sourcey.capture-receipt/v1alpha1
              type: string
            receipt_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            review_decision:
              additionalProperties: false
              properties:
                decided_at:
                  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)))$
                  type: string
                decision:
                  enum:
                    - approved
                    - rejected
                  type: string
                decision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                rationale:
                  anyOf:
                    - maxLength: 2000
                      minLength: 1
                      type: string
                    - type: "null"
                review_decision_contract:
                  const: sourcey.evidence-review-decision/v1alpha1
                  type: string
                review_proposal_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                reviewer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
              required:
                - review_decision_contract
                - review_proposal_digest
                - reviewer_id
                - decision
                - decided_at
                - rationale
                - decision_digest
              type: object
            subject:
              oneOf:
                - additionalProperties: false
                  properties:
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    subject_type:
                      const: entity
                      type: string
                  required:
                    - subject_type
                    - entity_id
                    - revision_digest
                  type: object
                - additionalProperties: false
                  properties:
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    subject_type:
                      const: program
                      type: string
                  required:
                    - subject_type
                    - entity_id
                    - program_id
                    - revision_digest
                  type: object
                - additionalProperties: false
                  properties:
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    subject_type:
                      const: offer
                      type: string
                  required:
                    - subject_type
                    - entity_id
                    - offer_id
                    - revision_digest
                  type: object
                - additionalProperties: false
                  properties:
                    agent_readiness_profile_id:
                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    subject_type:
                      const: agent_readiness_profile
                      type: string
                  required:
                    - subject_type
                    - entity_id
                    - agent_readiness_profile_id
                    - revision_digest
                  type: object
          required:
            - receipt_contract
            - issuer_id
            - operation_id
            - job_id
            - base_release_id
            - subject
            - authority_entity_revision_digest
            - authority_program_revision_digest
            - capture_policy_digest
            - review_decision
            - capture
            - issued_at
            - receipt_digest
            - protected
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetCatalogReleaseByIdResponse200:
      additionalProperties: false
      properties:
        admitted_input_digests:
          items:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
          minItems: 1
          type: array
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        bundle:
          additionalProperties: false
          properties:
            archive_url:
              format: uri
              type: string
            digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            verifier_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
          required:
            - digest
            - archive_url
            - verifier_digest
          type: object
        parent_release_id:
          anyOf:
            - pattern: ^sha256:[a-f0-9]{64}$
              type: string
            - type: "null"
        policy_as_of:
          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)))$
          type: string
        publication:
          additionalProperties: false
          properties:
            digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            published_at:
              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)))$
              type: string
          required:
            - digest
            - published_at
          type: object
        release_contract:
          const: sourcey.release-read/v1alpha1
          type: string
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        release_sequence:
          exclusiveMinimum: 0
          maximum: 9007199254740991
          type: integer
        resource_digests:
          additionalProperties:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
          propertyNames:
            pattern: ^[a-z0-9][a-z0-9_-]*$
            type: string
          type: object
        snapshot_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - release_contract
        - release_id
        - release_sequence
        - snapshot_id
        - parent_release_id
        - policy_as_of
        - artifact_sha256
        - admitted_input_digests
        - resource_digests
        - bundle
        - publication
      type: object
    GetCatalogReleaseResponse200:
      additionalProperties: false
      properties:
        admitted_input_digests:
          items:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
          minItems: 1
          type: array
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        bundle:
          additionalProperties: false
          properties:
            archive_url:
              format: uri
              type: string
            digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            verifier_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
          required:
            - digest
            - archive_url
            - verifier_digest
          type: object
        descriptor:
          additionalProperties: false
          properties:
            descriptor_contract:
              const: sourcey.release-descriptor/v1alpha1
              type: string
            release_core:
              additionalProperties: false
              properties:
                diff_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                parent_release_id:
                  anyOf:
                    - pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    - type: "null"
                release_contract:
                  const: sourcey.release-core/v1alpha1
                  type: string
                release_sequence:
                  exclusiveMinimum: 0
                  maximum: 9007199254740991
                  type: integer
                snapshot_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
              required:
                - release_contract
                - release_sequence
                - snapshot_id
                - parent_release_id
                - diff_digest
              type: object
            release_id:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            snapshot_core:
              additionalProperties: false
              properties:
                artifact_contract:
                  const: sourcey.canonical-artifact/v1alpha1
                  type: string
                artifact_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                compiler_version:
                  minLength: 1
                  type: string
                input_set_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                policy_as_of:
                  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)))$
                  type: string
                release_sequence:
                  exclusiveMinimum: 0
                  maximum: 9007199254740991
                  type: integer
                resource_digests:
                  additionalProperties:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  propertyNames:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  type: object
                root_set_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                signer_registry_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                snapshot_contract:
                  const: sourcey.snapshot-core/v1alpha1
                  type: string
                trust_transition_digest:
                  anyOf:
                    - pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    - type: "null"
              required:
                - snapshot_contract
                - release_sequence
                - compiler_version
                - artifact_contract
                - input_set_digest
                - artifact_digest
                - resource_digests
                - root_set_digest
                - signer_registry_digest
                - policy_as_of
              type: object
            snapshot_id:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
          required:
            - descriptor_contract
            - snapshot_core
            - snapshot_id
            - release_core
            - release_id
          type: object
        parent_release_id:
          anyOf:
            - pattern: ^sha256:[a-f0-9]{64}$
              type: string
            - type: "null"
        policy_as_of:
          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)))$
          type: string
        publication:
          additionalProperties: false
          properties:
            digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            published_at:
              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)))$
              type: string
          required:
            - digest
            - published_at
          type: object
        release_contract:
          const: sourcey.release-read/v1alpha1
          type: string
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        release_sequence:
          exclusiveMinimum: 0
          maximum: 9007199254740991
          type: integer
        resource_digests:
          additionalProperties:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
          propertyNames:
            pattern: ^[a-z0-9][a-z0-9_-]*$
            type: string
          type: object
        snapshot_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - release_contract
        - release_id
        - release_sequence
        - snapshot_id
        - parent_release_id
        - policy_as_of
        - artifact_sha256
        - admitted_input_digests
        - resource_digests
        - bundle
        - publication
        - descriptor
      type: object
    GetCatalogResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetCatalogResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetCatalogResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/GetCatalogResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          additionalProperties: false
          properties:
            artifact_contract:
              const: sourcey.canonical-artifact/v1alpha1
              type: string
            entities:
              items:
                additionalProperties: false
                properties:
                  category:
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    type: string
                  description:
                    minLength: 1
                    type: string
                  entity_id:
                    pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  name:
                    minLength: 1
                    type: string
                  offers:
                    items:
                      additionalProperties: false
                      properties:
                        access:
                          additionalProperties: false
                          properties:
                            availability:
                              enum:
                                - public
                                - referral
                                - membership
                                - invite
                                - automatic
                                - other
                              type: string
                            instructions:
                              maxLength: 1000
                              minLength: 1
                              type: string
                            method:
                              enum:
                                - form
                                - code
                                - contact
                                - automatic
                                - other
                              type: string
                            public_code:
                              maxLength: 200
                              minLength: 1
                              type: string
                            url:
                              format: uri
                              type: string
                          required:
                            - availability
                            - method
                          type: object
                        description:
                          minLength: 1
                          type: string
                        economics:
                          additionalProperties: false
                          properties:
                            benefits:
                              items:
                                oneOf:
                                  - additionalProperties: false
                                    properties:
                                      benefit_id:
                                        pattern: ^[a-z0-9][a-z0-9_-]*$
                                        type: string
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      duration:
                                        oneOf:
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: exact
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: up-to
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: at-least
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                      kind:
                                        const: credit
                                        type: string
                                      value:
                                        oneOf:
                                          - additionalProperties: false
                                            properties:
                                              amount:
                                                additionalProperties: false
                                                properties:
                                                  currency:
                                                    pattern: ^[A-Z]{3}$
                                                    type: string
                                                  minor_units:
                                                    maximum: 9007199254740991
                                                    minimum: 0
                                                    type: integer
                                                required:
                                                  - currency
                                                  - minor_units
                                                type: object
                                              kind:
                                                const: exact
                                                type: string
                                            required:
                                              - kind
                                              - amount
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              amount:
                                                additionalProperties: false
                                                properties:
                                                  currency:
                                                    pattern: ^[A-Z]{3}$
                                                    type: string
                                                  minor_units:
                                                    maximum: 9007199254740991
                                                    minimum: 0
                                                    type: integer
                                                required:
                                                  - currency
                                                  - minor_units
                                                type: object
                                              kind:
                                                const: up-to
                                                type: string
                                            required:
                                              - kind
                                              - amount
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              amount:
                                                additionalProperties: false
                                                properties:
                                                  currency:
                                                    pattern: ^[A-Z]{3}$
                                                    type: string
                                                  minor_units:
                                                    maximum: 9007199254740991
                                                    minimum: 0
                                                    type: integer
                                                required:
                                                  - currency
                                                  - minor_units
                                                type: object
                                              kind:
                                                const: at-least
                                                type: string
                                            required:
                                              - kind
                                              - amount
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: range
                                                type: string
                                              maximum:
                                                additionalProperties: false
                                                properties:
                                                  currency:
                                                    pattern: ^[A-Z]{3}$
                                                    type: string
                                                  minor_units:
                                                    maximum: 9007199254740991
                                                    minimum: 0
                                                    type: integer
                                                required:
                                                  - currency
                                                  - minor_units
                                                type: object
                                              minimum:
                                                additionalProperties: false
                                                properties:
                                                  currency:
                                                    pattern: ^[A-Z]{3}$
                                                    type: string
                                                  minor_units:
                                                    maximum: 9007199254740991
                                                    minimum: 0
                                                    type: integer
                                                required:
                                                  - currency
                                                  - minor_units
                                                type: object
                                            required:
                                              - kind
                                              - minimum
                                              - maximum
                                            type: object
                                    required:
                                      - benefit_id
                                      - description
                                      - kind
                                      - value
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      applies_to:
                                        maxLength: 240
                                        minLength: 1
                                        type: string
                                      benefit_id:
                                        pattern: ^[a-z0-9][a-z0-9_-]*$
                                        type: string
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      duration:
                                        oneOf:
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: exact
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: up-to
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: at-least
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                      kind:
                                        const: discount
                                        type: string
                                      percentage:
                                        oneOf:
                                          - additionalProperties: false
                                            properties:
                                              basis_points:
                                                maximum: 10000
                                                minimum: 1
                                                type: integer
                                              kind:
                                                const: exact
                                                type: string
                                            required:
                                              - kind
                                              - basis_points
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              basis_points:
                                                maximum: 10000
                                                minimum: 1
                                                type: integer
                                              kind:
                                                const: up-to
                                                type: string
                                            required:
                                              - kind
                                              - basis_points
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              basis_points:
                                                maximum: 10000
                                                minimum: 1
                                                type: integer
                                              kind:
                                                const: at-least
                                                type: string
                                            required:
                                              - kind
                                              - basis_points
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: range
                                                type: string
                                              maximum_basis_points:
                                                maximum: 10000
                                                minimum: 1
                                                type: integer
                                              minimum_basis_points:
                                                maximum: 10000
                                                minimum: 1
                                                type: integer
                                            required:
                                              - kind
                                              - minimum_basis_points
                                              - maximum_basis_points
                                            type: object
                                    required:
                                      - benefit_id
                                      - description
                                      - kind
                                      - percentage
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      benefit_id:
                                        pattern: ^[a-z0-9][a-z0-9_-]*$
                                        type: string
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      duration:
                                        oneOf:
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: exact
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: up-to
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: at-least
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                      kind:
                                        const: cashback
                                        type: string
                                      value:
                                        oneOf:
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: money
                                                type: string
                                              value:
                                                oneOf:
                                                  - additionalProperties: false
                                                    properties:
                                                      amount:
                                                        additionalProperties: false
                                                        properties:
                                                          currency:
                                                            pattern: ^[A-Z]{3}$
                                                            type: string
                                                          minor_units:
                                                            maximum: 9007199254740991
                                                            minimum: 0
                                                            type: integer
                                                        required:
                                                          - currency
                                                          - minor_units
                                                        type: object
                                                      kind:
                                                        const: exact
                                                        type: string
                                                    required:
                                                      - kind
                                                      - amount
                                                    type: object
                                                  - additionalProperties: false
                                                    properties:
                                                      amount:
                                                        additionalProperties: false
                                                        properties:
                                                          currency:
                                                            pattern: ^[A-Z]{3}$
                                                            type: string
                                                          minor_units:
                                                            maximum: 9007199254740991
                                                            minimum: 0
                                                            type: integer
                                                        required:
                                                          - currency
                                                          - minor_units
                                                        type: object
                                                      kind:
                                                        const: up-to
                                                        type: string
                                                    required:
                                                      - kind
                                                      - amount
                                                    type: object
                                                  - additionalProperties: false
                                                    properties:
                                                      amount:
                                                        additionalProperties: false
                                                        properties:
                                                          currency:
                                                            pattern: ^[A-Z]{3}$
                                                            type: string
                                                          minor_units:
                                                            maximum: 9007199254740991
                                                            minimum: 0
                                                            type: integer
                                                        required:
                                                          - currency
                                                          - minor_units
                                                        type: object
                                                      kind:
                                                        const: at-least
                                                        type: string
                                                    required:
                                                      - kind
                                                      - amount
                                                    type: object
                                                  - additionalProperties: false
                                                    properties:
                                                      kind:
                                                        const: range
                                                        type: string
                                                      maximum:
                                                        additionalProperties: false
                                                        properties:
                                                          currency:
                                                            pattern: ^[A-Z]{3}$
                                                            type: string
                                                          minor_units:
                                                            maximum: 9007199254740991
                                                            minimum: 0
                                                            type: integer
                                                        required:
                                                          - currency
                                                          - minor_units
                                                        type: object
                                                      minimum:
                                                        additionalProperties: false
                                                        properties:
                                                          currency:
                                                            pattern: ^[A-Z]{3}$
                                                            type: string
                                                          minor_units:
                                                            maximum: 9007199254740991
                                                            minimum: 0
                                                            type: integer
                                                        required:
                                                          - currency
                                                          - minor_units
                                                        type: object
                                                    required:
                                                      - kind
                                                      - minimum
                                                      - maximum
                                                    type: object
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: percentage
                                                type: string
                                              value:
                                                oneOf:
                                                  - additionalProperties: false
                                                    properties:
                                                      basis_points:
                                                        maximum: 10000
                                                        minimum: 1
                                                        type: integer
                                                      kind:
                                                        const: exact
                                                        type: string
                                                    required:
                                                      - kind
                                                      - basis_points
                                                    type: object
                                                  - additionalProperties: false
                                                    properties:
                                                      basis_points:
                                                        maximum: 10000
                                                        minimum: 1
                                                        type: integer
                                                      kind:
                                                        const: up-to
                                                        type: string
                                                    required:
                                                      - kind
                                                      - basis_points
                                                    type: object
                                                  - additionalProperties: false
                                                    properties:
                                                      basis_points:
                                                        maximum: 10000
                                                        minimum: 1
                                                        type: integer
                                                      kind:
                                                        const: at-least
                                                        type: string
                                                    required:
                                                      - kind
                                                      - basis_points
                                                    type: object
                                                  - additionalProperties: false
                                                    properties:
                                                      kind:
                                                        const: range
                                                        type: string
                                                      maximum_basis_points:
                                                        maximum: 10000
                                                        minimum: 1
                                                        type: integer
                                                      minimum_basis_points:
                                                        maximum: 10000
                                                        minimum: 1
                                                        type: integer
                                                    required:
                                                      - kind
                                                      - minimum_basis_points
                                                      - maximum_basis_points
                                                    type: object
                                            required:
                                              - kind
                                              - value
                                            type: object
                                    required:
                                      - benefit_id
                                      - description
                                      - kind
                                      - value
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      benefit_id:
                                        pattern: ^[a-z0-9][a-z0-9_-]*$
                                        type: string
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      kind:
                                        const: waiver
                                        type: string
                                      waived_item:
                                        maxLength: 240
                                        minLength: 1
                                        type: string
                                    required:
                                      - benefit_id
                                      - description
                                      - kind
                                      - waived_item
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      benefit_id:
                                        pattern: ^[a-z0-9][a-z0-9_-]*$
                                        type: string
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      duration:
                                        oneOf:
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: exact
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: up-to
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                          - additionalProperties: false
                                            properties:
                                              kind:
                                                const: at-least
                                                type: string
                                              value:
                                                pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                type: string
                                            required:
                                              - kind
                                              - value
                                            type: object
                                      kind:
                                        const: free-service
                                        type: string
                                      service:
                                        maxLength: 240
                                        minLength: 1
                                        type: string
                                    required:
                                      - benefit_id
                                      - description
                                      - kind
                                      - service
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      benefit_id:
                                        pattern: ^[a-z0-9][a-z0-9_-]*$
                                        type: string
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      kind:
                                        const: other
                                        type: string
                                    required:
                                      - benefit_id
                                      - description
                                      - kind
                                    type: object
                              minItems: 1
                              type: array
                            consideration:
                              oneOf:
                                - additionalProperties: false
                                  properties:
                                    kind:
                                      const: none
                                      type: string
                                  required:
                                    - kind
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    amount:
                                      additionalProperties: false
                                      properties:
                                        currency:
                                          pattern: ^[A-Z]{3}$
                                          type: string
                                        minor_units:
                                          maximum: 9007199254740991
                                          minimum: 0
                                          type: integer
                                      required:
                                        - currency
                                        - minor_units
                                      type: object
                                    kind:
                                      const: fixed
                                      type: string
                                  required:
                                    - kind
                                    - amount
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    kind:
                                      const: variable
                                      type: string
                                  required:
                                    - kind
                                    - description
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    kind:
                                      const: unknown
                                      type: string
                                  required:
                                    - kind
                                    - description
                                  type: object
                          required:
                            - consideration
                            - benefits
                          type: object
                        effective_from:
                          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)))$
                          type: string
                        effective_until:
                          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)))$
                          type: string
                        eligibility:
                          additionalProperties: false
                          properties:
                            rule:
                              $ref: "#/components/schemas/GetCatalogResponse200/$defs/__schema0"
                          required:
                            - rule
                          type: object
                        lifecycle:
                          enum:
                            - active
                            - ended
                            - withdrawn
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        provenance:
                          additionalProperties: false
                          properties:
                            attestation_event_id:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            basis_event_ids:
                              items:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              minItems: 1
                              type: array
                            coverage_policy_digest:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            dispute:
                              enum:
                                - none
                                - open
                                - resolved
                              type: string
                            fields:
                              items:
                                additionalProperties: false
                                properties:
                                  accepted_proof_kinds:
                                    items:
                                      enum:
                                        - observed
                                        - derived
                                        - editorial
                                      type: string
                                    minItems: 1
                                    type: array
                                  contradicting_event_ids:
                                    items:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                    type: array
                                  evidence_proof_kinds:
                                    items:
                                      enum:
                                        - observed
                                        - derived
                                        - editorial
                                      type: string
                                    type: array
                                  freshness:
                                    enum:
                                      - fresh
                                      - stale
                                      - unknown
                                    type: string
                                  latest_observation_at:
                                    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)))$
                                    type: string
                                  path:
                                    pattern: ^\/.*
                                    type: string
                                  supporting_event_ids:
                                    items:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                    type: array
                                required:
                                  - path
                                  - supporting_event_ids
                                  - contradicting_event_ids
                                  - accepted_proof_kinds
                                  - evidence_proof_kinds
                                  - freshness
                                type: object
                              minItems: 1
                              type: array
                            freshness:
                              enum:
                                - fresh
                                - stale
                                - unknown
                              type: string
                            freshness_policy_digest:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            tier:
                              enum:
                                - observed
                                - signed
                                - verified
                              type: string
                            verification_event_id:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                          required:
                            - tier
                            - freshness
                            - dispute
                            - coverage_policy_digest
                            - freshness_policy_digest
                            - basis_event_ids
                            - fields
                          type: object
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        roles:
                          additionalProperties: false
                          properties:
                            access_operator_entity_id:
                              pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                              type: string
                            terms_authority_entity_id:
                              pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                              type: string
                          required:
                            - terms_authority_entity_id
                            - access_operator_entity_id
                          type: object
                        slug:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        summary:
                          maxLength: 240
                          minLength: 1
                          type: string
                        terms_url:
                          format: uri
                          type: string
                        title:
                          minLength: 1
                          type: string
                      required:
                        - offer_id
                        - slug
                        - title
                        - summary
                        - economics
                        - eligibility
                        - roles
                        - access
                        - lifecycle
                        - effective_from
                        - revision_digest
                        - provenance
                      type: object
                    type: array
                  programs:
                    items:
                      additionalProperties: false
                      properties:
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        provenance:
                          additionalProperties: false
                          properties:
                            attestation_event_id:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            basis_event_ids:
                              items:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              minItems: 1
                              type: array
                            coverage_policy_digest:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            dispute:
                              enum:
                                - none
                                - open
                                - resolved
                              type: string
                            fields:
                              items:
                                additionalProperties: false
                                properties:
                                  accepted_proof_kinds:
                                    items:
                                      enum:
                                        - observed
                                        - derived
                                        - editorial
                                      type: string
                                    minItems: 1
                                    type: array
                                  contradicting_event_ids:
                                    items:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                    type: array
                                  evidence_proof_kinds:
                                    items:
                                      enum:
                                        - observed
                                        - derived
                                        - editorial
                                      type: string
                                    type: array
                                  freshness:
                                    enum:
                                      - fresh
                                      - stale
                                      - unknown
                                    type: string
                                  latest_observation_at:
                                    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)))$
                                    type: string
                                  path:
                                    pattern: ^\/.*
                                    type: string
                                  supporting_event_ids:
                                    items:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                    type: array
                                required:
                                  - path
                                  - supporting_event_ids
                                  - contradicting_event_ids
                                  - accepted_proof_kinds
                                  - evidence_proof_kinds
                                  - freshness
                                type: object
                              minItems: 1
                              type: array
                            freshness:
                              enum:
                                - fresh
                                - stale
                                - unknown
                              type: string
                            freshness_policy_digest:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            tier:
                              enum:
                                - observed
                                - signed
                                - verified
                              type: string
                            verification_event_id:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                          required:
                            - tier
                            - freshness
                            - dispute
                            - coverage_policy_digest
                            - freshness_policy_digest
                            - basis_event_ids
                            - fields
                          type: object
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        slug:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        summary:
                          maxLength: 240
                          minLength: 1
                          type: string
                        title:
                          minLength: 1
                          type: string
                      required:
                        - program_id
                        - slug
                        - title
                        - revision_digest
                        - provenance
                      type: object
                    type: array
                  provenance:
                    additionalProperties: false
                    properties:
                      attestation_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      basis_event_ids:
                        items:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        minItems: 1
                        type: array
                      coverage_policy_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      dispute:
                        enum:
                          - none
                          - open
                          - resolved
                        type: string
                      fields:
                        items:
                          additionalProperties: false
                          properties:
                            accepted_proof_kinds:
                              items:
                                enum:
                                  - observed
                                  - derived
                                  - editorial
                                type: string
                              minItems: 1
                              type: array
                            contradicting_event_ids:
                              items:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              type: array
                            evidence_proof_kinds:
                              items:
                                enum:
                                  - observed
                                  - derived
                                  - editorial
                                type: string
                              type: array
                            freshness:
                              enum:
                                - fresh
                                - stale
                                - unknown
                              type: string
                            latest_observation_at:
                              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)))$
                              type: string
                            path:
                              pattern: ^\/.*
                              type: string
                            supporting_event_ids:
                              items:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              type: array
                          required:
                            - path
                            - supporting_event_ids
                            - contradicting_event_ids
                            - accepted_proof_kinds
                            - evidence_proof_kinds
                            - freshness
                          type: object
                        minItems: 1
                        type: array
                      freshness:
                        enum:
                          - fresh
                          - stale
                          - unknown
                        type: string
                      freshness_policy_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      tier:
                        enum:
                          - observed
                          - signed
                          - verified
                        type: string
                      verification_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - tier
                      - freshness
                      - dispute
                      - coverage_policy_digest
                      - freshness_policy_digest
                      - basis_event_ids
                      - fields
                    type: object
                  revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  slug:
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    type: string
                  website:
                    format: uri
                    type: string
                required:
                  - entity_id
                  - slug
                  - name
                  - description
                  - website
                  - category
                  - revision_digest
                  - provenance
                  - programs
                  - offers
                type: object
              type: array
            policies:
              items:
                additionalProperties: false
                properties:
                  revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  schema_version:
                    const: sourcey.policy/v1alpha1
                    type: string
                  sections:
                    items:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            heading:
                              minLength: 1
                              type: string
                            kind:
                              const: prose
                              type: string
                            paragraphs:
                              items:
                                minLength: 1
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - kind
                            - paragraphs
                          type: object
                        - additionalProperties: false
                          properties:
                            clauses:
                              items:
                                additionalProperties: false
                                properties:
                                  body:
                                    minLength: 1
                                    type: string
                                  title:
                                    minLength: 1
                                    type: string
                                required:
                                  - title
                                  - body
                                type: object
                              minItems: 1
                              type: array
                            heading:
                              minLength: 1
                              type: string
                            kind:
                              const: clauses
                              type: string
                          required:
                            - kind
                            - clauses
                          type: object
                        - additionalProperties: false
                          properties:
                            definitions:
                              items:
                                additionalProperties: false
                                properties:
                                  detail:
                                    minLength: 1
                                    type: string
                                  term:
                                    minLength: 1
                                    type: string
                                required:
                                  - term
                                  - detail
                                type: object
                              minItems: 1
                              type: array
                            heading:
                              minLength: 1
                              type: string
                            kind:
                              const: definitions
                              type: string
                          required:
                            - kind
                            - definitions
                          type: object
                        - additionalProperties: false
                          properties:
                            heading:
                              minLength: 1
                              type: string
                            kind:
                              const: steps
                              type: string
                            steps:
                              items:
                                minLength: 1
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - kind
                            - steps
                          type: object
                    minItems: 1
                    type: array
                  slug:
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    type: string
                  summary:
                    minLength: 1
                    type: string
                  title:
                    minLength: 1
                    type: string
                required:
                  - schema_version
                  - slug
                  - title
                  - summary
                  - sections
                  - revision_digest
                type: object
              type: array
            policy_as_of:
              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)))$
              type: string
            policy_digests:
              additionalProperties:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              propertyNames:
                pattern: ^[a-z0-9][a-z0-9_-]*$
                type: string
              type: object
            root_set_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            signer_registry_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
          required:
            - artifact_contract
            - policy_as_of
            - root_set_digest
            - signer_registry_digest
            - policy_digests
            - policies
            - entities
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetCatalogStatusResponse200:
      additionalProperties: false
      properties:
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        service:
          const: sourcey-serving-worker
          type: string
        snapshot_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        status:
          const: ok
          type: string
      required:
        - status
        - service
        - release_id
        - snapshot_id
        - artifact_sha256
      type: object
    GetCatalogStatusResponse401:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        error:
          additionalProperties: false
          properties:
            capability:
              minLength: 1
              type: string
            code:
              enum:
                - authentication_required
                - capability_unavailable
                - idempotency_conflict
                - invalid_cursor
                - invalid_credential
                - invalid_credential_format
                - invalid_request
                - insufficient_scope
                - internal_error
                - method_not_allowed
                - not_found
                - rate_limited
                - service_unavailable
              type: string
            message:
              minLength: 1
              type: string
          required:
            - code
            - message
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - error
      type: object
    GetChangesResponse200:
      additionalProperties: false
      properties:
        data:
          items:
            additionalProperties: false
            properties:
              basis_event_ids:
                items:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                type: array
              change_id:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              kind:
                description: Append-only release change kind. Known values are examples; new kinds may appear within
                  public API v1.
                examples:
                  - entity.added
                  - entity.updated
                  - entity.retired
                  - program.added
                  - program.updated
                  - program.retired
                  - offer.added
                  - offer.updated
                  - offer.ended
                  - offer.retired
                  - offer.withdrawn
                  - policy.added
                  - policy.updated
                  - policy.retired
                  - agent-readiness.added
                  - agent-readiness.updated
                  - agent-readiness.regraded
                  - agent-readiness.ended
                  - agent-readiness.withdrawn
                  - asset.bound
                  - asset.updated
                  - asset.withdrawn
                pattern: ^[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+$
                type: string
                x-sourcey-extensible-enum: true
              previous_projection_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              previous_revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              projection_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              subject_id:
                anyOf:
                  - pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  - pattern: ^sha256:[a-f0-9]{64}$
                    type: string
              subject_type:
                enum:
                  - entity
                  - program
                  - offer
                  - policy
                  - agent_readiness_profile
                  - asset_binding
                type: string
              tombstone:
                additionalProperties: false
                properties:
                  canonical_route:
                    pattern: ^\/.*
                    type: string
                  reason:
                    enum:
                      - retired
                      - ended
                      - withdrawn
                    type: string
                required:
                  - reason
                type: object
            required:
              - change_id
              - kind
              - subject_type
              - subject_id
              - basis_event_ids
            type: object
          type: array
        diff_digest:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        feed_contract:
          const: sourcey.catalog-feed/v1alpha1
          type: string
        next_cursor:
          anyOf:
            - minLength: 1
              type: string
            - type: "null"
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        retained_from_release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        snapshot_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - feed_contract
        - release_id
        - snapshot_id
        - diff_digest
        - retained_from_release_id
        - data
        - next_cursor
      type: object
    GetEntityAgentReadinessProfileResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          anyOf:
            - additionalProperties: false
              properties:
                agent_readiness_profile_id:
                  pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                canonical_url:
                  format: uri
                  type: string
                catalog_binding:
                  additionalProperties: false
                  properties:
                    base_release_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    entity_revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - base_release_id
                    - entity_revision_digest
                  type: object
                coverage:
                  additionalProperties: false
                  properties:
                    covered_signals:
                      maximum: 9007199254740991
                      minimum: 0
                      type: integer
                    ratio:
                      maximum: 1
                      minimum: 0
                      type: number
                    required_signals:
                      maximum: 9007199254740991
                      minimum: 0
                      type: integer
                    status:
                      enum:
                        - complete
                        - partial
                        - insufficient
                      type: string
                  required:
                    - status
                    - required_signals
                    - covered_signals
                    - ratio
                  type: object
                declaration:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        status:
                          const: none
                          type: string
                      required:
                        - status
                      type: object
                    - additionalProperties: false
                      properties:
                        declaration_id:
                          pattern: ^[a-z0-9][a-z0-9_-]*$
                          type: string
                        provenance:
                          additionalProperties: false
                          properties:
                            blob_digest:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            commit:
                              pattern: ^[a-f0-9]{40,64}$
                              type: string
                            git_blob_oid:
                              pattern: ^[a-f0-9]{40,64}$
                              type: string
                            path:
                              pattern: ^vendors\/[a-z0-9]{1,2}\/[a-z0-9]+(?:-[a-z0-9]+)*\.yaml$
                              type: string
                            repository:
                              const: sourcey/agent-ready-services
                              type: string
                          required:
                            - repository
                            - commit
                            - path
                            - git_blob_oid
                            - blob_digest
                          type: object
                        status:
                          enum:
                            - community_declared
                            - vendor_declared
                          type: string
                      required:
                        - declaration_id
                        - provenance
                        - status
                      type: object
                declaration_revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                effective_from:
                  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)))$
                  type: string
                effective_until:
                  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)))$
                  type: string
                entity_id:
                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                first_autonomy_break:
                  additionalProperties: false
                  properties:
                    blocker:
                      additionalProperties: false
                      properties:
                        code:
                          maxLength: 160
                          minLength: 1
                          type: string
                        explanation:
                          maxLength: 500
                          minLength: 1
                          type: string
                        signal_code:
                          pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                          type: string
                      required:
                        - signal_code
                        - code
                        - explanation
                      type: object
                    finding:
                      additionalProperties: false
                      properties:
                        condition:
                          maxLength: 160
                          minLength: 1
                          type: string
                        finding:
                          maxLength: 280
                          minLength: 1
                          type: string
                        signal_code:
                          pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                          type: string
                      required:
                        - signal_code
                        - condition
                        - finding
                      type: object
                    public_state:
                      enum:
                        - limited
                        - blocked
                      type: string
                    stage:
                      enum:
                        - evaluate
                        - sign_up
                        - pay
                        - provision
                        - operate
                      type: string
                    stage_label:
                      maxLength: 40
                      minLength: 1
                      type: string
                  required:
                    - stage
                    - stage_label
                    - public_state
                    - finding
                  type: object
                freshness:
                  enum:
                    - fresh
                    - stale
                    - unknown
                  type: string
                grade:
                  enum:
                    - A+
                    - A
                    - B+
                    - B
                    - C+
                    - C
                    - D
                    - F
                    - unrated
                  type: string
                grade_derivation:
                  additionalProperties: false
                  properties:
                    coverage_rule:
                      maxLength: 280
                      minLength: 1
                      type: string
                    explanation:
                      maxLength: 500
                      minLength: 1
                      type: string
                    label:
                      maxLength: 80
                      minLength: 1
                      type: string
                    outcome_rule:
                      maxLength: 280
                      minLength: 1
                      type: string
                  required:
                    - label
                    - explanation
                    - coverage_rule
                    - outcome_rule
                  type: object
                last_tested_at:
                  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)))$
                  type: string
                lifecycle:
                  enum:
                    - active
                    - ended
                    - withdrawn
                  type: string
                overall_outcome:
                  enum:
                    - pass
                    - constrained
                    - fail
                    - unknown
                    - not_applicable
                  type: string
                policy_as_of:
                  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)))$
                  type: string
                policy_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                policy_version:
                  minLength: 1
                  type: string
                projection_contract:
                  const: sourcey.agent-readiness-projection/v1alpha1
                  type: string
                projection_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                provenance:
                  additionalProperties: false
                  properties:
                    attestation_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    basis_event_ids:
                      items:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      minItems: 1
                      type: array
                    coverage_policy_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    dispute:
                      enum:
                        - none
                        - open
                        - resolved
                      type: string
                    fields:
                      items:
                        additionalProperties: false
                        properties:
                          accepted_proof_kinds:
                            items:
                              enum:
                                - observed
                                - derived
                                - editorial
                              type: string
                            minItems: 1
                            type: array
                          contradicting_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            type: array
                          evidence_proof_kinds:
                            items:
                              enum:
                                - observed
                                - derived
                                - editorial
                              type: string
                            type: array
                          freshness:
                            enum:
                              - fresh
                              - stale
                              - unknown
                            type: string
                          latest_observation_at:
                            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)))$
                            type: string
                          path:
                            pattern: ^\/.*
                            type: string
                          supporting_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            type: array
                        required:
                          - path
                          - supporting_event_ids
                          - contradicting_event_ids
                          - accepted_proof_kinds
                          - evidence_proof_kinds
                          - freshness
                        type: object
                      minItems: 1
                      type: array
                    freshness:
                      enum:
                        - fresh
                        - stale
                        - unknown
                      type: string
                    freshness_policy_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    tier:
                      enum:
                        - observed
                        - signed
                        - verified
                      type: string
                    verification_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - tier
                    - freshness
                    - dispute
                    - coverage_policy_digest
                    - freshness_policy_digest
                    - basis_event_ids
                    - fields
                  type: object
                public_state:
                  enum:
                    - ready
                    - limited
                    - blocked
                    - unknown
                    - not_applicable
                  type: string
                publication:
                  additionalProperties: false
                  properties:
                    reasons:
                      items:
                        enum:
                          - lifecycle_not_active
                          - coverage_incomplete
                          - required_evidence_not_supported
                          - freshness_not_fresh
                          - unrated
                          - no_useful_finding
                          - open_dispute
                        type: string
                      type: array
                    visibility:
                      enum:
                        - discoverable
                        - resolvable_only
                        - private
                      type: string
                  required:
                    - visibility
                    - reasons
                  type: object
                revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                scope:
                  additionalProperties: false
                  properties:
                    funnel:
                      additionalProperties: false
                      properties:
                        key:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        name:
                          maxLength: 160
                          minLength: 1
                          type: string
                      required:
                        - key
                        - name
                      type: object
                    product:
                      additionalProperties: false
                      properties:
                        key:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        name:
                          maxLength: 160
                          minLength: 1
                          type: string
                      required:
                        - key
                        - name
                      type: object
                  required:
                    - product
                    - funnel
                  type: object
                stages:
                  items:
                    additionalProperties: false
                    properties:
                      blockers:
                        items:
                          additionalProperties: false
                          properties:
                            code:
                              maxLength: 160
                              minLength: 1
                              type: string
                            explanation:
                              maxLength: 500
                              minLength: 1
                              type: string
                            signal_code:
                              pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                              type: string
                          required:
                            - signal_code
                            - code
                            - explanation
                          type: object
                        type: array
                      outcome:
                        enum:
                          - pass
                          - constrained
                          - fail
                          - unknown
                          - not_applicable
                        type: string
                      primary_finding:
                        additionalProperties: false
                        properties:
                          condition:
                            maxLength: 160
                            minLength: 1
                            type: string
                          finding:
                            maxLength: 280
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - condition
                          - finding
                        type: object
                      public_state:
                        enum:
                          - ready
                          - limited
                          - blocked
                          - unknown
                          - not_applicable
                        type: string
                      remediations:
                        items:
                          additionalProperties: false
                          properties:
                            code:
                              maxLength: 160
                              minLength: 1
                              type: string
                            instruction:
                              maxLength: 500
                              minLength: 1
                              type: string
                            signal_code:
                              pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                              type: string
                          required:
                            - signal_code
                            - code
                            - instruction
                          type: object
                        type: array
                      secondary_context:
                        items:
                          additionalProperties: false
                          properties:
                            condition:
                              maxLength: 160
                              minLength: 1
                              type: string
                            finding:
                              maxLength: 280
                              minLength: 1
                              type: string
                            signal_code:
                              pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                              type: string
                          required:
                            - signal_code
                            - condition
                            - finding
                          type: object
                        type: array
                      signals:
                        items:
                          additionalProperties: false
                          properties:
                            assessment_method:
                              additionalProperties: false
                              properties:
                                method_digest:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                name:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                                version:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                              required:
                                - name
                                - version
                                - method_digest
                              type: object
                            blocker:
                              additionalProperties: false
                              properties:
                                code:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                                explanation:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                signal_code:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                              required:
                                - signal_code
                                - code
                                - explanation
                              type: object
                            condition:
                              maxLength: 160
                              minLength: 1
                              type: string
                            evaluation_role:
                              enum:
                                - graded
                                - informational
                              type: string
                            evidence_status:
                              enum:
                                - supported
                                - contradicted
                                - mixed
                                - missing
                              type: string
                            finding:
                              maxLength: 280
                              minLength: 1
                              type: string
                            freshness:
                              enum:
                                - fresh
                                - stale
                                - unknown
                              type: string
                            negative_coverage:
                              additionalProperties: false
                              properties:
                                covered_surfaces:
                                  items:
                                    additionalProperties: false
                                    properties:
                                      node_id:
                                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                        type: string
                                      node_kind:
                                        enum:
                                          - resource
                                          - endpoint
                                          - interface
                                        type: string
                                    required:
                                      - node_kind
                                      - node_id
                                    type: object
                                  minItems: 1
                                  type: array
                                kind:
                                  enum:
                                    - complete-response-inspection
                                    - complete-structured-resource-validation
                                    - bounded-rendered-flow-inspection
                                    - explicit-first-party-declaration
                                    - reviewed-manual-inspection
                                  type: string
                                scope:
                                  enum:
                                    - exact-resource
                                    - tested-surfaces
                                    - exact-funnel
                                  type: string
                              required:
                                - kind
                                - scope
                                - covered_surfaces
                              type: object
                            note:
                              maxLength: 500
                              minLength: 1
                              type: string
                            observed_at:
                              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)))$
                              type: string
                            outcome:
                              enum:
                                - pass
                                - constrained
                                - fail
                                - unknown
                                - not_applicable
                              type: string
                            public_state:
                              enum:
                                - ready
                                - limited
                                - blocked
                                - unknown
                                - not_applicable
                              type: string
                            remediation:
                              additionalProperties: false
                              properties:
                                code:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                                instruction:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                signal_code:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                              required:
                                - signal_code
                                - code
                                - instruction
                              type: object
                            required:
                              type: boolean
                            signal_code:
                              pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                              type: string
                            tested_surfaces:
                              items:
                                additionalProperties: false
                                properties:
                                  node_id:
                                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                    type: string
                                  node_kind:
                                    enum:
                                      - resource
                                      - endpoint
                                      - interface
                                    type: string
                                required:
                                  - node_kind
                                  - node_id
                                type: object
                              type: array
                            value:
                              enum:
                                - yes
                                - no
                                - partial
                                - unknown
                                - not_applicable
                              type: string
                            value_label:
                              maxLength: 40
                              minLength: 1
                              type: string
                          required:
                            - signal_code
                            - evaluation_role
                            - required
                            - value
                            - value_label
                            - outcome
                            - public_state
                            - condition
                            - finding
                            - evidence_status
                            - freshness
                            - tested_surfaces
                          type: object
                        type: array
                      stage:
                        enum:
                          - evaluate
                          - sign_up
                          - pay
                          - provision
                          - operate
                        type: string
                      stage_label:
                        maxLength: 40
                        minLength: 1
                        type: string
                      state_label:
                        maxLength: 40
                        minLength: 1
                        type: string
                    required:
                      - stage
                      - stage_label
                      - outcome
                      - public_state
                      - state_label
                      - primary_finding
                      - secondary_context
                      - signals
                      - blockers
                      - remediations
                    type: object
                  maxItems: 5
                  minItems: 5
                  type: array
                state_label:
                  maxLength: 40
                  minLength: 1
                  type: string
                surface_catalog:
                  additionalProperties: false
                  properties:
                    endpoints:
                      items:
                        additionalProperties: false
                        properties:
                          endpoint_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          operated_by_participant_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          roles:
                            items:
                              enum:
                                - service
                                - authorization
                                - token
                                - registration
                                - protected_resource
                                - checkout
                                - status
                                - recovery
                                - webhook
                              type: string
                            minItems: 1
                            type: array
                          standard_bindings:
                            items:
                              additionalProperties: false
                              properties:
                                namespace:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                                relation:
                                  enum:
                                    - declares
                                    - describes
                                    - implements
                                    - uses
                                  type: string
                                version:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                              required:
                                - namespace
                                - version
                                - relation
                              type: object
                            type: array
                          transport:
                            enum:
                              - http
                              - websocket
                              - grpc
                            type: string
                          uri:
                            format: uri
                            type: string
                        required:
                          - endpoint_id
                          - uri
                          - transport
                          - roles
                          - operated_by_participant_id
                          - standard_bindings
                        type: object
                      type: array
                    interfaces:
                      items:
                        additionalProperties: false
                        properties:
                          capabilities:
                            items:
                              enum:
                                - api
                                - tools
                                - agent
                                - authentication
                                - commerce
                                - events
                                - recovery
                              type: string
                            minItems: 1
                            type: array
                          endpoint_ids:
                            items:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            type: array
                          interface_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          operated_by_participant_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          resource_ids:
                            items:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            type: array
                          standard_bindings:
                            items:
                              additionalProperties: false
                              properties:
                                namespace:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                                relation:
                                  enum:
                                    - declares
                                    - describes
                                    - implements
                                    - uses
                                  type: string
                                version:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                              required:
                                - namespace
                                - version
                                - relation
                              type: object
                            type: array
                        required:
                          - interface_id
                          - capabilities
                          - endpoint_ids
                          - resource_ids
                          - operated_by_participant_id
                          - standard_bindings
                        type: object
                      type: array
                    participants:
                      items:
                        additionalProperties: false
                        properties:
                          identity:
                            anyOf:
                              - additionalProperties: false
                                properties:
                                  entity_id:
                                    pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                    type: string
                                required:
                                  - entity_id
                                type: object
                              - additionalProperties: false
                                properties:
                                  origin_source_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                required:
                                  - origin_source_id
                                type: object
                          participant_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          roles:
                            items:
                              enum:
                                - subject
                                - access_operator
                                - identity_provider
                                - payment_provider
                                - provisioning_provider
                                - operations_provider
                              type: string
                            minItems: 1
                            type: array
                        required:
                          - participant_id
                          - roles
                          - identity
                        type: object
                      type: array
                    relations:
                      items:
                        additionalProperties: false
                        properties:
                          from:
                            additionalProperties: false
                            properties:
                              node_id:
                                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                type: string
                              node_kind:
                                enum:
                                  - resource
                                  - endpoint
                                  - interface
                                type: string
                            required:
                              - node_kind
                              - node_id
                            type: object
                          kind:
                            enum:
                              - describes
                              - authenticates
                              - requires
                              - alternative_to
                              - precedes
                            type: string
                          relation_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          to:
                            additionalProperties: false
                            properties:
                              node_id:
                                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                type: string
                              node_kind:
                                enum:
                                  - resource
                                  - endpoint
                                  - interface
                                type: string
                            required:
                              - node_kind
                              - node_id
                            type: object
                        required:
                          - relation_id
                          - kind
                          - from
                          - to
                        type: object
                      type: array
                    resources:
                      items:
                        additionalProperties: false
                        properties:
                          operated_by_participant_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          resource_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          roles:
                            items:
                              enum:
                                - discovery
                                - terms
                                - eligibility
                                - pricing
                                - sign_up
                                - checkout
                                - provisioning
                                - operations
                                - recovery
                                - descriptor
                                - documentation
                                - policy
                                - status
                              type: string
                            minItems: 1
                            type: array
                          standard_bindings:
                            items:
                              additionalProperties: false
                              properties:
                                namespace:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                                relation:
                                  enum:
                                    - declares
                                    - describes
                                    - implements
                                    - uses
                                  type: string
                                version:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                              required:
                                - namespace
                                - version
                                - relation
                              type: object
                            type: array
                          uri:
                            format: uri
                            type: string
                        required:
                          - resource_id
                          - uri
                          - roles
                          - operated_by_participant_id
                          - standard_bindings
                        type: object
                      type: array
                  required:
                    - participants
                    - resources
                    - endpoints
                    - interfaces
                    - relations
                  type: object
              required:
                - projection_contract
                - agent_readiness_profile_id
                - entity_id
                - scope
                - catalog_binding
                - declaration_revision_digest
                - declaration
                - surface_catalog
                - lifecycle
                - effective_from
                - revision_digest
                - policy_digest
                - policy_version
                - policy_as_of
                - overall_outcome
                - public_state
                - state_label
                - grade
                - grade_derivation
                - publication
                - stages
                - coverage
                - last_tested_at
                - freshness
                - provenance
                - canonical_url
                - projection_digest
              type: object
            - oneOf:
                - additionalProperties: false
                  properties:
                    agent_readiness_profile_id:
                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    canonical_agent_readiness_profile_id:
                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    kind:
                      const: agent_readiness_profile_tombstone
                      type: string
                    transition:
                      const: merged
                      type: string
                  required:
                    - kind
                    - agent_readiness_profile_id
                    - transition
                    - canonical_agent_readiness_profile_id
                    - event_id
                  type: object
                - additionalProperties: false
                  properties:
                    agent_readiness_profile_id:
                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    kind:
                      const: agent_readiness_profile_tombstone
                      type: string
                    transition:
                      const: retired
                      type: string
                  required:
                    - kind
                    - agent_readiness_profile_id
                    - transition
                  type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetEntityResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetEntityResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetEntityResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/GetEntityResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          anyOf:
            - additionalProperties: false
              properties:
                category:
                  pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                  type: string
                description:
                  minLength: 1
                  type: string
                entity_id:
                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                name:
                  minLength: 1
                  type: string
                offers:
                  items:
                    additionalProperties: false
                    properties:
                      access:
                        additionalProperties: false
                        properties:
                          availability:
                            enum:
                              - public
                              - referral
                              - membership
                              - invite
                              - automatic
                              - other
                            type: string
                          instructions:
                            maxLength: 1000
                            minLength: 1
                            type: string
                          method:
                            enum:
                              - form
                              - code
                              - contact
                              - automatic
                              - other
                            type: string
                          public_code:
                            maxLength: 200
                            minLength: 1
                            type: string
                          url:
                            format: uri
                            type: string
                        required:
                          - availability
                          - method
                        type: object
                      description:
                        minLength: 1
                        type: string
                      economics:
                        additionalProperties: false
                        properties:
                          benefits:
                            items:
                              oneOf:
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: credit
                                      type: string
                                    value:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: exact
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: up-to
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: at-least
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: range
                                              type: string
                                            maximum:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            minimum:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                          required:
                                            - kind
                                            - minimum
                                            - maximum
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - value
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    applies_to:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: discount
                                      type: string
                                    percentage:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: exact
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: up-to
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: at-least
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: range
                                              type: string
                                            maximum_basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            minimum_basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                          required:
                                            - kind
                                            - minimum_basis_points
                                            - maximum_basis_points
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - percentage
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: cashback
                                      type: string
                                    value:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: money
                                              type: string
                                            value:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: exact
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: range
                                                      type: string
                                                    maximum:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    minimum:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                  required:
                                                    - kind
                                                    - minimum
                                                    - maximum
                                                  type: object
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: percentage
                                              type: string
                                            value:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: exact
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: range
                                                      type: string
                                                    maximum_basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    minimum_basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                  required:
                                                    - kind
                                                    - minimum_basis_points
                                                    - maximum_basis_points
                                                  type: object
                                          required:
                                            - kind
                                            - value
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - value
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    kind:
                                      const: waiver
                                      type: string
                                    waived_item:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - waived_item
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: free-service
                                      type: string
                                    service:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - service
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    kind:
                                      const: other
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                  type: object
                            minItems: 1
                            type: array
                          consideration:
                            oneOf:
                              - additionalProperties: false
                                properties:
                                  kind:
                                    const: none
                                    type: string
                                required:
                                  - kind
                                type: object
                              - additionalProperties: false
                                properties:
                                  amount:
                                    additionalProperties: false
                                    properties:
                                      currency:
                                        pattern: ^[A-Z]{3}$
                                        type: string
                                      minor_units:
                                        maximum: 9007199254740991
                                        minimum: 0
                                        type: integer
                                    required:
                                      - currency
                                      - minor_units
                                    type: object
                                  kind:
                                    const: fixed
                                    type: string
                                required:
                                  - kind
                                  - amount
                                type: object
                              - additionalProperties: false
                                properties:
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: variable
                                    type: string
                                required:
                                  - kind
                                  - description
                                type: object
                              - additionalProperties: false
                                properties:
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: unknown
                                    type: string
                                required:
                                  - kind
                                  - description
                                type: object
                        required:
                          - consideration
                          - benefits
                        type: object
                      effective_from:
                        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)))$
                        type: string
                      effective_until:
                        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)))$
                        type: string
                      eligibility:
                        additionalProperties: false
                        properties:
                          rule:
                            $ref: "#/components/schemas/GetEntityResponse200/$defs/__schema0"
                        required:
                          - rule
                        type: object
                      lifecycle:
                        enum:
                          - active
                          - ended
                          - withdrawn
                        type: string
                      offer_id:
                        pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      program_id:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      provenance:
                        additionalProperties: false
                        properties:
                          attestation_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          basis_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            minItems: 1
                            type: array
                          coverage_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          dispute:
                            enum:
                              - none
                              - open
                              - resolved
                            type: string
                          fields:
                            items:
                              additionalProperties: false
                              properties:
                                accepted_proof_kinds:
                                  items:
                                    enum:
                                      - observed
                                      - derived
                                      - editorial
                                    type: string
                                  minItems: 1
                                  type: array
                                contradicting_event_ids:
                                  items:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  type: array
                                evidence_proof_kinds:
                                  items:
                                    enum:
                                      - observed
                                      - derived
                                      - editorial
                                    type: string
                                  type: array
                                freshness:
                                  enum:
                                    - fresh
                                    - stale
                                    - unknown
                                  type: string
                                latest_observation_at:
                                  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)))$
                                  type: string
                                path:
                                  pattern: ^\/.*
                                  type: string
                                supporting_event_ids:
                                  items:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  type: array
                              required:
                                - path
                                - supporting_event_ids
                                - contradicting_event_ids
                                - accepted_proof_kinds
                                - evidence_proof_kinds
                                - freshness
                              type: object
                            minItems: 1
                            type: array
                          freshness:
                            enum:
                              - fresh
                              - stale
                              - unknown
                            type: string
                          freshness_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          tier:
                            enum:
                              - observed
                              - signed
                              - verified
                            type: string
                          verification_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - tier
                          - freshness
                          - dispute
                          - coverage_policy_digest
                          - freshness_policy_digest
                          - basis_event_ids
                          - fields
                        type: object
                      revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      roles:
                        additionalProperties: false
                        properties:
                          access_operator_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          terms_authority_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                        required:
                          - terms_authority_entity_id
                          - access_operator_entity_id
                        type: object
                      slug:
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                      summary:
                        maxLength: 240
                        minLength: 1
                        type: string
                      terms_url:
                        format: uri
                        type: string
                      title:
                        minLength: 1
                        type: string
                    required:
                      - offer_id
                      - slug
                      - title
                      - summary
                      - economics
                      - eligibility
                      - roles
                      - access
                      - lifecycle
                      - effective_from
                      - revision_digest
                      - provenance
                    type: object
                  type: array
                programs:
                  items:
                    additionalProperties: false
                    properties:
                      program_id:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      provenance:
                        additionalProperties: false
                        properties:
                          attestation_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          basis_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            minItems: 1
                            type: array
                          coverage_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          dispute:
                            enum:
                              - none
                              - open
                              - resolved
                            type: string
                          fields:
                            items:
                              additionalProperties: false
                              properties:
                                accepted_proof_kinds:
                                  items:
                                    enum:
                                      - observed
                                      - derived
                                      - editorial
                                    type: string
                                  minItems: 1
                                  type: array
                                contradicting_event_ids:
                                  items:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  type: array
                                evidence_proof_kinds:
                                  items:
                                    enum:
                                      - observed
                                      - derived
                                      - editorial
                                    type: string
                                  type: array
                                freshness:
                                  enum:
                                    - fresh
                                    - stale
                                    - unknown
                                  type: string
                                latest_observation_at:
                                  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)))$
                                  type: string
                                path:
                                  pattern: ^\/.*
                                  type: string
                                supporting_event_ids:
                                  items:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  type: array
                              required:
                                - path
                                - supporting_event_ids
                                - contradicting_event_ids
                                - accepted_proof_kinds
                                - evidence_proof_kinds
                                - freshness
                              type: object
                            minItems: 1
                            type: array
                          freshness:
                            enum:
                              - fresh
                              - stale
                              - unknown
                            type: string
                          freshness_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          tier:
                            enum:
                              - observed
                              - signed
                              - verified
                            type: string
                          verification_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - tier
                          - freshness
                          - dispute
                          - coverage_policy_digest
                          - freshness_policy_digest
                          - basis_event_ids
                          - fields
                        type: object
                      revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      slug:
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                      summary:
                        maxLength: 240
                        minLength: 1
                        type: string
                      title:
                        minLength: 1
                        type: string
                    required:
                      - program_id
                      - slug
                      - title
                      - revision_digest
                      - provenance
                    type: object
                  type: array
                provenance:
                  additionalProperties: false
                  properties:
                    attestation_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    basis_event_ids:
                      items:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      minItems: 1
                      type: array
                    coverage_policy_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    dispute:
                      enum:
                        - none
                        - open
                        - resolved
                      type: string
                    fields:
                      items:
                        additionalProperties: false
                        properties:
                          accepted_proof_kinds:
                            items:
                              enum:
                                - observed
                                - derived
                                - editorial
                              type: string
                            minItems: 1
                            type: array
                          contradicting_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            type: array
                          evidence_proof_kinds:
                            items:
                              enum:
                                - observed
                                - derived
                                - editorial
                              type: string
                            type: array
                          freshness:
                            enum:
                              - fresh
                              - stale
                              - unknown
                            type: string
                          latest_observation_at:
                            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)))$
                            type: string
                          path:
                            pattern: ^\/.*
                            type: string
                          supporting_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            type: array
                        required:
                          - path
                          - supporting_event_ids
                          - contradicting_event_ids
                          - accepted_proof_kinds
                          - evidence_proof_kinds
                          - freshness
                        type: object
                      minItems: 1
                      type: array
                    freshness:
                      enum:
                        - fresh
                        - stale
                        - unknown
                      type: string
                    freshness_policy_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    tier:
                      enum:
                        - observed
                        - signed
                        - verified
                      type: string
                    verification_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - tier
                    - freshness
                    - dispute
                    - coverage_policy_digest
                    - freshness_policy_digest
                    - basis_event_ids
                    - fields
                  type: object
                revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                slug:
                  pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                  type: string
                website:
                  format: uri
                  type: string
              required:
                - entity_id
                - slug
                - name
                - description
                - website
                - category
                - revision_digest
                - provenance
                - programs
                - offers
              type: object
            - oneOf:
                - additionalProperties: false
                  properties:
                    canonical_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    kind:
                      const: entity_tombstone
                      type: string
                    transition:
                      const: merged
                      type: string
                  required:
                    - kind
                    - entity_id
                    - transition
                    - canonical_entity_id
                    - event_id
                  type: object
                - additionalProperties: false
                  properties:
                    canonical_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    kind:
                      const: entity_tombstone
                      type: string
                    transition:
                      const: successor
                      type: string
                  required:
                    - kind
                    - entity_id
                    - transition
                    - canonical_entity_id
                    - event_id
                  type: object
                - additionalProperties: false
                  properties:
                    continuing_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    kind:
                      const: entity_tombstone
                      type: string
                    replacement_entity_ids:
                      items:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      minItems: 1
                      type: array
                    transition:
                      const: split
                      type: string
                  required:
                    - kind
                    - entity_id
                    - transition
                    - replacement_entity_ids
                    - event_id
                  type: object
                - additionalProperties: false
                  properties:
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    kind:
                      const: entity_tombstone
                      type: string
                    transition:
                      const: retired
                      type: string
                  required:
                    - kind
                    - entity_id
                    - transition
                  type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetEventResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          anyOf:
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: evidence.bound
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    assertions:
                      items:
                        additionalProperties: false
                        properties:
                          derivation_rule:
                            anyOf:
                              - enum:
                                  - contact-access-from-first-party-mailto
                                  - form-access-from-first-party-application
                                  - first-party-access-operator
                                  - public-availability-from-application
                                type: string
                              - type: "null"
                          locators:
                            items:
                              additionalProperties: false
                              properties:
                                end_byte:
                                  exclusiveMinimum: 0
                                  maximum: 9007199254740991
                                  type: integer
                                kind:
                                  const: utf8-range
                                  type: string
                                start_byte:
                                  maximum: 9007199254740991
                                  minimum: 0
                                  type: integer
                                value_digest:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                              required:
                                - kind
                                - start_byte
                                - end_byte
                                - value_digest
                              type: object
                            maxItems: 16
                            minItems: 1
                            type: array
                          path:
                            pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                            type: string
                          polarity:
                            enum:
                              - supports
                              - contradicts
                            type: string
                          proof_kind:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                        required:
                          - path
                          - polarity
                          - proof_kind
                          - derivation_rule
                          - locators
                        type: object
                      maxItems: 128
                      minItems: 1
                      type: array
                    authority_entity_revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    authority_program_revision_digest:
                      anyOf:
                        - pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        - type: "null"
                    binding_method:
                      minLength: 1
                      type: string
                    binding_version:
                      minLength: 1
                      type: string
                    capture_receipt_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    normalized_object_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    observation_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    paths:
                      items:
                        pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                        type: string
                      minItems: 1
                      type: array
                    polarity:
                      enum:
                        - supports
                        - contradicts
                      type: string
                  required:
                    - observation_id
                    - normalized_object_digest
                    - authority_entity_revision_digest
                    - authority_program_revision_digest
                    - assertions
                    - paths
                    - polarity
                    - binding_method
                    - binding_version
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: evidence.retracted
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    adjudication_evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    reason_code:
                      minLength: 1
                      type: string
                    replacement_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    target_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - target_event_id
                    - reason_code
                    - adjudication_evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: discrepancy.resolved
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    active_event_ids:
                      items:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      type: array
                    conflicting_event_ids:
                      items:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      minItems: 2
                      type: array
                    evidence_digests:
                      items:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      minItems: 1
                      type: array
                    outcome:
                      enum:
                        - support-prevails
                        - contradiction-prevails
                        - both-invalid
                        - new-revision-required
                      type: string
                    replacement_revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - conflicting_event_ids
                    - outcome
                    - active_event_ids
                    - evidence_digests
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: authority.claimed
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    authority_claim_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    authorized_issuer_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    controlled_domain:
                      minLength: 1
                      type: string
                    method:
                      description: Proof method identifier. Known values are examples; new methods may appear without
                        changing the event envelope.
                      examples:
                        - dns-txt
                        - domain-email
                        - well-known
                        - inbound-dkim
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                      x-sourcey-extensible-enum: true
                    proof_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    proven_at:
                      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)))$
                      type: string
                    recheck_due_at:
                      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)))$
                      type: string
                  required:
                    - authority_claim_id
                    - authorized_issuer_id
                    - controlled_domain
                    - method
                    - proof_digest
                    - proven_at
                    - recheck_due_at
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: authority.rechecked
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    authority_claim_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    checked_at:
                      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)))$
                      type: string
                    next_recheck_due_at:
                      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)))$
                      type: string
                  required:
                    - authority_claim_id
                    - checked_at
                    - next_recheck_due_at
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: authority.revoked
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    authority_claim_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    reason_code:
                      minLength: 1
                      type: string
                    revoked_at:
                      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)))$
                      type: string
                  required:
                    - authority_claim_id
                    - revoked_at
                    - reason_code
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: authority.superseded
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    new_authority_claim_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    old_authority_claim_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    superseded_at:
                      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)))$
                      type: string
                  required:
                    - old_authority_claim_id
                    - new_authority_claim_id
                    - superseded_at
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: subject.attested
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    attested_at:
                      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)))$
                      type: string
                    authority_claim_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                  required:
                    - authority_claim_id
                    - attested_at
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: attestation.revoked
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    authority_claim_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    reason_code:
                      minLength: 1
                      type: string
                    revoked_at:
                      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)))$
                      type: string
                    target_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - target_event_id
                    - authority_claim_id
                    - revoked_at
                    - reason_code
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: verification.completed
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    checked_at:
                      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)))$
                      type: string
                    coverage_policy_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    method_version:
                      minLength: 1
                      type: string
                    receipt_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    result:
                      enum:
                        - pass
                        - fail
                        - inconclusive
                      type: string
                    scope:
                      enum:
                        - whole-revision
                        - paths
                      type: string
                    verification_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    verified_paths:
                      items:
                        pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                        type: string
                      type: array
                    verifier_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                  required:
                    - verification_id
                    - verifier_id
                    - method_version
                    - scope
                    - verified_paths
                    - result
                    - receipt_digest
                    - checked_at
                    - coverage_policy_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: verification.revoked
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    reason_code:
                      minLength: 1
                      type: string
                    revoked_at:
                      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)))$
                      type: string
                    target_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - target_event_id
                    - revoked_at
                    - reason_code
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: freshness.exception-granted
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    paths:
                      items:
                        pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                        type: string
                      minItems: 1
                      type: array
                    reason_code:
                      minLength: 1
                      type: string
                    valid_until:
                      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)))$
                      type: string
                  required:
                    - paths
                    - valid_until
                    - reason_code
                    - evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: freshness.exception-revoked
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    reason_code:
                      minLength: 1
                      type: string
                    revoked_at:
                      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)))$
                      type: string
                    target_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - target_event_id
                    - revoked_at
                    - reason_code
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: dispute.opened
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    case_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    dispute_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    opened_at:
                      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)))$
                      type: string
                    public_reason_code:
                      minLength: 1
                      type: string
                  required:
                    - dispute_id
                    - opened_at
                    - public_reason_code
                    - case_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: dispute.resolved
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    case_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    dispute_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    opened_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    resolution_code:
                      minLength: 1
                      type: string
                    resolved_at:
                      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)))$
                      type: string
                  required:
                    - dispute_id
                    - opened_event_id
                    - resolved_at
                    - resolution_code
                    - case_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: asset.bound
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    approval_receipt_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    approval_scope:
                      minLength: 1
                      type: string
                    asset_object_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    authority_claim_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    effective_from:
                      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)))$
                      type: string
                    effective_until:
                      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)))$
                      type: string
                    license_basis:
                      minLength: 1
                      type: string
                    role:
                      enum:
                        - logo-light
                        - logo-dark
                        - icon
                      type: string
                    served_derivative_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    source_basis:
                      minLength: 1
                      type: string
                    superseded_binding_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - role
                    - asset_object_digest
                    - served_derivative_digest
                    - authority_claim_id
                    - approval_receipt_digest
                    - approval_scope
                    - source_basis
                    - license_basis
                    - effective_from
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: asset.withdrawn
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    effective_at:
                      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)))$
                      type: string
                    reason_code:
                      minLength: 1
                      type: string
                    target_binding_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - target_binding_event_id
                    - effective_at
                    - reason_code
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: asset.takedown-ordered
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    case_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    effective_at:
                      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)))$
                      type: string
                    public_reason_code:
                      minLength: 1
                      type: string
                    target_binding_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - target_binding_event_id
                    - effective_at
                    - public_reason_code
                    - case_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: entity.merged
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    disposition:
                      additionalProperties: false
                      properties:
                        agent_readiness_profiles:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              target_agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - agent_readiness_profile_id
                              - disposition
                            type: object
                          type: array
                        aliases:
                          default: []
                          items:
                            type: string
                          type: array
                        asset_bindings:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              binding_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              disposition:
                                enum:
                                  - rebind
                                  - end
                                type: string
                              replacement_binding_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                            required:
                              - binding_event_id
                              - disposition
                            type: object
                          type: array
                        offers:
                          items:
                            additionalProperties: false
                            properties:
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - offer_id
                              - disposition
                            type: object
                          type: array
                        programs:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - program_id
                              - disposition
                            type: object
                          type: array
                      required:
                        - aliases
                        - programs
                        - offers
                        - agent_readiness_profiles
                        - asset_bindings
                      type: object
                    effective_at:
                      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)))$
                      type: string
                    evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    reason:
                      minLength: 1
                      type: string
                    retired_entity_ids:
                      items:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      minItems: 1
                      type: array
                    surviving_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                  required:
                    - surviving_entity_id
                    - retired_entity_ids
                    - disposition
                    - effective_at
                    - reason
                    - evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: entity.split
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    continuing_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    disposition:
                      additionalProperties: false
                      properties:
                        agent_readiness_profiles:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              target_agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - agent_readiness_profile_id
                              - disposition
                            type: object
                          type: array
                        aliases:
                          default: []
                          items:
                            type: string
                          type: array
                        asset_bindings:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              binding_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              disposition:
                                enum:
                                  - rebind
                                  - end
                                type: string
                              replacement_binding_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                            required:
                              - binding_event_id
                              - disposition
                            type: object
                          type: array
                        offers:
                          items:
                            additionalProperties: false
                            properties:
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - offer_id
                              - disposition
                            type: object
                          type: array
                        programs:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - program_id
                              - disposition
                            type: object
                          type: array
                      required:
                        - aliases
                        - programs
                        - offers
                        - agent_readiness_profiles
                        - asset_bindings
                      type: object
                    effective_at:
                      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)))$
                      type: string
                    evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    new_entity_ids:
                      items:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      minItems: 1
                      type: array
                    original_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    reason:
                      minLength: 1
                      type: string
                  required:
                    - original_entity_id
                    - new_entity_ids
                    - disposition
                    - effective_at
                    - reason
                    - evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: entity.succeeded
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    disposition:
                      additionalProperties: false
                      properties:
                        agent_readiness_profiles:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              target_agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - agent_readiness_profile_id
                              - disposition
                            type: object
                          type: array
                        aliases:
                          default: []
                          items:
                            type: string
                          type: array
                        asset_bindings:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              binding_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              disposition:
                                enum:
                                  - rebind
                                  - end
                                type: string
                              replacement_binding_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                            required:
                              - binding_event_id
                              - disposition
                            type: object
                          type: array
                        offers:
                          items:
                            additionalProperties: false
                            properties:
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - offer_id
                              - disposition
                            type: object
                          type: array
                        programs:
                          default: []
                          items:
                            additionalProperties: false
                            properties:
                              disposition:
                                enum:
                                  - merge
                                  - reparent
                                  - end
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              target_program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - program_id
                              - disposition
                            type: object
                          type: array
                      required:
                        - aliases
                        - programs
                        - offers
                        - agent_readiness_profiles
                        - asset_bindings
                      type: object
                    effective_at:
                      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)))$
                      type: string
                    evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    predecessor_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    predecessor_retires:
                      type: boolean
                    relationship_code:
                      minLength: 1
                      type: string
                    successor_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                  required:
                    - predecessor_entity_id
                    - successor_entity_id
                    - relationship_code
                    - predecessor_retires
                    - effective_at
                    - evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: offer.merged
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    effective_at:
                      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)))$
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    reason:
                      minLength: 1
                      type: string
                    retired_offer_ids:
                      items:
                        pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      minItems: 1
                      type: array
                    surviving_offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                  required:
                    - surviving_offer_id
                    - retired_offer_ids
                    - entity_id
                    - effective_at
                    - reason
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: program.merged
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    effective_at:
                      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)))$
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    reason:
                      minLength: 1
                      type: string
                    retired_program_ids:
                      items:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      minItems: 1
                      type: array
                    surviving_program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                  required:
                    - surviving_program_id
                    - retired_program_ids
                    - entity_id
                    - effective_at
                    - reason
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: program.reparented
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    continuity_evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    new_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    old_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    valid_from:
                      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)))$
                      type: string
                    valid_until:
                      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)))$
                      type: string
                  required:
                    - program_id
                    - old_entity_id
                    - new_entity_id
                    - valid_from
                    - continuity_evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: offer.reparented
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    continuity_evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    new_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    old_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    valid_from:
                      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)))$
                      type: string
                    valid_until:
                      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)))$
                      type: string
                  required:
                    - offer_id
                    - old_entity_id
                    - new_entity_id
                    - valid_from
                    - continuity_evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: agent-readiness-profile.merged
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    continuity_evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    effective_at:
                      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)))$
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    reason:
                      minLength: 1
                      type: string
                    retired_agent_readiness_profile_ids:
                      items:
                        pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      minItems: 1
                      type: array
                    surviving_agent_readiness_profile_id:
                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                  required:
                    - surviving_agent_readiness_profile_id
                    - retired_agent_readiness_profile_ids
                    - entity_id
                    - effective_at
                    - continuity_evidence_digest
                    - reason
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: agent-readiness-profile.reparented
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    agent_readiness_profile_id:
                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    continuity_evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    new_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    old_entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    valid_from:
                      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)))$
                      type: string
                    valid_until:
                      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)))$
                      type: string
                  required:
                    - agent_readiness_profile_id
                    - old_entity_id
                    - new_entity_id
                    - valid_from
                    - continuity_evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: identity.transition-superseded
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    corrected_at:
                      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)))$
                      type: string
                    evidence_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    reason:
                      minLength: 1
                      type: string
                    replacement_event_ids:
                      items:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      minItems: 1
                      type: array
                    target_event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - target_event_id
                    - replacement_event_ids
                    - corrected_at
                    - reason
                    - evidence_digest
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
            - additionalProperties: false
              properties:
                event_contract:
                  const: sourcey.catalog-event/v1alpha1
                  type: string
                event_id:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                issuer_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: offer.retired
                  type: string
                occurred_at:
                  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)))$
                  type: string
                operation_id:
                  pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                payload:
                  additionalProperties: false
                  properties:
                    effective_at:
                      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)))$
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    reason_code:
                      minLength: 1
                      type: string
                  required:
                    - offer_id
                    - entity_id
                    - effective_at
                    - reason_code
                  type: object
                protected:
                  additionalProperties: false
                  properties:
                    algorithm:
                      const: ed25519
                      type: string
                    key_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    signature:
                      minLength: 1
                      type: string
                    signature_purpose:
                      enum:
                        - catalog-capture
                        - catalog-evidence
                        - catalog-identity
                        - catalog-authority
                        - catalog-attestation
                        - catalog-verification
                        - catalog-dispute
                        - catalog-policy
                        - catalog-release
                        - catalog-feed
                      type: string
                    signer_registry_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - signature_purpose
                    - signer_registry_digest
                    - key_id
                    - algorithm
                    - signature
                  type: object
                subject:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: entity
                          type: string
                      required:
                        - subject_type
                        - entity_id
                      type: object
                    - additionalProperties: false
                      properties:
                        agent_readiness_profile_id:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: agent_readiness_profile
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - agent_readiness_profile_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: program
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - program_id
                      type: object
                    - additionalProperties: false
                      properties:
                        entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        offer_id:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        program_id:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        revision_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        subject_type:
                          const: offer
                          type: string
                      required:
                        - subject_type
                        - entity_id
                        - offer_id
                      type: object
              required:
                - event_contract
                - kind
                - issuer_id
                - operation_id
                - subject
                - occurred_at
                - payload
                - event_id
                - protected
              type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetObservationResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          additionalProperties: false
          properties:
            capture:
              additionalProperties: false
              properties:
                availability:
                  enum:
                    - public
                    - private-receipt
                  type: string
                bytes:
                  maximum: 9007199254740991
                  minimum: 0
                  type: integer
                digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                final_uri:
                  format: uri
                  type: string
                media_type:
                  minLength: 1
                  type: string
                normalized_object:
                  additionalProperties: false
                  properties:
                    bytes:
                      maximum: 9007199254740991
                      minimum: 0
                      type: integer
                    digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    media_type:
                      const: text/plain; charset=utf-8
                      type: string
                    normalizer_contract:
                      const: sourcey.evidence-normalizer/v1alpha1
                      type: string
                    normalizer_id:
                      minLength: 1
                      type: string
                    toolchain_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    version:
                      minLength: 1
                      type: string
                  required:
                    - digest
                    - bytes
                    - media_type
                    - normalizer_contract
                    - normalizer_id
                    - version
                    - toolchain_digest
                  type: object
                redirect_chain:
                  items:
                    additionalProperties: false
                    properties:
                      from:
                        format: uri
                        type: string
                      status:
                        anyOf:
                          - const: 301
                            type: number
                          - const: 302
                            type: number
                          - const: 303
                            type: number
                          - const: 307
                            type: number
                          - const: 308
                            type: number
                      to:
                        format: uri
                        type: string
                    required:
                      - status
                      - from
                      - to
                    type: object
                  maxItems: 5
                  type: array
                requested_uri:
                  format: uri
                  type: string
                source_standing:
                  enum:
                    - live-first-party
                    - archived-first-party
                    - live-third-party
                    - archived-third-party
                    - manual-first-party
                    - manual-third-party
                  type: string
              required:
                - digest
                - bytes
                - media_type
                - availability
              type: object
            method:
              additionalProperties: false
              properties:
                name:
                  description: Capture adapter identifier. Known values are examples; new adapters may appear without
                    changing the observation envelope.
                  examples:
                    - fixture
                    - http
                    - headless
                    - archive
                    - manual
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                  x-sourcey-extensible-enum: true
                version:
                  minLength: 1
                  type: string
              required:
                - name
                - version
              type: object
            no_capture_reason:
              enum:
                - dns-failure
                - connect-timeout
                - tls-failure
                - access-denied
                - policy-blocked
                - empty-response
                - extractor-error
              type: string
            observation_contract:
              const: sourcey.observation/v1alpha1
              type: string
            observation_id:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            outcome:
              enum:
                - supports-candidate
                - contradicts-candidate
                - unreachable
                - error
              type: string
            retrieved_at:
              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)))$
              type: string
            source_id:
              pattern: ^[a-z0-9][a-z0-9_-]*$
              type: string
            source_uri:
              format: uri
              type: string
          required:
            - observation_contract
            - source_id
            - source_uri
            - retrieved_at
            - method
            - outcome
            - observation_id
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetOfferResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetOfferResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetOfferResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/GetOfferResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          anyOf:
            - additionalProperties: false
              properties:
                entity:
                  additionalProperties: false
                  properties:
                    category:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    description:
                      minLength: 1
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    name:
                      minLength: 1
                      type: string
                    offers:
                      items:
                        additionalProperties: false
                        properties:
                          access:
                            additionalProperties: false
                            properties:
                              availability:
                                enum:
                                  - public
                                  - referral
                                  - membership
                                  - invite
                                  - automatic
                                  - other
                                type: string
                              instructions:
                                maxLength: 1000
                                minLength: 1
                                type: string
                              method:
                                enum:
                                  - form
                                  - code
                                  - contact
                                  - automatic
                                  - other
                                type: string
                              public_code:
                                maxLength: 200
                                minLength: 1
                                type: string
                              url:
                                format: uri
                                type: string
                            required:
                              - availability
                              - method
                            type: object
                          description:
                            minLength: 1
                            type: string
                          economics:
                            additionalProperties: false
                            properties:
                              benefits:
                                items:
                                  oneOf:
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        duration:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: exact
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: up-to
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: at-least
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                        kind:
                                          const: credit
                                          type: string
                                        value:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                amount:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                                kind:
                                                  const: exact
                                                  type: string
                                              required:
                                                - kind
                                                - amount
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                amount:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                                kind:
                                                  const: up-to
                                                  type: string
                                              required:
                                                - kind
                                                - amount
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                amount:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                                kind:
                                                  const: at-least
                                                  type: string
                                              required:
                                                - kind
                                                - amount
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: range
                                                  type: string
                                                maximum:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                                minimum:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                              required:
                                                - kind
                                                - minimum
                                                - maximum
                                              type: object
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - value
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        applies_to:
                                          maxLength: 240
                                          minLength: 1
                                          type: string
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        duration:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: exact
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: up-to
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: at-least
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                        kind:
                                          const: discount
                                          type: string
                                        percentage:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                                kind:
                                                  const: exact
                                                  type: string
                                              required:
                                                - kind
                                                - basis_points
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                                kind:
                                                  const: up-to
                                                  type: string
                                              required:
                                                - kind
                                                - basis_points
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                                kind:
                                                  const: at-least
                                                  type: string
                                              required:
                                                - kind
                                                - basis_points
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: range
                                                  type: string
                                                maximum_basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                                minimum_basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                              required:
                                                - kind
                                                - minimum_basis_points
                                                - maximum_basis_points
                                              type: object
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - percentage
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        duration:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: exact
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: up-to
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: at-least
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                        kind:
                                          const: cashback
                                          type: string
                                        value:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: money
                                                  type: string
                                                value:
                                                  oneOf:
                                                    - additionalProperties: false
                                                      properties:
                                                        amount:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                        kind:
                                                          const: exact
                                                          type: string
                                                      required:
                                                        - kind
                                                        - amount
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        amount:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                        kind:
                                                          const: up-to
                                                          type: string
                                                      required:
                                                        - kind
                                                        - amount
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        amount:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                        kind:
                                                          const: at-least
                                                          type: string
                                                      required:
                                                        - kind
                                                        - amount
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        kind:
                                                          const: range
                                                          type: string
                                                        maximum:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                        minimum:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                      required:
                                                        - kind
                                                        - minimum
                                                        - maximum
                                                      type: object
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: percentage
                                                  type: string
                                                value:
                                                  oneOf:
                                                    - additionalProperties: false
                                                      properties:
                                                        basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                        kind:
                                                          const: exact
                                                          type: string
                                                      required:
                                                        - kind
                                                        - basis_points
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                        kind:
                                                          const: up-to
                                                          type: string
                                                      required:
                                                        - kind
                                                        - basis_points
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                        kind:
                                                          const: at-least
                                                          type: string
                                                      required:
                                                        - kind
                                                        - basis_points
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        kind:
                                                          const: range
                                                          type: string
                                                        maximum_basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                        minimum_basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                      required:
                                                        - kind
                                                        - minimum_basis_points
                                                        - maximum_basis_points
                                                      type: object
                                              required:
                                                - kind
                                                - value
                                              type: object
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - value
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        kind:
                                          const: waiver
                                          type: string
                                        waived_item:
                                          maxLength: 240
                                          minLength: 1
                                          type: string
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - waived_item
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        duration:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: exact
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: up-to
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: at-least
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                        kind:
                                          const: free-service
                                          type: string
                                        service:
                                          maxLength: 240
                                          minLength: 1
                                          type: string
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - service
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        kind:
                                          const: other
                                          type: string
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                      type: object
                                minItems: 1
                                type: array
                              consideration:
                                oneOf:
                                  - additionalProperties: false
                                    properties:
                                      kind:
                                        const: none
                                        type: string
                                    required:
                                      - kind
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      amount:
                                        additionalProperties: false
                                        properties:
                                          currency:
                                            pattern: ^[A-Z]{3}$
                                            type: string
                                          minor_units:
                                            maximum: 9007199254740991
                                            minimum: 0
                                            type: integer
                                        required:
                                          - currency
                                          - minor_units
                                        type: object
                                      kind:
                                        const: fixed
                                        type: string
                                    required:
                                      - kind
                                      - amount
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      kind:
                                        const: variable
                                        type: string
                                    required:
                                      - kind
                                      - description
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      kind:
                                        const: unknown
                                        type: string
                                    required:
                                      - kind
                                      - description
                                    type: object
                            required:
                              - consideration
                              - benefits
                            type: object
                          effective_from:
                            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)))$
                            type: string
                          effective_until:
                            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)))$
                            type: string
                          eligibility:
                            additionalProperties: false
                            properties:
                              rule:
                                $ref: "#/components/schemas/GetOfferResponse200/$defs/__schema0"
                            required:
                              - rule
                            type: object
                          lifecycle:
                            enum:
                              - active
                              - ended
                              - withdrawn
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          provenance:
                            additionalProperties: false
                            properties:
                              attestation_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              basis_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                minItems: 1
                                type: array
                              coverage_policy_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              dispute:
                                enum:
                                  - none
                                  - open
                                  - resolved
                                type: string
                              fields:
                                items:
                                  additionalProperties: false
                                  properties:
                                    accepted_proof_kinds:
                                      items:
                                        enum:
                                          - observed
                                          - derived
                                          - editorial
                                        type: string
                                      minItems: 1
                                      type: array
                                    contradicting_event_ids:
                                      items:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      type: array
                                    evidence_proof_kinds:
                                      items:
                                        enum:
                                          - observed
                                          - derived
                                          - editorial
                                        type: string
                                      type: array
                                    freshness:
                                      enum:
                                        - fresh
                                        - stale
                                        - unknown
                                      type: string
                                    latest_observation_at:
                                      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)))$
                                      type: string
                                    path:
                                      pattern: ^\/.*
                                      type: string
                                    supporting_event_ids:
                                      items:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      type: array
                                  required:
                                    - path
                                    - supporting_event_ids
                                    - contradicting_event_ids
                                    - accepted_proof_kinds
                                    - evidence_proof_kinds
                                    - freshness
                                  type: object
                                minItems: 1
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              freshness_policy_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              tier:
                                enum:
                                  - observed
                                  - signed
                                  - verified
                                type: string
                              verification_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                            required:
                              - tier
                              - freshness
                              - dispute
                              - coverage_policy_digest
                              - freshness_policy_digest
                              - basis_event_ids
                              - fields
                            type: object
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          roles:
                            additionalProperties: false
                            properties:
                              access_operator_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              terms_authority_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - terms_authority_entity_id
                              - access_operator_entity_id
                            type: object
                          slug:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          summary:
                            maxLength: 240
                            minLength: 1
                            type: string
                          terms_url:
                            format: uri
                            type: string
                          title:
                            minLength: 1
                            type: string
                        required:
                          - offer_id
                          - slug
                          - title
                          - summary
                          - economics
                          - eligibility
                          - roles
                          - access
                          - lifecycle
                          - effective_from
                          - revision_digest
                          - provenance
                        type: object
                      type: array
                    programs:
                      items:
                        additionalProperties: false
                        properties:
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          provenance:
                            additionalProperties: false
                            properties:
                              attestation_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              basis_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                minItems: 1
                                type: array
                              coverage_policy_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              dispute:
                                enum:
                                  - none
                                  - open
                                  - resolved
                                type: string
                              fields:
                                items:
                                  additionalProperties: false
                                  properties:
                                    accepted_proof_kinds:
                                      items:
                                        enum:
                                          - observed
                                          - derived
                                          - editorial
                                        type: string
                                      minItems: 1
                                      type: array
                                    contradicting_event_ids:
                                      items:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      type: array
                                    evidence_proof_kinds:
                                      items:
                                        enum:
                                          - observed
                                          - derived
                                          - editorial
                                        type: string
                                      type: array
                                    freshness:
                                      enum:
                                        - fresh
                                        - stale
                                        - unknown
                                      type: string
                                    latest_observation_at:
                                      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)))$
                                      type: string
                                    path:
                                      pattern: ^\/.*
                                      type: string
                                    supporting_event_ids:
                                      items:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      type: array
                                  required:
                                    - path
                                    - supporting_event_ids
                                    - contradicting_event_ids
                                    - accepted_proof_kinds
                                    - evidence_proof_kinds
                                    - freshness
                                  type: object
                                minItems: 1
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              freshness_policy_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              tier:
                                enum:
                                  - observed
                                  - signed
                                  - verified
                                type: string
                              verification_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                            required:
                              - tier
                              - freshness
                              - dispute
                              - coverage_policy_digest
                              - freshness_policy_digest
                              - basis_event_ids
                              - fields
                            type: object
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          slug:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          summary:
                            maxLength: 240
                            minLength: 1
                            type: string
                          title:
                            minLength: 1
                            type: string
                        required:
                          - program_id
                          - slug
                          - title
                          - revision_digest
                          - provenance
                        type: object
                      type: array
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    website:
                      format: uri
                      type: string
                  required:
                    - entity_id
                    - slug
                    - name
                    - description
                    - website
                    - category
                    - revision_digest
                    - provenance
                    - programs
                    - offers
                  type: object
                offer:
                  additionalProperties: false
                  properties:
                    access:
                      additionalProperties: false
                      properties:
                        availability:
                          enum:
                            - public
                            - referral
                            - membership
                            - invite
                            - automatic
                            - other
                          type: string
                        instructions:
                          maxLength: 1000
                          minLength: 1
                          type: string
                        method:
                          enum:
                            - form
                            - code
                            - contact
                            - automatic
                            - other
                          type: string
                        public_code:
                          maxLength: 200
                          minLength: 1
                          type: string
                        url:
                          format: uri
                          type: string
                      required:
                        - availability
                        - method
                      type: object
                    description:
                      minLength: 1
                      type: string
                    economics:
                      additionalProperties: false
                      properties:
                        benefits:
                          items:
                            oneOf:
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: credit
                                    type: string
                                  value:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: exact
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: up-to
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: at-least
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: range
                                            type: string
                                          maximum:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          minimum:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                        required:
                                          - kind
                                          - minimum
                                          - maximum
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - value
                                type: object
                              - additionalProperties: false
                                properties:
                                  applies_to:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: discount
                                    type: string
                                  percentage:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: exact
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: up-to
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: at-least
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: range
                                            type: string
                                          maximum_basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          minimum_basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                        required:
                                          - kind
                                          - minimum_basis_points
                                          - maximum_basis_points
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - percentage
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: cashback
                                    type: string
                                  value:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: money
                                            type: string
                                          value:
                                            oneOf:
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: exact
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: up-to
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: at-least
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  kind:
                                                    const: range
                                                    type: string
                                                  maximum:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  minimum:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                required:
                                                  - kind
                                                  - minimum
                                                  - maximum
                                                type: object
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: percentage
                                            type: string
                                          value:
                                            oneOf:
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: exact
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: up-to
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: at-least
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  kind:
                                                    const: range
                                                    type: string
                                                  maximum_basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  minimum_basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                required:
                                                  - kind
                                                  - minimum_basis_points
                                                  - maximum_basis_points
                                                type: object
                                        required:
                                          - kind
                                          - value
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - value
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: waiver
                                    type: string
                                  waived_item:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - waived_item
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: free-service
                                    type: string
                                  service:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - service
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: other
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                type: object
                          minItems: 1
                          type: array
                        consideration:
                          oneOf:
                            - additionalProperties: false
                              properties:
                                kind:
                                  const: none
                                  type: string
                              required:
                                - kind
                              type: object
                            - additionalProperties: false
                              properties:
                                amount:
                                  additionalProperties: false
                                  properties:
                                    currency:
                                      pattern: ^[A-Z]{3}$
                                      type: string
                                    minor_units:
                                      maximum: 9007199254740991
                                      minimum: 0
                                      type: integer
                                  required:
                                    - currency
                                    - minor_units
                                  type: object
                                kind:
                                  const: fixed
                                  type: string
                              required:
                                - kind
                                - amount
                              type: object
                            - additionalProperties: false
                              properties:
                                description:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                kind:
                                  const: variable
                                  type: string
                              required:
                                - kind
                                - description
                              type: object
                            - additionalProperties: false
                              properties:
                                description:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                kind:
                                  const: unknown
                                  type: string
                              required:
                                - kind
                                - description
                              type: object
                      required:
                        - consideration
                        - benefits
                      type: object
                    effective_from:
                      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)))$
                      type: string
                    effective_until:
                      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)))$
                      type: string
                    eligibility:
                      additionalProperties: false
                      properties:
                        rule:
                          $ref: "#/components/schemas/GetOfferResponse200/$defs/__schema0"
                      required:
                        - rule
                      type: object
                    lifecycle:
                      enum:
                        - active
                        - ended
                        - withdrawn
                      type: string
                    offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    roles:
                      additionalProperties: false
                      properties:
                        access_operator_entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        terms_authority_entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                      required:
                        - terms_authority_entity_id
                        - access_operator_entity_id
                      type: object
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    terms_url:
                      format: uri
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - offer_id
                    - slug
                    - title
                    - summary
                    - economics
                    - eligibility
                    - roles
                    - access
                    - lifecycle
                    - effective_from
                    - revision_digest
                    - provenance
                  type: object
                program:
                  additionalProperties: false
                  properties:
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - program_id
                    - slug
                    - title
                    - revision_digest
                    - provenance
                  type: object
              required:
                - entity
                - offer
              type: object
            - oneOf:
                - additionalProperties: false
                  properties:
                    canonical_offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    kind:
                      const: offer_tombstone
                      type: string
                    offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    transition:
                      const: merged
                      type: string
                  required:
                    - kind
                    - offer_id
                    - transition
                    - canonical_offer_id
                    - event_id
                  type: object
                - additionalProperties: false
                  properties:
                    kind:
                      const: offer_tombstone
                      type: string
                    offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    transition:
                      const: retired
                      type: string
                  required:
                    - kind
                    - offer_id
                    - transition
                  type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetProgramResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetProgramResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetProgramResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/GetProgramResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          anyOf:
            - additionalProperties: false
              properties:
                entity:
                  additionalProperties: false
                  properties:
                    category:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    description:
                      minLength: 1
                      type: string
                    entity_id:
                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    name:
                      minLength: 1
                      type: string
                    offers:
                      items:
                        additionalProperties: false
                        properties:
                          access:
                            additionalProperties: false
                            properties:
                              availability:
                                enum:
                                  - public
                                  - referral
                                  - membership
                                  - invite
                                  - automatic
                                  - other
                                type: string
                              instructions:
                                maxLength: 1000
                                minLength: 1
                                type: string
                              method:
                                enum:
                                  - form
                                  - code
                                  - contact
                                  - automatic
                                  - other
                                type: string
                              public_code:
                                maxLength: 200
                                minLength: 1
                                type: string
                              url:
                                format: uri
                                type: string
                            required:
                              - availability
                              - method
                            type: object
                          description:
                            minLength: 1
                            type: string
                          economics:
                            additionalProperties: false
                            properties:
                              benefits:
                                items:
                                  oneOf:
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        duration:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: exact
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: up-to
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: at-least
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                        kind:
                                          const: credit
                                          type: string
                                        value:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                amount:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                                kind:
                                                  const: exact
                                                  type: string
                                              required:
                                                - kind
                                                - amount
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                amount:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                                kind:
                                                  const: up-to
                                                  type: string
                                              required:
                                                - kind
                                                - amount
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                amount:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                                kind:
                                                  const: at-least
                                                  type: string
                                              required:
                                                - kind
                                                - amount
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: range
                                                  type: string
                                                maximum:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                                minimum:
                                                  additionalProperties: false
                                                  properties:
                                                    currency:
                                                      pattern: ^[A-Z]{3}$
                                                      type: string
                                                    minor_units:
                                                      maximum: 9007199254740991
                                                      minimum: 0
                                                      type: integer
                                                  required:
                                                    - currency
                                                    - minor_units
                                                  type: object
                                              required:
                                                - kind
                                                - minimum
                                                - maximum
                                              type: object
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - value
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        applies_to:
                                          maxLength: 240
                                          minLength: 1
                                          type: string
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        duration:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: exact
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: up-to
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: at-least
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                        kind:
                                          const: discount
                                          type: string
                                        percentage:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                                kind:
                                                  const: exact
                                                  type: string
                                              required:
                                                - kind
                                                - basis_points
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                                kind:
                                                  const: up-to
                                                  type: string
                                              required:
                                                - kind
                                                - basis_points
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                                kind:
                                                  const: at-least
                                                  type: string
                                              required:
                                                - kind
                                                - basis_points
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: range
                                                  type: string
                                                maximum_basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                                minimum_basis_points:
                                                  maximum: 10000
                                                  minimum: 1
                                                  type: integer
                                              required:
                                                - kind
                                                - minimum_basis_points
                                                - maximum_basis_points
                                              type: object
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - percentage
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        duration:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: exact
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: up-to
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: at-least
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                        kind:
                                          const: cashback
                                          type: string
                                        value:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: money
                                                  type: string
                                                value:
                                                  oneOf:
                                                    - additionalProperties: false
                                                      properties:
                                                        amount:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                        kind:
                                                          const: exact
                                                          type: string
                                                      required:
                                                        - kind
                                                        - amount
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        amount:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                        kind:
                                                          const: up-to
                                                          type: string
                                                      required:
                                                        - kind
                                                        - amount
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        amount:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                        kind:
                                                          const: at-least
                                                          type: string
                                                      required:
                                                        - kind
                                                        - amount
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        kind:
                                                          const: range
                                                          type: string
                                                        maximum:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                        minimum:
                                                          additionalProperties: false
                                                          properties:
                                                            currency:
                                                              pattern: ^[A-Z]{3}$
                                                              type: string
                                                            minor_units:
                                                              maximum: 9007199254740991
                                                              minimum: 0
                                                              type: integer
                                                          required:
                                                            - currency
                                                            - minor_units
                                                          type: object
                                                      required:
                                                        - kind
                                                        - minimum
                                                        - maximum
                                                      type: object
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: percentage
                                                  type: string
                                                value:
                                                  oneOf:
                                                    - additionalProperties: false
                                                      properties:
                                                        basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                        kind:
                                                          const: exact
                                                          type: string
                                                      required:
                                                        - kind
                                                        - basis_points
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                        kind:
                                                          const: up-to
                                                          type: string
                                                      required:
                                                        - kind
                                                        - basis_points
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                        kind:
                                                          const: at-least
                                                          type: string
                                                      required:
                                                        - kind
                                                        - basis_points
                                                      type: object
                                                    - additionalProperties: false
                                                      properties:
                                                        kind:
                                                          const: range
                                                          type: string
                                                        maximum_basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                        minimum_basis_points:
                                                          maximum: 10000
                                                          minimum: 1
                                                          type: integer
                                                      required:
                                                        - kind
                                                        - minimum_basis_points
                                                        - maximum_basis_points
                                                      type: object
                                              required:
                                                - kind
                                                - value
                                              type: object
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - value
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        kind:
                                          const: waiver
                                          type: string
                                        waived_item:
                                          maxLength: 240
                                          minLength: 1
                                          type: string
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - waived_item
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        duration:
                                          oneOf:
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: exact
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: up-to
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                            - additionalProperties: false
                                              properties:
                                                kind:
                                                  const: at-least
                                                  type: string
                                                value:
                                                  pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                  type: string
                                              required:
                                                - kind
                                                - value
                                              type: object
                                        kind:
                                          const: free-service
                                          type: string
                                        service:
                                          maxLength: 240
                                          minLength: 1
                                          type: string
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                        - service
                                      type: object
                                    - additionalProperties: false
                                      properties:
                                        benefit_id:
                                          pattern: ^[a-z0-9][a-z0-9_-]*$
                                          type: string
                                        description:
                                          maxLength: 500
                                          minLength: 1
                                          type: string
                                        kind:
                                          const: other
                                          type: string
                                      required:
                                        - benefit_id
                                        - description
                                        - kind
                                      type: object
                                minItems: 1
                                type: array
                              consideration:
                                oneOf:
                                  - additionalProperties: false
                                    properties:
                                      kind:
                                        const: none
                                        type: string
                                    required:
                                      - kind
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      amount:
                                        additionalProperties: false
                                        properties:
                                          currency:
                                            pattern: ^[A-Z]{3}$
                                            type: string
                                          minor_units:
                                            maximum: 9007199254740991
                                            minimum: 0
                                            type: integer
                                        required:
                                          - currency
                                          - minor_units
                                        type: object
                                      kind:
                                        const: fixed
                                        type: string
                                    required:
                                      - kind
                                      - amount
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      kind:
                                        const: variable
                                        type: string
                                    required:
                                      - kind
                                      - description
                                    type: object
                                  - additionalProperties: false
                                    properties:
                                      description:
                                        maxLength: 500
                                        minLength: 1
                                        type: string
                                      kind:
                                        const: unknown
                                        type: string
                                    required:
                                      - kind
                                      - description
                                    type: object
                            required:
                              - consideration
                              - benefits
                            type: object
                          effective_from:
                            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)))$
                            type: string
                          effective_until:
                            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)))$
                            type: string
                          eligibility:
                            additionalProperties: false
                            properties:
                              rule:
                                $ref: "#/components/schemas/GetProgramResponse200/$defs/__schema0"
                            required:
                              - rule
                            type: object
                          lifecycle:
                            enum:
                              - active
                              - ended
                              - withdrawn
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          provenance:
                            additionalProperties: false
                            properties:
                              attestation_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              basis_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                minItems: 1
                                type: array
                              coverage_policy_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              dispute:
                                enum:
                                  - none
                                  - open
                                  - resolved
                                type: string
                              fields:
                                items:
                                  additionalProperties: false
                                  properties:
                                    accepted_proof_kinds:
                                      items:
                                        enum:
                                          - observed
                                          - derived
                                          - editorial
                                        type: string
                                      minItems: 1
                                      type: array
                                    contradicting_event_ids:
                                      items:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      type: array
                                    evidence_proof_kinds:
                                      items:
                                        enum:
                                          - observed
                                          - derived
                                          - editorial
                                        type: string
                                      type: array
                                    freshness:
                                      enum:
                                        - fresh
                                        - stale
                                        - unknown
                                      type: string
                                    latest_observation_at:
                                      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)))$
                                      type: string
                                    path:
                                      pattern: ^\/.*
                                      type: string
                                    supporting_event_ids:
                                      items:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      type: array
                                  required:
                                    - path
                                    - supporting_event_ids
                                    - contradicting_event_ids
                                    - accepted_proof_kinds
                                    - evidence_proof_kinds
                                    - freshness
                                  type: object
                                minItems: 1
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              freshness_policy_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              tier:
                                enum:
                                  - observed
                                  - signed
                                  - verified
                                type: string
                              verification_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                            required:
                              - tier
                              - freshness
                              - dispute
                              - coverage_policy_digest
                              - freshness_policy_digest
                              - basis_event_ids
                              - fields
                            type: object
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          roles:
                            additionalProperties: false
                            properties:
                              access_operator_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              terms_authority_entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                            required:
                              - terms_authority_entity_id
                              - access_operator_entity_id
                            type: object
                          slug:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          summary:
                            maxLength: 240
                            minLength: 1
                            type: string
                          terms_url:
                            format: uri
                            type: string
                          title:
                            minLength: 1
                            type: string
                        required:
                          - offer_id
                          - slug
                          - title
                          - summary
                          - economics
                          - eligibility
                          - roles
                          - access
                          - lifecycle
                          - effective_from
                          - revision_digest
                          - provenance
                        type: object
                      type: array
                    programs:
                      items:
                        additionalProperties: false
                        properties:
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          provenance:
                            additionalProperties: false
                            properties:
                              attestation_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              basis_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                minItems: 1
                                type: array
                              coverage_policy_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              dispute:
                                enum:
                                  - none
                                  - open
                                  - resolved
                                type: string
                              fields:
                                items:
                                  additionalProperties: false
                                  properties:
                                    accepted_proof_kinds:
                                      items:
                                        enum:
                                          - observed
                                          - derived
                                          - editorial
                                        type: string
                                      minItems: 1
                                      type: array
                                    contradicting_event_ids:
                                      items:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      type: array
                                    evidence_proof_kinds:
                                      items:
                                        enum:
                                          - observed
                                          - derived
                                          - editorial
                                        type: string
                                      type: array
                                    freshness:
                                      enum:
                                        - fresh
                                        - stale
                                        - unknown
                                      type: string
                                    latest_observation_at:
                                      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)))$
                                      type: string
                                    path:
                                      pattern: ^\/.*
                                      type: string
                                    supporting_event_ids:
                                      items:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      type: array
                                  required:
                                    - path
                                    - supporting_event_ids
                                    - contradicting_event_ids
                                    - accepted_proof_kinds
                                    - evidence_proof_kinds
                                    - freshness
                                  type: object
                                minItems: 1
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              freshness_policy_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              tier:
                                enum:
                                  - observed
                                  - signed
                                  - verified
                                type: string
                              verification_event_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                            required:
                              - tier
                              - freshness
                              - dispute
                              - coverage_policy_digest
                              - freshness_policy_digest
                              - basis_event_ids
                              - fields
                            type: object
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          slug:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          summary:
                            maxLength: 240
                            minLength: 1
                            type: string
                          title:
                            minLength: 1
                            type: string
                        required:
                          - program_id
                          - slug
                          - title
                          - revision_digest
                          - provenance
                        type: object
                      type: array
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    website:
                      format: uri
                      type: string
                  required:
                    - entity_id
                    - slug
                    - name
                    - description
                    - website
                    - category
                    - revision_digest
                    - provenance
                    - programs
                    - offers
                  type: object
                program:
                  additionalProperties: false
                  properties:
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - program_id
                    - slug
                    - title
                    - revision_digest
                    - provenance
                  type: object
              required:
                - entity
                - program
              type: object
            - oneOf:
                - additionalProperties: false
                  properties:
                    canonical_program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    event_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    kind:
                      const: program_tombstone
                      type: string
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    transition:
                      const: merged
                      type: string
                  required:
                    - kind
                    - program_id
                    - transition
                    - canonical_program_id
                    - event_id
                  type: object
                - additionalProperties: false
                  properties:
                    kind:
                      const: program_tombstone
                      type: string
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    transition:
                      const: retired
                      type: string
                  required:
                    - kind
                    - program_id
                    - transition
                  type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetProvenanceResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          additionalProperties: false
          properties:
            coverage_policy_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            event_ids:
              items:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              type: array
            first_inclusion_sequence:
              exclusiveMinimum: 0
              maximum: 9007199254740991
              type: integer
            freshness_policy_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
            observation_ids:
              items:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              type: array
            revision_digest:
              pattern: ^sha256:[a-f0-9]{64}$
              type: string
          required:
            - revision_digest
            - first_inclusion_sequence
            - event_ids
            - observation_ids
            - coverage_policy_digest
            - freshness_policy_digest
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    GetRevisionResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetRevisionResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/GetRevisionResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/GetRevisionResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          anyOf:
            - additionalProperties: false
              properties:
                content:
                  additionalProperties: false
                  properties:
                    category:
                      minLength: 1
                      type: string
                    description:
                      maxLength: 200
                      minLength: 1
                      type: string
                    domains:
                      items:
                        additionalProperties: false
                        properties:
                          role:
                            enum:
                              - primary
                              - alias
                            type: string
                          valid_from:
                            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)))$
                            type: string
                          valid_until:
                            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)))$
                            type: string
                          value:
                            minLength: 1
                            type: string
                        required:
                          - value
                          - role
                          - valid_from
                        type: object
                      minItems: 1
                      type: array
                    links:
                      additionalProperties: false
                      properties:
                        pricing:
                          format: uri
                          type: string
                        site:
                          format: uri
                          type: string
                      required:
                        - site
                      type: object
                    name:
                      minLength: 1
                      type: string
                  required:
                    - name
                    - description
                    - domains
                    - category
                    - links
                  type: object
                entity_id:
                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                revision_contract:
                  const: sourcey.entity-revision/v1alpha1
                  type: string
                revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
              required:
                - revision_contract
                - entity_id
                - content
                - revision_digest
              type: object
            - additionalProperties: false
              properties:
                content:
                  additionalProperties: false
                  properties:
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - title
                  type: object
                entity_id:
                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                program_id:
                  pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                revision_contract:
                  const: sourcey.program-revision/v1alpha1
                  type: string
                revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
              required:
                - revision_contract
                - entity_id
                - program_id
                - content
                - revision_digest
              type: object
            - additionalProperties: false
              properties:
                content:
                  additionalProperties: false
                  properties:
                    access:
                      additionalProperties: false
                      properties:
                        availability:
                          enum:
                            - public
                            - referral
                            - membership
                            - invite
                            - automatic
                            - other
                          type: string
                        instructions:
                          maxLength: 1000
                          minLength: 1
                          type: string
                        method:
                          enum:
                            - form
                            - code
                            - contact
                            - automatic
                            - other
                          type: string
                        public_code:
                          maxLength: 200
                          minLength: 1
                          type: string
                        url:
                          format: uri
                          type: string
                      required:
                        - availability
                        - method
                      type: object
                    description:
                      minLength: 1
                      type: string
                    economics:
                      additionalProperties: false
                      properties:
                        benefits:
                          items:
                            oneOf:
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: credit
                                    type: string
                                  value:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: exact
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: up-to
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: at-least
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: range
                                            type: string
                                          maximum:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          minimum:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                        required:
                                          - kind
                                          - minimum
                                          - maximum
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - value
                                type: object
                              - additionalProperties: false
                                properties:
                                  applies_to:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: discount
                                    type: string
                                  percentage:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: exact
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: up-to
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: at-least
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: range
                                            type: string
                                          maximum_basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          minimum_basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                        required:
                                          - kind
                                          - minimum_basis_points
                                          - maximum_basis_points
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - percentage
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: cashback
                                    type: string
                                  value:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: money
                                            type: string
                                          value:
                                            oneOf:
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: exact
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: up-to
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: at-least
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  kind:
                                                    const: range
                                                    type: string
                                                  maximum:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  minimum:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                required:
                                                  - kind
                                                  - minimum
                                                  - maximum
                                                type: object
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: percentage
                                            type: string
                                          value:
                                            oneOf:
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: exact
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: up-to
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: at-least
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  kind:
                                                    const: range
                                                    type: string
                                                  maximum_basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  minimum_basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                required:
                                                  - kind
                                                  - minimum_basis_points
                                                  - maximum_basis_points
                                                type: object
                                        required:
                                          - kind
                                          - value
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - value
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: waiver
                                    type: string
                                  waived_item:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - waived_item
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: free-service
                                    type: string
                                  service:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - service
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: other
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                type: object
                          minItems: 1
                          type: array
                        consideration:
                          oneOf:
                            - additionalProperties: false
                              properties:
                                kind:
                                  const: none
                                  type: string
                              required:
                                - kind
                              type: object
                            - additionalProperties: false
                              properties:
                                amount:
                                  additionalProperties: false
                                  properties:
                                    currency:
                                      pattern: ^[A-Z]{3}$
                                      type: string
                                    minor_units:
                                      maximum: 9007199254740991
                                      minimum: 0
                                      type: integer
                                  required:
                                    - currency
                                    - minor_units
                                  type: object
                                kind:
                                  const: fixed
                                  type: string
                              required:
                                - kind
                                - amount
                              type: object
                            - additionalProperties: false
                              properties:
                                description:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                kind:
                                  const: variable
                                  type: string
                              required:
                                - kind
                                - description
                              type: object
                            - additionalProperties: false
                              properties:
                                description:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                kind:
                                  const: unknown
                                  type: string
                              required:
                                - kind
                                - description
                              type: object
                      required:
                        - consideration
                        - benefits
                      type: object
                    eligibility:
                      additionalProperties: false
                      properties:
                        rule:
                          $ref: "#/components/schemas/GetRevisionResponse200/$defs/__schema0"
                      required:
                        - rule
                      type: object
                    lifecycle:
                      additionalProperties: false
                      properties:
                        effective_from:
                          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)))$
                          type: string
                        effective_until:
                          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)))$
                          type: string
                        status:
                          enum:
                            - active
                            - ended
                            - withdrawn
                          type: string
                      required:
                        - status
                        - effective_from
                      type: object
                    roles:
                      additionalProperties: false
                      properties:
                        access_operator_entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        terms_authority_entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                      required:
                        - terms_authority_entity_id
                        - access_operator_entity_id
                      type: object
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    terms_url:
                      format: uri
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - title
                    - summary
                    - lifecycle
                    - economics
                    - eligibility
                    - roles
                    - access
                  type: object
                entity_id:
                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                offer_id:
                  pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                program_id:
                  pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                revision_contract:
                  const: sourcey.offer-revision/v1alpha1
                  type: string
                revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
              required:
                - revision_contract
                - entity_id
                - offer_id
                - content
                - revision_digest
              type: object
            - additionalProperties: false
              properties:
                agent_readiness_profile_id:
                  pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                catalog_binding:
                  additionalProperties: false
                  properties:
                    base_release_id:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    entity_revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                  required:
                    - base_release_id
                    - entity_revision_digest
                  type: object
                declaration:
                  oneOf:
                    - additionalProperties: false
                      properties:
                        status:
                          const: none
                          type: string
                      required:
                        - status
                      type: object
                    - additionalProperties: false
                      properties:
                        declaration_id:
                          pattern: ^[a-z0-9][a-z0-9_-]*$
                          type: string
                        provenance:
                          additionalProperties: false
                          properties:
                            blob_digest:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            commit:
                              pattern: ^[a-f0-9]{40,64}$
                              type: string
                            git_blob_oid:
                              pattern: ^[a-f0-9]{40,64}$
                              type: string
                            path:
                              pattern: ^vendors\/[a-z0-9]{1,2}\/[a-z0-9]+(?:-[a-z0-9]+)*\.yaml$
                              type: string
                            repository:
                              const: sourcey/agent-ready-services
                              type: string
                          required:
                            - repository
                            - commit
                            - path
                            - git_blob_oid
                            - blob_digest
                          type: object
                        status:
                          enum:
                            - community_declared
                            - vendor_declared
                          type: string
                      required:
                        - declaration_id
                        - provenance
                        - status
                      type: object
                declaration_revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                effective_from:
                  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)))$
                  type: string
                effective_until:
                  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)))$
                  type: string
                entity_id:
                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                lifecycle:
                  enum:
                    - active
                    - ended
                    - withdrawn
                  type: string
                revision_contract:
                  const: sourcey.agent-readiness-revision/v1alpha1
                  type: string
                revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                scope:
                  additionalProperties: false
                  properties:
                    funnel:
                      additionalProperties: false
                      properties:
                        key:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        name:
                          maxLength: 160
                          minLength: 1
                          type: string
                      required:
                        - key
                        - name
                      type: object
                    product:
                      additionalProperties: false
                      properties:
                        key:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        name:
                          maxLength: 160
                          minLength: 1
                          type: string
                      required:
                        - key
                        - name
                      type: object
                  required:
                    - product
                    - funnel
                  type: object
                signals:
                  items:
                    additionalProperties: false
                    properties:
                      assessment_method:
                        additionalProperties: false
                        properties:
                          method_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          name:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                          version:
                            maxLength: 160
                            minLength: 1
                            type: string
                        required:
                          - name
                          - version
                          - method_digest
                        type: object
                      negative_coverage:
                        additionalProperties: false
                        properties:
                          covered_surfaces:
                            items:
                              additionalProperties: false
                              properties:
                                node_id:
                                  pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                  type: string
                                node_kind:
                                  enum:
                                    - resource
                                    - endpoint
                                    - interface
                                  type: string
                              required:
                                - node_kind
                                - node_id
                              type: object
                            minItems: 1
                            type: array
                          kind:
                            enum:
                              - complete-response-inspection
                              - complete-structured-resource-validation
                              - bounded-rendered-flow-inspection
                              - explicit-first-party-declaration
                              - reviewed-manual-inspection
                            type: string
                          scope:
                            enum:
                              - exact-resource
                              - tested-surfaces
                              - exact-funnel
                            type: string
                        required:
                          - kind
                          - scope
                          - covered_surfaces
                        type: object
                      note:
                        maxLength: 500
                        minLength: 1
                        type: string
                      observed_at:
                        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)))$
                        type: string
                      signal_code:
                        pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                        type: string
                      stage:
                        enum:
                          - evaluate
                          - sign_up
                          - pay
                          - provision
                          - operate
                        type: string
                      tested_surfaces:
                        items:
                          additionalProperties: false
                          properties:
                            node_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            node_kind:
                              enum:
                                - resource
                                - endpoint
                                - interface
                              type: string
                          required:
                            - node_kind
                            - node_id
                          type: object
                        minItems: 1
                        type: array
                      value:
                        enum:
                          - yes
                          - no
                          - partial
                          - unknown
                          - not_applicable
                        type: string
                    required:
                      - stage
                      - signal_code
                      - value
                      - observed_at
                      - tested_surfaces
                      - assessment_method
                    type: object
                  minItems: 1
                  type: array
              required:
                - revision_contract
                - agent_readiness_profile_id
                - entity_id
                - scope
                - catalog_binding
                - declaration_revision_digest
                - declaration
                - lifecycle
                - effective_from
                - signals
                - revision_digest
              type: object
            - additionalProperties: false
              properties:
                declaration:
                  additionalProperties: false
                  properties:
                    assessment_reason:
                      maxLength: 1000
                      minLength: 1
                      type: string
                    authority_intent:
                      enum:
                        - vendor
                        - community
                      type: string
                    declaration_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    declared_at:
                      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)))$
                      type: string
                    endpoints:
                      items:
                        additionalProperties: false
                        properties:
                          endpoint_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          operated_by_participant_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          roles:
                            items:
                              enum:
                                - service
                                - authorization
                                - token
                                - registration
                                - protected_resource
                                - checkout
                                - status
                                - recovery
                                - webhook
                              type: string
                            minItems: 1
                            type: array
                          standard_bindings:
                            items:
                              additionalProperties: false
                              properties:
                                namespace:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                                relation:
                                  enum:
                                    - declares
                                    - describes
                                    - implements
                                    - uses
                                  type: string
                                version:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                              required:
                                - namespace
                                - version
                                - relation
                              type: object
                            type: array
                          transport:
                            enum:
                              - http
                              - websocket
                              - grpc
                            type: string
                          uri:
                            format: uri
                            type: string
                        required:
                          - endpoint_id
                          - uri
                          - transport
                          - roles
                          - operated_by_participant_id
                          - standard_bindings
                        type: object
                      type: array
                    interfaces:
                      items:
                        additionalProperties: false
                        properties:
                          capabilities:
                            items:
                              enum:
                                - api
                                - tools
                                - agent
                                - authentication
                                - commerce
                                - events
                                - recovery
                              type: string
                            minItems: 1
                            type: array
                          endpoint_ids:
                            items:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            type: array
                          interface_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          operated_by_participant_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          resource_ids:
                            items:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            type: array
                          standard_bindings:
                            items:
                              additionalProperties: false
                              properties:
                                namespace:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                                relation:
                                  enum:
                                    - declares
                                    - describes
                                    - implements
                                    - uses
                                  type: string
                                version:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                              required:
                                - namespace
                                - version
                                - relation
                              type: object
                            type: array
                        required:
                          - interface_id
                          - capabilities
                          - endpoint_ids
                          - resource_ids
                          - operated_by_participant_id
                          - standard_bindings
                        type: object
                      type: array
                    participants:
                      items:
                        additionalProperties: false
                        properties:
                          identity:
                            anyOf:
                              - additionalProperties: false
                                properties:
                                  entity_id:
                                    pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                    type: string
                                required:
                                  - entity_id
                                type: object
                              - additionalProperties: false
                                properties:
                                  origin_source_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                required:
                                  - origin_source_id
                                type: object
                          participant_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          roles:
                            items:
                              enum:
                                - subject
                                - access_operator
                                - identity_provider
                                - payment_provider
                                - provisioning_provider
                                - operations_provider
                              type: string
                            minItems: 1
                            type: array
                        required:
                          - participant_id
                          - roles
                          - identity
                        type: object
                      minItems: 1
                      type: array
                    relations:
                      items:
                        additionalProperties: false
                        properties:
                          from:
                            additionalProperties: false
                            properties:
                              node_id:
                                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                type: string
                              node_kind:
                                enum:
                                  - resource
                                  - endpoint
                                  - interface
                                type: string
                            required:
                              - node_kind
                              - node_id
                            type: object
                          kind:
                            enum:
                              - describes
                              - authenticates
                              - requires
                              - alternative_to
                              - precedes
                            type: string
                          relation_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          to:
                            additionalProperties: false
                            properties:
                              node_id:
                                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                type: string
                              node_kind:
                                enum:
                                  - resource
                                  - endpoint
                                  - interface
                                type: string
                            required:
                              - node_kind
                              - node_id
                            type: object
                        required:
                          - relation_id
                          - kind
                          - from
                          - to
                        type: object
                      type: array
                    resources:
                      items:
                        additionalProperties: false
                        properties:
                          operated_by_participant_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          resource_id:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          roles:
                            items:
                              enum:
                                - discovery
                                - terms
                                - eligibility
                                - pricing
                                - sign_up
                                - checkout
                                - provisioning
                                - operations
                                - recovery
                                - descriptor
                                - documentation
                                - policy
                                - status
                              type: string
                            minItems: 1
                            type: array
                          standard_bindings:
                            items:
                              additionalProperties: false
                              properties:
                                namespace:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                                relation:
                                  enum:
                                    - declares
                                    - describes
                                    - implements
                                    - uses
                                  type: string
                                version:
                                  maxLength: 160
                                  minLength: 1
                                  type: string
                              required:
                                - namespace
                                - version
                                - relation
                              type: object
                            type: array
                          uri:
                            format: uri
                            type: string
                        required:
                          - resource_id
                          - uri
                          - roles
                          - operated_by_participant_id
                          - standard_bindings
                        type: object
                      minItems: 1
                      type: array
                    scope:
                      additionalProperties: false
                      properties:
                        funnel:
                          additionalProperties: false
                          properties:
                            key:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            name:
                              maxLength: 160
                              minLength: 1
                              type: string
                          required:
                            - key
                            - name
                          type: object
                        product:
                          additionalProperties: false
                          properties:
                            key:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            name:
                              maxLength: 160
                              minLength: 1
                              type: string
                          required:
                            - key
                            - name
                          type: object
                      required:
                        - product
                        - funnel
                      type: object
                    source_bindings:
                      items:
                        additionalProperties: false
                        properties:
                          field_paths:
                            items:
                              pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                              type: string
                            minItems: 1
                            type: array
                          source_binding_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          source_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          target:
                            additionalProperties: false
                            properties:
                              node_id:
                                pattern: ^[a-z0-9][a-z0-9_-]*$
                                type: string
                              node_kind:
                                enum:
                                  - declaration
                                  - participant
                                  - resource
                                  - endpoint
                                  - interface
                                  - relation
                                type: string
                            required:
                              - node_kind
                              - node_id
                            type: object
                        required:
                          - source_binding_id
                          - source_id
                          - field_paths
                          - target
                        type: object
                      minItems: 1
                      type: array
                  required:
                    - declaration_id
                    - scope
                    - participants
                    - resources
                    - endpoints
                    - interfaces
                    - relations
                    - authority_intent
                    - declared_at
                    - assessment_reason
                    - source_bindings
                  type: object
                entity_id:
                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                  type: string
                revision_contract:
                  const: sourcey.agent-readiness-declaration-revision/v1alpha1
                  type: string
                revision_digest:
                  pattern: ^sha256:[a-f0-9]{64}$
                  type: string
                sources:
                  items:
                    additionalProperties: false
                    properties:
                      source_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      url:
                        format: uri
                        type: string
                    required:
                      - source_id
                      - url
                    type: object
                  minItems: 1
                  type: array
              required:
                - revision_contract
                - entity_id
                - declaration
                - sources
                - revision_digest
              type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    ListAgentReadinessOfferRelationsResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            additionalProperties: false
            properties:
              admitted_offer_revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              agent_readiness_profile_id:
                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              applicable_stages:
                items:
                  enum:
                    - evaluate
                    - sign_up
                    - pay
                    - provision
                    - operate
                  type: string
                minItems: 1
                type: array
              declaration_revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              effective_from:
                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)))$
                type: string
              effective_until:
                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)))$
                type: string
              offer_id:
                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              offer_relation_proposal_id:
                pattern: ^[a-z0-9][a-z0-9_-]*$
                type: string
              purpose:
                enum:
                  - application_path
                  - redemption_path
                  - operating_path
                type: string
              relation_contract:
                const: sourcey.agent-readiness-offer-relation/v1alpha1
                type: string
              relation_id:
                pattern: ^[a-z0-9][a-z0-9_-]*$
                type: string
              relation_revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            required:
              - relation_contract
              - relation_id
              - agent_readiness_profile_id
              - offer_id
              - purpose
              - applicable_stages
              - effective_from
              - declaration_revision_digest
              - offer_relation_proposal_id
              - admitted_offer_revision_digest
              - relation_revision_digest
            type: object
          type: array
        next_cursor:
          anyOf:
            - minLength: 1
              type: string
            - type: "null"
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
        - next_cursor
      type: object
    ListAgentReadinessProfilesResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            additionalProperties: false
            properties:
              agent_readiness_profile_id:
                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              canonical_url:
                format: uri
                type: string
              catalog_binding:
                additionalProperties: false
                properties:
                  base_release_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  entity_revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - base_release_id
                  - entity_revision_digest
                type: object
              coverage:
                additionalProperties: false
                properties:
                  covered_signals:
                    maximum: 9007199254740991
                    minimum: 0
                    type: integer
                  ratio:
                    maximum: 1
                    minimum: 0
                    type: number
                  required_signals:
                    maximum: 9007199254740991
                    minimum: 0
                    type: integer
                  status:
                    enum:
                      - complete
                      - partial
                      - insufficient
                    type: string
                required:
                  - status
                  - required_signals
                  - covered_signals
                  - ratio
                type: object
              declaration:
                oneOf:
                  - additionalProperties: false
                    properties:
                      status:
                        const: none
                        type: string
                    required:
                      - status
                    type: object
                  - additionalProperties: false
                    properties:
                      declaration_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      provenance:
                        additionalProperties: false
                        properties:
                          blob_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          commit:
                            pattern: ^[a-f0-9]{40,64}$
                            type: string
                          git_blob_oid:
                            pattern: ^[a-f0-9]{40,64}$
                            type: string
                          path:
                            pattern: ^vendors\/[a-z0-9]{1,2}\/[a-z0-9]+(?:-[a-z0-9]+)*\.yaml$
                            type: string
                          repository:
                            const: sourcey/agent-ready-services
                            type: string
                        required:
                          - repository
                          - commit
                          - path
                          - git_blob_oid
                          - blob_digest
                        type: object
                      status:
                        enum:
                          - community_declared
                          - vendor_declared
                        type: string
                    required:
                      - declaration_id
                      - provenance
                      - status
                    type: object
              declaration_revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              effective_from:
                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)))$
                type: string
              effective_until:
                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)))$
                type: string
              entity_id:
                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              first_autonomy_break:
                additionalProperties: false
                properties:
                  blocker:
                    additionalProperties: false
                    properties:
                      code:
                        maxLength: 160
                        minLength: 1
                        type: string
                      explanation:
                        maxLength: 500
                        minLength: 1
                        type: string
                      signal_code:
                        pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                        type: string
                    required:
                      - signal_code
                      - code
                      - explanation
                    type: object
                  finding:
                    additionalProperties: false
                    properties:
                      condition:
                        maxLength: 160
                        minLength: 1
                        type: string
                      finding:
                        maxLength: 280
                        minLength: 1
                        type: string
                      signal_code:
                        pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                        type: string
                    required:
                      - signal_code
                      - condition
                      - finding
                    type: object
                  public_state:
                    enum:
                      - limited
                      - blocked
                    type: string
                  stage:
                    enum:
                      - evaluate
                      - sign_up
                      - pay
                      - provision
                      - operate
                    type: string
                  stage_label:
                    maxLength: 40
                    minLength: 1
                    type: string
                required:
                  - stage
                  - stage_label
                  - public_state
                  - finding
                type: object
              freshness:
                enum:
                  - fresh
                  - stale
                  - unknown
                type: string
              grade:
                enum:
                  - A+
                  - A
                  - B+
                  - B
                  - C+
                  - C
                  - D
                  - F
                  - unrated
                type: string
              grade_derivation:
                additionalProperties: false
                properties:
                  coverage_rule:
                    maxLength: 280
                    minLength: 1
                    type: string
                  explanation:
                    maxLength: 500
                    minLength: 1
                    type: string
                  label:
                    maxLength: 80
                    minLength: 1
                    type: string
                  outcome_rule:
                    maxLength: 280
                    minLength: 1
                    type: string
                required:
                  - label
                  - explanation
                  - coverage_rule
                  - outcome_rule
                type: object
              last_tested_at:
                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)))$
                type: string
              lifecycle:
                enum:
                  - active
                  - ended
                  - withdrawn
                type: string
              overall_outcome:
                enum:
                  - pass
                  - constrained
                  - fail
                  - unknown
                  - not_applicable
                type: string
              policy_as_of:
                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)))$
                type: string
              policy_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              policy_version:
                minLength: 1
                type: string
              projection_contract:
                const: sourcey.agent-readiness-projection/v1alpha1
                type: string
              projection_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              provenance:
                additionalProperties: false
                properties:
                  attestation_event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  basis_event_ids:
                    items:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    minItems: 1
                    type: array
                  coverage_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  dispute:
                    enum:
                      - none
                      - open
                      - resolved
                    type: string
                  fields:
                    items:
                      additionalProperties: false
                      properties:
                        accepted_proof_kinds:
                          items:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                          minItems: 1
                          type: array
                        contradicting_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          type: array
                        evidence_proof_kinds:
                          items:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        latest_observation_at:
                          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)))$
                          type: string
                        path:
                          pattern: ^\/.*
                          type: string
                        supporting_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          type: array
                      required:
                        - path
                        - supporting_event_ids
                        - contradicting_event_ids
                        - accepted_proof_kinds
                        - evidence_proof_kinds
                        - freshness
                      type: object
                    minItems: 1
                    type: array
                  freshness:
                    enum:
                      - fresh
                      - stale
                      - unknown
                    type: string
                  freshness_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  tier:
                    enum:
                      - observed
                      - signed
                      - verified
                    type: string
                  verification_event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - tier
                  - freshness
                  - dispute
                  - coverage_policy_digest
                  - freshness_policy_digest
                  - basis_event_ids
                  - fields
                type: object
              public_state:
                enum:
                  - ready
                  - limited
                  - blocked
                  - unknown
                  - not_applicable
                type: string
              publication:
                additionalProperties: false
                properties:
                  reasons:
                    items:
                      enum:
                        - lifecycle_not_active
                        - coverage_incomplete
                        - required_evidence_not_supported
                        - freshness_not_fresh
                        - unrated
                        - no_useful_finding
                        - open_dispute
                      type: string
                    type: array
                  visibility:
                    enum:
                      - discoverable
                      - resolvable_only
                      - private
                    type: string
                required:
                  - visibility
                  - reasons
                type: object
              revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              scope:
                additionalProperties: false
                properties:
                  funnel:
                    additionalProperties: false
                    properties:
                      key:
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                      name:
                        maxLength: 160
                        minLength: 1
                        type: string
                    required:
                      - key
                      - name
                    type: object
                  product:
                    additionalProperties: false
                    properties:
                      key:
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                      name:
                        maxLength: 160
                        minLength: 1
                        type: string
                    required:
                      - key
                      - name
                    type: object
                required:
                  - product
                  - funnel
                type: object
              stages:
                items:
                  additionalProperties: false
                  properties:
                    blockers:
                      items:
                        additionalProperties: false
                        properties:
                          code:
                            maxLength: 160
                            minLength: 1
                            type: string
                          explanation:
                            maxLength: 500
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - code
                          - explanation
                        type: object
                      type: array
                    outcome:
                      enum:
                        - pass
                        - constrained
                        - fail
                        - unknown
                        - not_applicable
                      type: string
                    primary_finding:
                      additionalProperties: false
                      properties:
                        condition:
                          maxLength: 160
                          minLength: 1
                          type: string
                        finding:
                          maxLength: 280
                          minLength: 1
                          type: string
                        signal_code:
                          pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                          type: string
                      required:
                        - signal_code
                        - condition
                        - finding
                      type: object
                    public_state:
                      enum:
                        - ready
                        - limited
                        - blocked
                        - unknown
                        - not_applicable
                      type: string
                    remediations:
                      items:
                        additionalProperties: false
                        properties:
                          code:
                            maxLength: 160
                            minLength: 1
                            type: string
                          instruction:
                            maxLength: 500
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - code
                          - instruction
                        type: object
                      type: array
                    secondary_context:
                      items:
                        additionalProperties: false
                        properties:
                          condition:
                            maxLength: 160
                            minLength: 1
                            type: string
                          finding:
                            maxLength: 280
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - condition
                          - finding
                        type: object
                      type: array
                    signals:
                      items:
                        additionalProperties: false
                        properties:
                          assessment_method:
                            additionalProperties: false
                            properties:
                              method_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              name:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              version:
                                maxLength: 160
                                minLength: 1
                                type: string
                            required:
                              - name
                              - version
                              - method_digest
                            type: object
                          blocker:
                            additionalProperties: false
                            properties:
                              code:
                                maxLength: 160
                                minLength: 1
                                type: string
                              explanation:
                                maxLength: 500
                                minLength: 1
                                type: string
                              signal_code:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                            required:
                              - signal_code
                              - code
                              - explanation
                            type: object
                          condition:
                            maxLength: 160
                            minLength: 1
                            type: string
                          evaluation_role:
                            enum:
                              - graded
                              - informational
                            type: string
                          evidence_status:
                            enum:
                              - supported
                              - contradicted
                              - mixed
                              - missing
                            type: string
                          finding:
                            maxLength: 280
                            minLength: 1
                            type: string
                          freshness:
                            enum:
                              - fresh
                              - stale
                              - unknown
                            type: string
                          negative_coverage:
                            additionalProperties: false
                            properties:
                              covered_surfaces:
                                items:
                                  additionalProperties: false
                                  properties:
                                    node_id:
                                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                      type: string
                                    node_kind:
                                      enum:
                                        - resource
                                        - endpoint
                                        - interface
                                      type: string
                                  required:
                                    - node_kind
                                    - node_id
                                  type: object
                                minItems: 1
                                type: array
                              kind:
                                enum:
                                  - complete-response-inspection
                                  - complete-structured-resource-validation
                                  - bounded-rendered-flow-inspection
                                  - explicit-first-party-declaration
                                  - reviewed-manual-inspection
                                type: string
                              scope:
                                enum:
                                  - exact-resource
                                  - tested-surfaces
                                  - exact-funnel
                                type: string
                            required:
                              - kind
                              - scope
                              - covered_surfaces
                            type: object
                          note:
                            maxLength: 500
                            minLength: 1
                            type: string
                          observed_at:
                            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)))$
                            type: string
                          outcome:
                            enum:
                              - pass
                              - constrained
                              - fail
                              - unknown
                              - not_applicable
                            type: string
                          public_state:
                            enum:
                              - ready
                              - limited
                              - blocked
                              - unknown
                              - not_applicable
                            type: string
                          remediation:
                            additionalProperties: false
                            properties:
                              code:
                                maxLength: 160
                                minLength: 1
                                type: string
                              instruction:
                                maxLength: 500
                                minLength: 1
                                type: string
                              signal_code:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                            required:
                              - signal_code
                              - code
                              - instruction
                            type: object
                          required:
                            type: boolean
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                          tested_surfaces:
                            items:
                              additionalProperties: false
                              properties:
                                node_id:
                                  pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                  type: string
                                node_kind:
                                  enum:
                                    - resource
                                    - endpoint
                                    - interface
                                  type: string
                              required:
                                - node_kind
                                - node_id
                              type: object
                            type: array
                          value:
                            enum:
                              - yes
                              - no
                              - partial
                              - unknown
                              - not_applicable
                            type: string
                          value_label:
                            maxLength: 40
                            minLength: 1
                            type: string
                        required:
                          - signal_code
                          - evaluation_role
                          - required
                          - value
                          - value_label
                          - outcome
                          - public_state
                          - condition
                          - finding
                          - evidence_status
                          - freshness
                          - tested_surfaces
                        type: object
                      type: array
                    stage:
                      enum:
                        - evaluate
                        - sign_up
                        - pay
                        - provision
                        - operate
                      type: string
                    stage_label:
                      maxLength: 40
                      minLength: 1
                      type: string
                    state_label:
                      maxLength: 40
                      minLength: 1
                      type: string
                  required:
                    - stage
                    - stage_label
                    - outcome
                    - public_state
                    - state_label
                    - primary_finding
                    - secondary_context
                    - signals
                    - blockers
                    - remediations
                  type: object
                maxItems: 5
                minItems: 5
                type: array
              state_label:
                maxLength: 40
                minLength: 1
                type: string
              surface_catalog:
                additionalProperties: false
                properties:
                  endpoints:
                    items:
                      additionalProperties: false
                      properties:
                        endpoint_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        operated_by_participant_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        roles:
                          items:
                            enum:
                              - service
                              - authorization
                              - token
                              - registration
                              - protected_resource
                              - checkout
                              - status
                              - recovery
                              - webhook
                            type: string
                          minItems: 1
                          type: array
                        standard_bindings:
                          items:
                            additionalProperties: false
                            properties:
                              namespace:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              relation:
                                enum:
                                  - declares
                                  - describes
                                  - implements
                                  - uses
                                type: string
                              version:
                                maxLength: 160
                                minLength: 1
                                type: string
                            required:
                              - namespace
                              - version
                              - relation
                            type: object
                          type: array
                        transport:
                          enum:
                            - http
                            - websocket
                            - grpc
                          type: string
                        uri:
                          format: uri
                          type: string
                      required:
                        - endpoint_id
                        - uri
                        - transport
                        - roles
                        - operated_by_participant_id
                        - standard_bindings
                      type: object
                    type: array
                  interfaces:
                    items:
                      additionalProperties: false
                      properties:
                        capabilities:
                          items:
                            enum:
                              - api
                              - tools
                              - agent
                              - authentication
                              - commerce
                              - events
                              - recovery
                            type: string
                          minItems: 1
                          type: array
                        endpoint_ids:
                          items:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          type: array
                        interface_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        operated_by_participant_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        resource_ids:
                          items:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          type: array
                        standard_bindings:
                          items:
                            additionalProperties: false
                            properties:
                              namespace:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              relation:
                                enum:
                                  - declares
                                  - describes
                                  - implements
                                  - uses
                                type: string
                              version:
                                maxLength: 160
                                minLength: 1
                                type: string
                            required:
                              - namespace
                              - version
                              - relation
                            type: object
                          type: array
                      required:
                        - interface_id
                        - capabilities
                        - endpoint_ids
                        - resource_ids
                        - operated_by_participant_id
                        - standard_bindings
                      type: object
                    type: array
                  participants:
                    items:
                      additionalProperties: false
                      properties:
                        identity:
                          anyOf:
                            - additionalProperties: false
                              properties:
                                entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - entity_id
                              type: object
                            - additionalProperties: false
                              properties:
                                origin_source_id:
                                  pattern: ^[a-z0-9][a-z0-9_-]*$
                                  type: string
                              required:
                                - origin_source_id
                              type: object
                        participant_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        roles:
                          items:
                            enum:
                              - subject
                              - access_operator
                              - identity_provider
                              - payment_provider
                              - provisioning_provider
                              - operations_provider
                            type: string
                          minItems: 1
                          type: array
                      required:
                        - participant_id
                        - roles
                        - identity
                      type: object
                    type: array
                  relations:
                    items:
                      additionalProperties: false
                      properties:
                        from:
                          additionalProperties: false
                          properties:
                            node_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            node_kind:
                              enum:
                                - resource
                                - endpoint
                                - interface
                              type: string
                          required:
                            - node_kind
                            - node_id
                          type: object
                        kind:
                          enum:
                            - describes
                            - authenticates
                            - requires
                            - alternative_to
                            - precedes
                          type: string
                        relation_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        to:
                          additionalProperties: false
                          properties:
                            node_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            node_kind:
                              enum:
                                - resource
                                - endpoint
                                - interface
                              type: string
                          required:
                            - node_kind
                            - node_id
                          type: object
                      required:
                        - relation_id
                        - kind
                        - from
                        - to
                      type: object
                    type: array
                  resources:
                    items:
                      additionalProperties: false
                      properties:
                        operated_by_participant_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        resource_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        roles:
                          items:
                            enum:
                              - discovery
                              - terms
                              - eligibility
                              - pricing
                              - sign_up
                              - checkout
                              - provisioning
                              - operations
                              - recovery
                              - descriptor
                              - documentation
                              - policy
                              - status
                            type: string
                          minItems: 1
                          type: array
                        standard_bindings:
                          items:
                            additionalProperties: false
                            properties:
                              namespace:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              relation:
                                enum:
                                  - declares
                                  - describes
                                  - implements
                                  - uses
                                type: string
                              version:
                                maxLength: 160
                                minLength: 1
                                type: string
                            required:
                              - namespace
                              - version
                              - relation
                            type: object
                          type: array
                        uri:
                          format: uri
                          type: string
                      required:
                        - resource_id
                        - uri
                        - roles
                        - operated_by_participant_id
                        - standard_bindings
                      type: object
                    type: array
                required:
                  - participants
                  - resources
                  - endpoints
                  - interfaces
                  - relations
                type: object
            required:
              - projection_contract
              - agent_readiness_profile_id
              - entity_id
              - scope
              - catalog_binding
              - declaration_revision_digest
              - declaration
              - surface_catalog
              - lifecycle
              - effective_from
              - revision_digest
              - policy_digest
              - policy_version
              - policy_as_of
              - overall_outcome
              - public_state
              - state_label
              - grade
              - grade_derivation
              - publication
              - stages
              - coverage
              - last_tested_at
              - freshness
              - provenance
              - canonical_url
              - projection_digest
            type: object
          type: array
        next_cursor:
          anyOf:
            - minLength: 1
              type: string
            - type: "null"
        query:
          type: string
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
        - query
        - next_cursor
      type: object
    ListCaptureReceiptsResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            additionalProperties: false
            properties:
              authority_entity_revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              authority_program_revision_digest:
                anyOf:
                  - pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  - type: "null"
              base_release_id:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              capture:
                additionalProperties: false
                properties:
                  availability:
                    enum:
                      - public
                      - restricted
                    type: string
                  bytes:
                    exclusiveMinimum: 0
                    maximum: 9007199254740991
                    type: integer
                  digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  final_url:
                    format: uri
                    type: string
                  media_type:
                    minLength: 1
                    type: string
                  method:
                    enum:
                      - http
                      - headless
                      - archive
                      - manual
                    type: string
                  redirect_chain:
                    items:
                      additionalProperties: false
                      properties:
                        from:
                          format: uri
                          type: string
                        status:
                          anyOf:
                            - const: 301
                              type: number
                            - const: 302
                              type: number
                            - const: 303
                              type: number
                            - const: 307
                              type: number
                            - const: 308
                              type: number
                        to:
                          format: uri
                          type: string
                      required:
                        - status
                        - from
                        - to
                      type: object
                    maxItems: 5
                    type: array
                  requested_url:
                    format: uri
                    type: string
                  retrieved_at:
                    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)))$
                    type: string
                  subject_source_url:
                    format: uri
                    type: string
                required:
                  - subject_source_url
                  - requested_url
                  - final_url
                  - redirect_chain
                  - retrieved_at
                  - method
                  - media_type
                  - digest
                  - bytes
                  - availability
                type: object
              capture_policy_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              issued_at:
                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)))$
                type: string
              issuer_id:
                pattern: ^[a-z0-9][a-z0-9_-]*$
                type: string
              job_id:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              operation_id:
                pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              protected:
                additionalProperties: false
                properties:
                  algorithm:
                    const: ed25519
                    type: string
                  key_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  signature:
                    minLength: 1
                    type: string
                  signature_purpose:
                    enum:
                      - catalog-capture
                      - catalog-evidence
                      - catalog-identity
                      - catalog-authority
                      - catalog-attestation
                      - catalog-verification
                      - catalog-dispute
                      - catalog-policy
                      - catalog-release
                      - catalog-feed
                    type: string
                  signer_registry_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - signature_purpose
                  - signer_registry_digest
                  - key_id
                  - algorithm
                  - signature
                type: object
              receipt_contract:
                const: sourcey.capture-receipt/v1alpha1
                type: string
              receipt_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              review_decision:
                additionalProperties: false
                properties:
                  decided_at:
                    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)))$
                    type: string
                  decision:
                    enum:
                      - approved
                      - rejected
                    type: string
                  decision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  rationale:
                    anyOf:
                      - maxLength: 2000
                        minLength: 1
                        type: string
                      - type: "null"
                  review_decision_contract:
                    const: sourcey.evidence-review-decision/v1alpha1
                    type: string
                  review_proposal_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  reviewer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                required:
                  - review_decision_contract
                  - review_proposal_digest
                  - reviewer_id
                  - decision
                  - decided_at
                  - rationale
                  - decision_digest
                type: object
              subject:
                oneOf:
                  - additionalProperties: false
                    properties:
                      entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      subject_type:
                        const: entity
                        type: string
                    required:
                      - subject_type
                      - entity_id
                      - revision_digest
                    type: object
                  - additionalProperties: false
                    properties:
                      entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      program_id:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      subject_type:
                        const: program
                        type: string
                    required:
                      - subject_type
                      - entity_id
                      - program_id
                      - revision_digest
                    type: object
                  - additionalProperties: false
                    properties:
                      entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      offer_id:
                        pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      program_id:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      subject_type:
                        const: offer
                        type: string
                    required:
                      - subject_type
                      - entity_id
                      - offer_id
                      - revision_digest
                    type: object
                  - additionalProperties: false
                    properties:
                      agent_readiness_profile_id:
                        pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      subject_type:
                        const: agent_readiness_profile
                        type: string
                    required:
                      - subject_type
                      - entity_id
                      - agent_readiness_profile_id
                      - revision_digest
                    type: object
            required:
              - receipt_contract
              - issuer_id
              - operation_id
              - job_id
              - base_release_id
              - subject
              - authority_entity_revision_digest
              - authority_program_revision_digest
              - capture_policy_digest
              - review_decision
              - capture
              - issued_at
              - receipt_digest
              - protected
            type: object
          type: array
        next_cursor:
          anyOf:
            - minLength: 1
              type: string
            - type: "null"
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    ListEntitiesResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/ListEntitiesResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/ListEntitiesResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/ListEntitiesResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            additionalProperties: false
            properties:
              category:
                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                type: string
              description:
                minLength: 1
                type: string
              entity_id:
                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              name:
                minLength: 1
                type: string
              offers:
                items:
                  additionalProperties: false
                  properties:
                    access:
                      additionalProperties: false
                      properties:
                        availability:
                          enum:
                            - public
                            - referral
                            - membership
                            - invite
                            - automatic
                            - other
                          type: string
                        instructions:
                          maxLength: 1000
                          minLength: 1
                          type: string
                        method:
                          enum:
                            - form
                            - code
                            - contact
                            - automatic
                            - other
                          type: string
                        public_code:
                          maxLength: 200
                          minLength: 1
                          type: string
                        url:
                          format: uri
                          type: string
                      required:
                        - availability
                        - method
                      type: object
                    description:
                      minLength: 1
                      type: string
                    economics:
                      additionalProperties: false
                      properties:
                        benefits:
                          items:
                            oneOf:
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: credit
                                    type: string
                                  value:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: exact
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: up-to
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: at-least
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: range
                                            type: string
                                          maximum:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          minimum:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                        required:
                                          - kind
                                          - minimum
                                          - maximum
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - value
                                type: object
                              - additionalProperties: false
                                properties:
                                  applies_to:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: discount
                                    type: string
                                  percentage:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: exact
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: up-to
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: at-least
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: range
                                            type: string
                                          maximum_basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          minimum_basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                        required:
                                          - kind
                                          - minimum_basis_points
                                          - maximum_basis_points
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - percentage
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: cashback
                                    type: string
                                  value:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: money
                                            type: string
                                          value:
                                            oneOf:
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: exact
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: up-to
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: at-least
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  kind:
                                                    const: range
                                                    type: string
                                                  maximum:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  minimum:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                required:
                                                  - kind
                                                  - minimum
                                                  - maximum
                                                type: object
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: percentage
                                            type: string
                                          value:
                                            oneOf:
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: exact
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: up-to
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: at-least
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  kind:
                                                    const: range
                                                    type: string
                                                  maximum_basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  minimum_basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                required:
                                                  - kind
                                                  - minimum_basis_points
                                                  - maximum_basis_points
                                                type: object
                                        required:
                                          - kind
                                          - value
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - value
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: waiver
                                    type: string
                                  waived_item:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - waived_item
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: free-service
                                    type: string
                                  service:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - service
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: other
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                type: object
                          minItems: 1
                          type: array
                        consideration:
                          oneOf:
                            - additionalProperties: false
                              properties:
                                kind:
                                  const: none
                                  type: string
                              required:
                                - kind
                              type: object
                            - additionalProperties: false
                              properties:
                                amount:
                                  additionalProperties: false
                                  properties:
                                    currency:
                                      pattern: ^[A-Z]{3}$
                                      type: string
                                    minor_units:
                                      maximum: 9007199254740991
                                      minimum: 0
                                      type: integer
                                  required:
                                    - currency
                                    - minor_units
                                  type: object
                                kind:
                                  const: fixed
                                  type: string
                              required:
                                - kind
                                - amount
                              type: object
                            - additionalProperties: false
                              properties:
                                description:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                kind:
                                  const: variable
                                  type: string
                              required:
                                - kind
                                - description
                              type: object
                            - additionalProperties: false
                              properties:
                                description:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                kind:
                                  const: unknown
                                  type: string
                              required:
                                - kind
                                - description
                              type: object
                      required:
                        - consideration
                        - benefits
                      type: object
                    effective_from:
                      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)))$
                      type: string
                    effective_until:
                      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)))$
                      type: string
                    eligibility:
                      additionalProperties: false
                      properties:
                        rule:
                          $ref: "#/components/schemas/ListEntitiesResponse200/$defs/__schema0"
                      required:
                        - rule
                      type: object
                    lifecycle:
                      enum:
                        - active
                        - ended
                        - withdrawn
                      type: string
                    offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    roles:
                      additionalProperties: false
                      properties:
                        access_operator_entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        terms_authority_entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                      required:
                        - terms_authority_entity_id
                        - access_operator_entity_id
                      type: object
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    terms_url:
                      format: uri
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - offer_id
                    - slug
                    - title
                    - summary
                    - economics
                    - eligibility
                    - roles
                    - access
                    - lifecycle
                    - effective_from
                    - revision_digest
                    - provenance
                  type: object
                type: array
              programs:
                items:
                  additionalProperties: false
                  properties:
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - program_id
                    - slug
                    - title
                    - revision_digest
                    - provenance
                  type: object
                type: array
              provenance:
                additionalProperties: false
                properties:
                  attestation_event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  basis_event_ids:
                    items:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    minItems: 1
                    type: array
                  coverage_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  dispute:
                    enum:
                      - none
                      - open
                      - resolved
                    type: string
                  fields:
                    items:
                      additionalProperties: false
                      properties:
                        accepted_proof_kinds:
                          items:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                          minItems: 1
                          type: array
                        contradicting_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          type: array
                        evidence_proof_kinds:
                          items:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        latest_observation_at:
                          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)))$
                          type: string
                        path:
                          pattern: ^\/.*
                          type: string
                        supporting_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          type: array
                      required:
                        - path
                        - supporting_event_ids
                        - contradicting_event_ids
                        - accepted_proof_kinds
                        - evidence_proof_kinds
                        - freshness
                      type: object
                    minItems: 1
                    type: array
                  freshness:
                    enum:
                      - fresh
                      - stale
                      - unknown
                    type: string
                  freshness_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  tier:
                    enum:
                      - observed
                      - signed
                      - verified
                    type: string
                  verification_event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - tier
                  - freshness
                  - dispute
                  - coverage_policy_digest
                  - freshness_policy_digest
                  - basis_event_ids
                  - fields
                type: object
              revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              slug:
                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                type: string
              website:
                format: uri
                type: string
            required:
              - entity_id
              - slug
              - name
              - description
              - website
              - category
              - revision_digest
              - provenance
              - programs
              - offers
            type: object
          type: array
        next_cursor:
          anyOf:
            - minLength: 1
              type: string
            - type: "null"
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    ListEntityAgentReadinessProfilesResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            additionalProperties: false
            properties:
              agent_readiness_profile_id:
                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              canonical_url:
                format: uri
                type: string
              catalog_binding:
                additionalProperties: false
                properties:
                  base_release_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  entity_revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - base_release_id
                  - entity_revision_digest
                type: object
              coverage:
                additionalProperties: false
                properties:
                  covered_signals:
                    maximum: 9007199254740991
                    minimum: 0
                    type: integer
                  ratio:
                    maximum: 1
                    minimum: 0
                    type: number
                  required_signals:
                    maximum: 9007199254740991
                    minimum: 0
                    type: integer
                  status:
                    enum:
                      - complete
                      - partial
                      - insufficient
                    type: string
                required:
                  - status
                  - required_signals
                  - covered_signals
                  - ratio
                type: object
              declaration:
                oneOf:
                  - additionalProperties: false
                    properties:
                      status:
                        const: none
                        type: string
                    required:
                      - status
                    type: object
                  - additionalProperties: false
                    properties:
                      declaration_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      provenance:
                        additionalProperties: false
                        properties:
                          blob_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          commit:
                            pattern: ^[a-f0-9]{40,64}$
                            type: string
                          git_blob_oid:
                            pattern: ^[a-f0-9]{40,64}$
                            type: string
                          path:
                            pattern: ^vendors\/[a-z0-9]{1,2}\/[a-z0-9]+(?:-[a-z0-9]+)*\.yaml$
                            type: string
                          repository:
                            const: sourcey/agent-ready-services
                            type: string
                        required:
                          - repository
                          - commit
                          - path
                          - git_blob_oid
                          - blob_digest
                        type: object
                      status:
                        enum:
                          - community_declared
                          - vendor_declared
                        type: string
                    required:
                      - declaration_id
                      - provenance
                      - status
                    type: object
              declaration_revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              effective_from:
                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)))$
                type: string
              effective_until:
                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)))$
                type: string
              entity_id:
                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              first_autonomy_break:
                additionalProperties: false
                properties:
                  blocker:
                    additionalProperties: false
                    properties:
                      code:
                        maxLength: 160
                        minLength: 1
                        type: string
                      explanation:
                        maxLength: 500
                        minLength: 1
                        type: string
                      signal_code:
                        pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                        type: string
                    required:
                      - signal_code
                      - code
                      - explanation
                    type: object
                  finding:
                    additionalProperties: false
                    properties:
                      condition:
                        maxLength: 160
                        minLength: 1
                        type: string
                      finding:
                        maxLength: 280
                        minLength: 1
                        type: string
                      signal_code:
                        pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                        type: string
                    required:
                      - signal_code
                      - condition
                      - finding
                    type: object
                  public_state:
                    enum:
                      - limited
                      - blocked
                    type: string
                  stage:
                    enum:
                      - evaluate
                      - sign_up
                      - pay
                      - provision
                      - operate
                    type: string
                  stage_label:
                    maxLength: 40
                    minLength: 1
                    type: string
                required:
                  - stage
                  - stage_label
                  - public_state
                  - finding
                type: object
              freshness:
                enum:
                  - fresh
                  - stale
                  - unknown
                type: string
              grade:
                enum:
                  - A+
                  - A
                  - B+
                  - B
                  - C+
                  - C
                  - D
                  - F
                  - unrated
                type: string
              grade_derivation:
                additionalProperties: false
                properties:
                  coverage_rule:
                    maxLength: 280
                    minLength: 1
                    type: string
                  explanation:
                    maxLength: 500
                    minLength: 1
                    type: string
                  label:
                    maxLength: 80
                    minLength: 1
                    type: string
                  outcome_rule:
                    maxLength: 280
                    minLength: 1
                    type: string
                required:
                  - label
                  - explanation
                  - coverage_rule
                  - outcome_rule
                type: object
              last_tested_at:
                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)))$
                type: string
              lifecycle:
                enum:
                  - active
                  - ended
                  - withdrawn
                type: string
              overall_outcome:
                enum:
                  - pass
                  - constrained
                  - fail
                  - unknown
                  - not_applicable
                type: string
              policy_as_of:
                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)))$
                type: string
              policy_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              policy_version:
                minLength: 1
                type: string
              projection_contract:
                const: sourcey.agent-readiness-projection/v1alpha1
                type: string
              projection_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              provenance:
                additionalProperties: false
                properties:
                  attestation_event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  basis_event_ids:
                    items:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    minItems: 1
                    type: array
                  coverage_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  dispute:
                    enum:
                      - none
                      - open
                      - resolved
                    type: string
                  fields:
                    items:
                      additionalProperties: false
                      properties:
                        accepted_proof_kinds:
                          items:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                          minItems: 1
                          type: array
                        contradicting_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          type: array
                        evidence_proof_kinds:
                          items:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        latest_observation_at:
                          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)))$
                          type: string
                        path:
                          pattern: ^\/.*
                          type: string
                        supporting_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          type: array
                      required:
                        - path
                        - supporting_event_ids
                        - contradicting_event_ids
                        - accepted_proof_kinds
                        - evidence_proof_kinds
                        - freshness
                      type: object
                    minItems: 1
                    type: array
                  freshness:
                    enum:
                      - fresh
                      - stale
                      - unknown
                    type: string
                  freshness_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  tier:
                    enum:
                      - observed
                      - signed
                      - verified
                    type: string
                  verification_event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - tier
                  - freshness
                  - dispute
                  - coverage_policy_digest
                  - freshness_policy_digest
                  - basis_event_ids
                  - fields
                type: object
              public_state:
                enum:
                  - ready
                  - limited
                  - blocked
                  - unknown
                  - not_applicable
                type: string
              publication:
                additionalProperties: false
                properties:
                  reasons:
                    items:
                      enum:
                        - lifecycle_not_active
                        - coverage_incomplete
                        - required_evidence_not_supported
                        - freshness_not_fresh
                        - unrated
                        - no_useful_finding
                        - open_dispute
                      type: string
                    type: array
                  visibility:
                    enum:
                      - discoverable
                      - resolvable_only
                      - private
                    type: string
                required:
                  - visibility
                  - reasons
                type: object
              revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              scope:
                additionalProperties: false
                properties:
                  funnel:
                    additionalProperties: false
                    properties:
                      key:
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                      name:
                        maxLength: 160
                        minLength: 1
                        type: string
                    required:
                      - key
                      - name
                    type: object
                  product:
                    additionalProperties: false
                    properties:
                      key:
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                      name:
                        maxLength: 160
                        minLength: 1
                        type: string
                    required:
                      - key
                      - name
                    type: object
                required:
                  - product
                  - funnel
                type: object
              stages:
                items:
                  additionalProperties: false
                  properties:
                    blockers:
                      items:
                        additionalProperties: false
                        properties:
                          code:
                            maxLength: 160
                            minLength: 1
                            type: string
                          explanation:
                            maxLength: 500
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - code
                          - explanation
                        type: object
                      type: array
                    outcome:
                      enum:
                        - pass
                        - constrained
                        - fail
                        - unknown
                        - not_applicable
                      type: string
                    primary_finding:
                      additionalProperties: false
                      properties:
                        condition:
                          maxLength: 160
                          minLength: 1
                          type: string
                        finding:
                          maxLength: 280
                          minLength: 1
                          type: string
                        signal_code:
                          pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                          type: string
                      required:
                        - signal_code
                        - condition
                        - finding
                      type: object
                    public_state:
                      enum:
                        - ready
                        - limited
                        - blocked
                        - unknown
                        - not_applicable
                      type: string
                    remediations:
                      items:
                        additionalProperties: false
                        properties:
                          code:
                            maxLength: 160
                            minLength: 1
                            type: string
                          instruction:
                            maxLength: 500
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - code
                          - instruction
                        type: object
                      type: array
                    secondary_context:
                      items:
                        additionalProperties: false
                        properties:
                          condition:
                            maxLength: 160
                            minLength: 1
                            type: string
                          finding:
                            maxLength: 280
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - condition
                          - finding
                        type: object
                      type: array
                    signals:
                      items:
                        additionalProperties: false
                        properties:
                          assessment_method:
                            additionalProperties: false
                            properties:
                              method_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              name:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              version:
                                maxLength: 160
                                minLength: 1
                                type: string
                            required:
                              - name
                              - version
                              - method_digest
                            type: object
                          blocker:
                            additionalProperties: false
                            properties:
                              code:
                                maxLength: 160
                                minLength: 1
                                type: string
                              explanation:
                                maxLength: 500
                                minLength: 1
                                type: string
                              signal_code:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                            required:
                              - signal_code
                              - code
                              - explanation
                            type: object
                          condition:
                            maxLength: 160
                            minLength: 1
                            type: string
                          evaluation_role:
                            enum:
                              - graded
                              - informational
                            type: string
                          evidence_status:
                            enum:
                              - supported
                              - contradicted
                              - mixed
                              - missing
                            type: string
                          finding:
                            maxLength: 280
                            minLength: 1
                            type: string
                          freshness:
                            enum:
                              - fresh
                              - stale
                              - unknown
                            type: string
                          negative_coverage:
                            additionalProperties: false
                            properties:
                              covered_surfaces:
                                items:
                                  additionalProperties: false
                                  properties:
                                    node_id:
                                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                      type: string
                                    node_kind:
                                      enum:
                                        - resource
                                        - endpoint
                                        - interface
                                      type: string
                                  required:
                                    - node_kind
                                    - node_id
                                  type: object
                                minItems: 1
                                type: array
                              kind:
                                enum:
                                  - complete-response-inspection
                                  - complete-structured-resource-validation
                                  - bounded-rendered-flow-inspection
                                  - explicit-first-party-declaration
                                  - reviewed-manual-inspection
                                type: string
                              scope:
                                enum:
                                  - exact-resource
                                  - tested-surfaces
                                  - exact-funnel
                                type: string
                            required:
                              - kind
                              - scope
                              - covered_surfaces
                            type: object
                          note:
                            maxLength: 500
                            minLength: 1
                            type: string
                          observed_at:
                            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)))$
                            type: string
                          outcome:
                            enum:
                              - pass
                              - constrained
                              - fail
                              - unknown
                              - not_applicable
                            type: string
                          public_state:
                            enum:
                              - ready
                              - limited
                              - blocked
                              - unknown
                              - not_applicable
                            type: string
                          remediation:
                            additionalProperties: false
                            properties:
                              code:
                                maxLength: 160
                                minLength: 1
                                type: string
                              instruction:
                                maxLength: 500
                                minLength: 1
                                type: string
                              signal_code:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                            required:
                              - signal_code
                              - code
                              - instruction
                            type: object
                          required:
                            type: boolean
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                          tested_surfaces:
                            items:
                              additionalProperties: false
                              properties:
                                node_id:
                                  pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                  type: string
                                node_kind:
                                  enum:
                                    - resource
                                    - endpoint
                                    - interface
                                  type: string
                              required:
                                - node_kind
                                - node_id
                              type: object
                            type: array
                          value:
                            enum:
                              - yes
                              - no
                              - partial
                              - unknown
                              - not_applicable
                            type: string
                          value_label:
                            maxLength: 40
                            minLength: 1
                            type: string
                        required:
                          - signal_code
                          - evaluation_role
                          - required
                          - value
                          - value_label
                          - outcome
                          - public_state
                          - condition
                          - finding
                          - evidence_status
                          - freshness
                          - tested_surfaces
                        type: object
                      type: array
                    stage:
                      enum:
                        - evaluate
                        - sign_up
                        - pay
                        - provision
                        - operate
                      type: string
                    stage_label:
                      maxLength: 40
                      minLength: 1
                      type: string
                    state_label:
                      maxLength: 40
                      minLength: 1
                      type: string
                  required:
                    - stage
                    - stage_label
                    - outcome
                    - public_state
                    - state_label
                    - primary_finding
                    - secondary_context
                    - signals
                    - blockers
                    - remediations
                  type: object
                maxItems: 5
                minItems: 5
                type: array
              state_label:
                maxLength: 40
                minLength: 1
                type: string
              surface_catalog:
                additionalProperties: false
                properties:
                  endpoints:
                    items:
                      additionalProperties: false
                      properties:
                        endpoint_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        operated_by_participant_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        roles:
                          items:
                            enum:
                              - service
                              - authorization
                              - token
                              - registration
                              - protected_resource
                              - checkout
                              - status
                              - recovery
                              - webhook
                            type: string
                          minItems: 1
                          type: array
                        standard_bindings:
                          items:
                            additionalProperties: false
                            properties:
                              namespace:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              relation:
                                enum:
                                  - declares
                                  - describes
                                  - implements
                                  - uses
                                type: string
                              version:
                                maxLength: 160
                                minLength: 1
                                type: string
                            required:
                              - namespace
                              - version
                              - relation
                            type: object
                          type: array
                        transport:
                          enum:
                            - http
                            - websocket
                            - grpc
                          type: string
                        uri:
                          format: uri
                          type: string
                      required:
                        - endpoint_id
                        - uri
                        - transport
                        - roles
                        - operated_by_participant_id
                        - standard_bindings
                      type: object
                    type: array
                  interfaces:
                    items:
                      additionalProperties: false
                      properties:
                        capabilities:
                          items:
                            enum:
                              - api
                              - tools
                              - agent
                              - authentication
                              - commerce
                              - events
                              - recovery
                            type: string
                          minItems: 1
                          type: array
                        endpoint_ids:
                          items:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          type: array
                        interface_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        operated_by_participant_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        resource_ids:
                          items:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          type: array
                        standard_bindings:
                          items:
                            additionalProperties: false
                            properties:
                              namespace:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              relation:
                                enum:
                                  - declares
                                  - describes
                                  - implements
                                  - uses
                                type: string
                              version:
                                maxLength: 160
                                minLength: 1
                                type: string
                            required:
                              - namespace
                              - version
                              - relation
                            type: object
                          type: array
                      required:
                        - interface_id
                        - capabilities
                        - endpoint_ids
                        - resource_ids
                        - operated_by_participant_id
                        - standard_bindings
                      type: object
                    type: array
                  participants:
                    items:
                      additionalProperties: false
                      properties:
                        identity:
                          anyOf:
                            - additionalProperties: false
                              properties:
                                entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - entity_id
                              type: object
                            - additionalProperties: false
                              properties:
                                origin_source_id:
                                  pattern: ^[a-z0-9][a-z0-9_-]*$
                                  type: string
                              required:
                                - origin_source_id
                              type: object
                        participant_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        roles:
                          items:
                            enum:
                              - subject
                              - access_operator
                              - identity_provider
                              - payment_provider
                              - provisioning_provider
                              - operations_provider
                            type: string
                          minItems: 1
                          type: array
                      required:
                        - participant_id
                        - roles
                        - identity
                      type: object
                    type: array
                  relations:
                    items:
                      additionalProperties: false
                      properties:
                        from:
                          additionalProperties: false
                          properties:
                            node_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            node_kind:
                              enum:
                                - resource
                                - endpoint
                                - interface
                              type: string
                          required:
                            - node_kind
                            - node_id
                          type: object
                        kind:
                          enum:
                            - describes
                            - authenticates
                            - requires
                            - alternative_to
                            - precedes
                          type: string
                        relation_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        to:
                          additionalProperties: false
                          properties:
                            node_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            node_kind:
                              enum:
                                - resource
                                - endpoint
                                - interface
                              type: string
                          required:
                            - node_kind
                            - node_id
                          type: object
                      required:
                        - relation_id
                        - kind
                        - from
                        - to
                      type: object
                    type: array
                  resources:
                    items:
                      additionalProperties: false
                      properties:
                        operated_by_participant_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        resource_id:
                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                          type: string
                        roles:
                          items:
                            enum:
                              - discovery
                              - terms
                              - eligibility
                              - pricing
                              - sign_up
                              - checkout
                              - provisioning
                              - operations
                              - recovery
                              - descriptor
                              - documentation
                              - policy
                              - status
                            type: string
                          minItems: 1
                          type: array
                        standard_bindings:
                          items:
                            additionalProperties: false
                            properties:
                              namespace:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              relation:
                                enum:
                                  - declares
                                  - describes
                                  - implements
                                  - uses
                                type: string
                              version:
                                maxLength: 160
                                minLength: 1
                                type: string
                            required:
                              - namespace
                              - version
                              - relation
                            type: object
                          type: array
                        uri:
                          format: uri
                          type: string
                      required:
                        - resource_id
                        - uri
                        - roles
                        - operated_by_participant_id
                        - standard_bindings
                      type: object
                    type: array
                required:
                  - participants
                  - resources
                  - endpoints
                  - interfaces
                  - relations
                type: object
            required:
              - projection_contract
              - agent_readiness_profile_id
              - entity_id
              - scope
              - catalog_binding
              - declaration_revision_digest
              - declaration
              - surface_catalog
              - lifecycle
              - effective_from
              - revision_digest
              - policy_digest
              - policy_version
              - policy_as_of
              - overall_outcome
              - public_state
              - state_label
              - grade
              - grade_derivation
              - publication
              - stages
              - coverage
              - last_tested_at
              - freshness
              - provenance
              - canonical_url
              - projection_digest
            type: object
          type: array
        entity_id:
          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
          type: string
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
        - entity_id
      type: object
    ListEventsResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            anyOf:
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: evidence.bound
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      assertions:
                        items:
                          additionalProperties: false
                          properties:
                            derivation_rule:
                              anyOf:
                                - enum:
                                    - contact-access-from-first-party-mailto
                                    - form-access-from-first-party-application
                                    - first-party-access-operator
                                    - public-availability-from-application
                                  type: string
                                - type: "null"
                            locators:
                              items:
                                additionalProperties: false
                                properties:
                                  end_byte:
                                    exclusiveMinimum: 0
                                    maximum: 9007199254740991
                                    type: integer
                                  kind:
                                    const: utf8-range
                                    type: string
                                  start_byte:
                                    maximum: 9007199254740991
                                    minimum: 0
                                    type: integer
                                  value_digest:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                required:
                                  - kind
                                  - start_byte
                                  - end_byte
                                  - value_digest
                                type: object
                              maxItems: 16
                              minItems: 1
                              type: array
                            path:
                              pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                              type: string
                            polarity:
                              enum:
                                - supports
                                - contradicts
                              type: string
                            proof_kind:
                              enum:
                                - observed
                                - derived
                                - editorial
                              type: string
                          required:
                            - path
                            - polarity
                            - proof_kind
                            - derivation_rule
                            - locators
                          type: object
                        maxItems: 128
                        minItems: 1
                        type: array
                      authority_entity_revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      authority_program_revision_digest:
                        anyOf:
                          - pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          - type: "null"
                      binding_method:
                        minLength: 1
                        type: string
                      binding_version:
                        minLength: 1
                        type: string
                      capture_receipt_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      normalized_object_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      observation_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      paths:
                        items:
                          pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                          type: string
                        minItems: 1
                        type: array
                      polarity:
                        enum:
                          - supports
                          - contradicts
                        type: string
                    required:
                      - observation_id
                      - normalized_object_digest
                      - authority_entity_revision_digest
                      - authority_program_revision_digest
                      - assertions
                      - paths
                      - polarity
                      - binding_method
                      - binding_version
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: evidence.retracted
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      adjudication_evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      reason_code:
                        minLength: 1
                        type: string
                      replacement_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      target_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - target_event_id
                      - reason_code
                      - adjudication_evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: discrepancy.resolved
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      active_event_ids:
                        items:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        type: array
                      conflicting_event_ids:
                        items:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        minItems: 2
                        type: array
                      evidence_digests:
                        items:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        minItems: 1
                        type: array
                      outcome:
                        enum:
                          - support-prevails
                          - contradiction-prevails
                          - both-invalid
                          - new-revision-required
                        type: string
                      replacement_revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - conflicting_event_ids
                      - outcome
                      - active_event_ids
                      - evidence_digests
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: authority.claimed
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      authority_claim_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      authorized_issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      controlled_domain:
                        minLength: 1
                        type: string
                      method:
                        description: Proof method identifier. Known values are examples; new methods may appear without
                          changing the event envelope.
                        examples:
                          - dns-txt
                          - domain-email
                          - well-known
                          - inbound-dkim
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                        x-sourcey-extensible-enum: true
                      proof_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      proven_at:
                        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)))$
                        type: string
                      recheck_due_at:
                        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)))$
                        type: string
                    required:
                      - authority_claim_id
                      - authorized_issuer_id
                      - controlled_domain
                      - method
                      - proof_digest
                      - proven_at
                      - recheck_due_at
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: authority.rechecked
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      authority_claim_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      checked_at:
                        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)))$
                        type: string
                      next_recheck_due_at:
                        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)))$
                        type: string
                    required:
                      - authority_claim_id
                      - checked_at
                      - next_recheck_due_at
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: authority.revoked
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      authority_claim_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      reason_code:
                        minLength: 1
                        type: string
                      revoked_at:
                        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)))$
                        type: string
                    required:
                      - authority_claim_id
                      - revoked_at
                      - reason_code
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: authority.superseded
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      new_authority_claim_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      old_authority_claim_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      superseded_at:
                        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)))$
                        type: string
                    required:
                      - old_authority_claim_id
                      - new_authority_claim_id
                      - superseded_at
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: subject.attested
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      attested_at:
                        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)))$
                        type: string
                      authority_claim_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                    required:
                      - authority_claim_id
                      - attested_at
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: attestation.revoked
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      authority_claim_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      reason_code:
                        minLength: 1
                        type: string
                      revoked_at:
                        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)))$
                        type: string
                      target_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - target_event_id
                      - authority_claim_id
                      - revoked_at
                      - reason_code
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: verification.completed
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      checked_at:
                        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)))$
                        type: string
                      coverage_policy_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      method_version:
                        minLength: 1
                        type: string
                      receipt_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      result:
                        enum:
                          - pass
                          - fail
                          - inconclusive
                        type: string
                      scope:
                        enum:
                          - whole-revision
                          - paths
                        type: string
                      verification_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      verified_paths:
                        items:
                          pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                          type: string
                        type: array
                      verifier_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                    required:
                      - verification_id
                      - verifier_id
                      - method_version
                      - scope
                      - verified_paths
                      - result
                      - receipt_digest
                      - checked_at
                      - coverage_policy_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: verification.revoked
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      reason_code:
                        minLength: 1
                        type: string
                      revoked_at:
                        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)))$
                        type: string
                      target_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - target_event_id
                      - revoked_at
                      - reason_code
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: freshness.exception-granted
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      paths:
                        items:
                          pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                          type: string
                        minItems: 1
                        type: array
                      reason_code:
                        minLength: 1
                        type: string
                      valid_until:
                        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)))$
                        type: string
                    required:
                      - paths
                      - valid_until
                      - reason_code
                      - evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: freshness.exception-revoked
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      reason_code:
                        minLength: 1
                        type: string
                      revoked_at:
                        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)))$
                        type: string
                      target_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - target_event_id
                      - revoked_at
                      - reason_code
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: dispute.opened
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      case_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      dispute_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      opened_at:
                        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)))$
                        type: string
                      public_reason_code:
                        minLength: 1
                        type: string
                    required:
                      - dispute_id
                      - opened_at
                      - public_reason_code
                      - case_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: dispute.resolved
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      case_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      dispute_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      opened_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      resolution_code:
                        minLength: 1
                        type: string
                      resolved_at:
                        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)))$
                        type: string
                    required:
                      - dispute_id
                      - opened_event_id
                      - resolved_at
                      - resolution_code
                      - case_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: asset.bound
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      approval_receipt_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      approval_scope:
                        minLength: 1
                        type: string
                      asset_object_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      authority_claim_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      effective_from:
                        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)))$
                        type: string
                      effective_until:
                        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)))$
                        type: string
                      license_basis:
                        minLength: 1
                        type: string
                      role:
                        enum:
                          - logo-light
                          - logo-dark
                          - icon
                        type: string
                      served_derivative_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      source_basis:
                        minLength: 1
                        type: string
                      superseded_binding_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - role
                      - asset_object_digest
                      - served_derivative_digest
                      - authority_claim_id
                      - approval_receipt_digest
                      - approval_scope
                      - source_basis
                      - license_basis
                      - effective_from
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: asset.withdrawn
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      effective_at:
                        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)))$
                        type: string
                      reason_code:
                        minLength: 1
                        type: string
                      target_binding_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - target_binding_event_id
                      - effective_at
                      - reason_code
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: asset.takedown-ordered
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      case_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      effective_at:
                        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)))$
                        type: string
                      public_reason_code:
                        minLength: 1
                        type: string
                      target_binding_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - target_binding_event_id
                      - effective_at
                      - public_reason_code
                      - case_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: entity.merged
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      disposition:
                        additionalProperties: false
                        properties:
                          agent_readiness_profiles:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                agent_readiness_profile_id:
                                  pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                target_agent_readiness_profile_id:
                                  pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - agent_readiness_profile_id
                                - disposition
                              type: object
                            type: array
                          aliases:
                            default: []
                            items:
                              type: string
                            type: array
                          asset_bindings:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                binding_event_id:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                disposition:
                                  enum:
                                    - rebind
                                    - end
                                  type: string
                                replacement_binding_event_id:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                              required:
                                - binding_event_id
                                - disposition
                              type: object
                            type: array
                          offers:
                            items:
                              additionalProperties: false
                              properties:
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                offer_id:
                                  pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_offer_id:
                                  pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - offer_id
                                - disposition
                              type: object
                            type: array
                          programs:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                program_id:
                                  pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_program_id:
                                  pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - program_id
                                - disposition
                              type: object
                            type: array
                        required:
                          - aliases
                          - programs
                          - offers
                          - agent_readiness_profiles
                          - asset_bindings
                        type: object
                      effective_at:
                        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)))$
                        type: string
                      evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      reason:
                        minLength: 1
                        type: string
                      retired_entity_ids:
                        items:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        minItems: 1
                        type: array
                      surviving_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                    required:
                      - surviving_entity_id
                      - retired_entity_ids
                      - disposition
                      - effective_at
                      - reason
                      - evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: entity.split
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      continuing_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      disposition:
                        additionalProperties: false
                        properties:
                          agent_readiness_profiles:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                agent_readiness_profile_id:
                                  pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                target_agent_readiness_profile_id:
                                  pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - agent_readiness_profile_id
                                - disposition
                              type: object
                            type: array
                          aliases:
                            default: []
                            items:
                              type: string
                            type: array
                          asset_bindings:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                binding_event_id:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                disposition:
                                  enum:
                                    - rebind
                                    - end
                                  type: string
                                replacement_binding_event_id:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                              required:
                                - binding_event_id
                                - disposition
                              type: object
                            type: array
                          offers:
                            items:
                              additionalProperties: false
                              properties:
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                offer_id:
                                  pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_offer_id:
                                  pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - offer_id
                                - disposition
                              type: object
                            type: array
                          programs:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                program_id:
                                  pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_program_id:
                                  pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - program_id
                                - disposition
                              type: object
                            type: array
                        required:
                          - aliases
                          - programs
                          - offers
                          - agent_readiness_profiles
                          - asset_bindings
                        type: object
                      effective_at:
                        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)))$
                        type: string
                      evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      new_entity_ids:
                        items:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        minItems: 1
                        type: array
                      original_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      reason:
                        minLength: 1
                        type: string
                    required:
                      - original_entity_id
                      - new_entity_ids
                      - disposition
                      - effective_at
                      - reason
                      - evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: entity.succeeded
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      disposition:
                        additionalProperties: false
                        properties:
                          agent_readiness_profiles:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                agent_readiness_profile_id:
                                  pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                target_agent_readiness_profile_id:
                                  pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - agent_readiness_profile_id
                                - disposition
                              type: object
                            type: array
                          aliases:
                            default: []
                            items:
                              type: string
                            type: array
                          asset_bindings:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                binding_event_id:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                disposition:
                                  enum:
                                    - rebind
                                    - end
                                  type: string
                                replacement_binding_event_id:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                              required:
                                - binding_event_id
                                - disposition
                              type: object
                            type: array
                          offers:
                            items:
                              additionalProperties: false
                              properties:
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                offer_id:
                                  pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_offer_id:
                                  pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - offer_id
                                - disposition
                              type: object
                            type: array
                          programs:
                            default: []
                            items:
                              additionalProperties: false
                              properties:
                                disposition:
                                  enum:
                                    - merge
                                    - reparent
                                    - end
                                  type: string
                                program_id:
                                  pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_entity_id:
                                  pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                                target_program_id:
                                  pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                  type: string
                              required:
                                - program_id
                                - disposition
                              type: object
                            type: array
                        required:
                          - aliases
                          - programs
                          - offers
                          - agent_readiness_profiles
                          - asset_bindings
                        type: object
                      effective_at:
                        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)))$
                        type: string
                      evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      predecessor_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      predecessor_retires:
                        type: boolean
                      relationship_code:
                        minLength: 1
                        type: string
                      successor_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                    required:
                      - predecessor_entity_id
                      - successor_entity_id
                      - relationship_code
                      - predecessor_retires
                      - effective_at
                      - evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: offer.merged
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      effective_at:
                        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)))$
                        type: string
                      entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      reason:
                        minLength: 1
                        type: string
                      retired_offer_ids:
                        items:
                          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        minItems: 1
                        type: array
                      surviving_offer_id:
                        pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                    required:
                      - surviving_offer_id
                      - retired_offer_ids
                      - entity_id
                      - effective_at
                      - reason
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: program.merged
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      effective_at:
                        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)))$
                        type: string
                      entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      reason:
                        minLength: 1
                        type: string
                      retired_program_ids:
                        items:
                          pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        minItems: 1
                        type: array
                      surviving_program_id:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                    required:
                      - surviving_program_id
                      - retired_program_ids
                      - entity_id
                      - effective_at
                      - reason
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: program.reparented
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      continuity_evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      new_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      old_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      program_id:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      valid_from:
                        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)))$
                        type: string
                      valid_until:
                        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)))$
                        type: string
                    required:
                      - program_id
                      - old_entity_id
                      - new_entity_id
                      - valid_from
                      - continuity_evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: offer.reparented
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      continuity_evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      new_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      offer_id:
                        pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      old_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      valid_from:
                        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)))$
                        type: string
                      valid_until:
                        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)))$
                        type: string
                    required:
                      - offer_id
                      - old_entity_id
                      - new_entity_id
                      - valid_from
                      - continuity_evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: agent-readiness-profile.merged
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      continuity_evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      effective_at:
                        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)))$
                        type: string
                      entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      reason:
                        minLength: 1
                        type: string
                      retired_agent_readiness_profile_ids:
                        items:
                          pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        minItems: 1
                        type: array
                      surviving_agent_readiness_profile_id:
                        pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                    required:
                      - surviving_agent_readiness_profile_id
                      - retired_agent_readiness_profile_ids
                      - entity_id
                      - effective_at
                      - continuity_evidence_digest
                      - reason
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: agent-readiness-profile.reparented
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      agent_readiness_profile_id:
                        pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      continuity_evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      new_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      old_entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      valid_from:
                        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)))$
                        type: string
                      valid_until:
                        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)))$
                        type: string
                    required:
                      - agent_readiness_profile_id
                      - old_entity_id
                      - new_entity_id
                      - valid_from
                      - continuity_evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: identity.transition-superseded
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      corrected_at:
                        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)))$
                        type: string
                      evidence_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      reason:
                        minLength: 1
                        type: string
                      replacement_event_ids:
                        items:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        minItems: 1
                        type: array
                      target_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - target_event_id
                      - replacement_event_ids
                      - corrected_at
                      - reason
                      - evidence_digest
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
              - additionalProperties: false
                properties:
                  event_contract:
                    const: sourcey.catalog-event/v1alpha1
                    type: string
                  event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  kind:
                    const: offer.retired
                    type: string
                  occurred_at:
                    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)))$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  payload:
                    additionalProperties: false
                    properties:
                      effective_at:
                        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)))$
                        type: string
                      entity_id:
                        pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      offer_id:
                        pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      reason_code:
                        minLength: 1
                        type: string
                    required:
                      - offer_id
                      - entity_id
                      - effective_at
                      - reason_code
                    type: object
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                        type: object
                required:
                  - event_contract
                  - kind
                  - issuer_id
                  - operation_id
                  - subject
                  - occurred_at
                  - payload
                  - event_id
                  - protected
                type: object
          type: array
        next_cursor:
          anyOf:
            - minLength: 1
              type: string
            - type: "null"
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    ListOfferAgentReadinessProfilesResponse200:
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            additionalProperties: false
            properties:
              profile:
                additionalProperties: false
                properties:
                  agent_readiness_profile_id:
                    pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  canonical_url:
                    format: uri
                    type: string
                  catalog_binding:
                    additionalProperties: false
                    properties:
                      base_release_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      entity_revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - base_release_id
                      - entity_revision_digest
                    type: object
                  coverage:
                    additionalProperties: false
                    properties:
                      covered_signals:
                        maximum: 9007199254740991
                        minimum: 0
                        type: integer
                      ratio:
                        maximum: 1
                        minimum: 0
                        type: number
                      required_signals:
                        maximum: 9007199254740991
                        minimum: 0
                        type: integer
                      status:
                        enum:
                          - complete
                          - partial
                          - insufficient
                        type: string
                    required:
                      - status
                      - required_signals
                      - covered_signals
                      - ratio
                    type: object
                  declaration:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          status:
                            const: none
                            type: string
                        required:
                          - status
                        type: object
                      - additionalProperties: false
                        properties:
                          declaration_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          provenance:
                            additionalProperties: false
                            properties:
                              blob_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              commit:
                                pattern: ^[a-f0-9]{40,64}$
                                type: string
                              git_blob_oid:
                                pattern: ^[a-f0-9]{40,64}$
                                type: string
                              path:
                                pattern: ^vendors\/[a-z0-9]{1,2}\/[a-z0-9]+(?:-[a-z0-9]+)*\.yaml$
                                type: string
                              repository:
                                const: sourcey/agent-ready-services
                                type: string
                            required:
                              - repository
                              - commit
                              - path
                              - git_blob_oid
                              - blob_digest
                            type: object
                          status:
                            enum:
                              - community_declared
                              - vendor_declared
                            type: string
                        required:
                          - declaration_id
                          - provenance
                          - status
                        type: object
                  declaration_revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  effective_from:
                    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)))$
                    type: string
                  effective_until:
                    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)))$
                    type: string
                  entity_id:
                    pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  first_autonomy_break:
                    additionalProperties: false
                    properties:
                      blocker:
                        additionalProperties: false
                        properties:
                          code:
                            maxLength: 160
                            minLength: 1
                            type: string
                          explanation:
                            maxLength: 500
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - code
                          - explanation
                        type: object
                      finding:
                        additionalProperties: false
                        properties:
                          condition:
                            maxLength: 160
                            minLength: 1
                            type: string
                          finding:
                            maxLength: 280
                            minLength: 1
                            type: string
                          signal_code:
                            pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                            type: string
                        required:
                          - signal_code
                          - condition
                          - finding
                        type: object
                      public_state:
                        enum:
                          - limited
                          - blocked
                        type: string
                      stage:
                        enum:
                          - evaluate
                          - sign_up
                          - pay
                          - provision
                          - operate
                        type: string
                      stage_label:
                        maxLength: 40
                        minLength: 1
                        type: string
                    required:
                      - stage
                      - stage_label
                      - public_state
                      - finding
                    type: object
                  freshness:
                    enum:
                      - fresh
                      - stale
                      - unknown
                    type: string
                  grade:
                    enum:
                      - A+
                      - A
                      - B+
                      - B
                      - C+
                      - C
                      - D
                      - F
                      - unrated
                    type: string
                  grade_derivation:
                    additionalProperties: false
                    properties:
                      coverage_rule:
                        maxLength: 280
                        minLength: 1
                        type: string
                      explanation:
                        maxLength: 500
                        minLength: 1
                        type: string
                      label:
                        maxLength: 80
                        minLength: 1
                        type: string
                      outcome_rule:
                        maxLength: 280
                        minLength: 1
                        type: string
                    required:
                      - label
                      - explanation
                      - coverage_rule
                      - outcome_rule
                    type: object
                  last_tested_at:
                    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)))$
                    type: string
                  lifecycle:
                    enum:
                      - active
                      - ended
                      - withdrawn
                    type: string
                  overall_outcome:
                    enum:
                      - pass
                      - constrained
                      - fail
                      - unknown
                      - not_applicable
                    type: string
                  policy_as_of:
                    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)))$
                    type: string
                  policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  policy_version:
                    minLength: 1
                    type: string
                  projection_contract:
                    const: sourcey.agent-readiness-projection/v1alpha1
                    type: string
                  projection_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  provenance:
                    additionalProperties: false
                    properties:
                      attestation_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      basis_event_ids:
                        items:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        minItems: 1
                        type: array
                      coverage_policy_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      dispute:
                        enum:
                          - none
                          - open
                          - resolved
                        type: string
                      fields:
                        items:
                          additionalProperties: false
                          properties:
                            accepted_proof_kinds:
                              items:
                                enum:
                                  - observed
                                  - derived
                                  - editorial
                                type: string
                              minItems: 1
                              type: array
                            contradicting_event_ids:
                              items:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              type: array
                            evidence_proof_kinds:
                              items:
                                enum:
                                  - observed
                                  - derived
                                  - editorial
                                type: string
                              type: array
                            freshness:
                              enum:
                                - fresh
                                - stale
                                - unknown
                              type: string
                            latest_observation_at:
                              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)))$
                              type: string
                            path:
                              pattern: ^\/.*
                              type: string
                            supporting_event_ids:
                              items:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              type: array
                          required:
                            - path
                            - supporting_event_ids
                            - contradicting_event_ids
                            - accepted_proof_kinds
                            - evidence_proof_kinds
                            - freshness
                          type: object
                        minItems: 1
                        type: array
                      freshness:
                        enum:
                          - fresh
                          - stale
                          - unknown
                        type: string
                      freshness_policy_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      tier:
                        enum:
                          - observed
                          - signed
                          - verified
                        type: string
                      verification_event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - tier
                      - freshness
                      - dispute
                      - coverage_policy_digest
                      - freshness_policy_digest
                      - basis_event_ids
                      - fields
                    type: object
                  public_state:
                    enum:
                      - ready
                      - limited
                      - blocked
                      - unknown
                      - not_applicable
                    type: string
                  publication:
                    additionalProperties: false
                    properties:
                      reasons:
                        items:
                          enum:
                            - lifecycle_not_active
                            - coverage_incomplete
                            - required_evidence_not_supported
                            - freshness_not_fresh
                            - unrated
                            - no_useful_finding
                            - open_dispute
                          type: string
                        type: array
                      visibility:
                        enum:
                          - discoverable
                          - resolvable_only
                          - private
                        type: string
                    required:
                      - visibility
                      - reasons
                    type: object
                  revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  scope:
                    additionalProperties: false
                    properties:
                      funnel:
                        additionalProperties: false
                        properties:
                          key:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          name:
                            maxLength: 160
                            minLength: 1
                            type: string
                        required:
                          - key
                          - name
                        type: object
                      product:
                        additionalProperties: false
                        properties:
                          key:
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                          name:
                            maxLength: 160
                            minLength: 1
                            type: string
                        required:
                          - key
                          - name
                        type: object
                    required:
                      - product
                      - funnel
                    type: object
                  stages:
                    items:
                      additionalProperties: false
                      properties:
                        blockers:
                          items:
                            additionalProperties: false
                            properties:
                              code:
                                maxLength: 160
                                minLength: 1
                                type: string
                              explanation:
                                maxLength: 500
                                minLength: 1
                                type: string
                              signal_code:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                            required:
                              - signal_code
                              - code
                              - explanation
                            type: object
                          type: array
                        outcome:
                          enum:
                            - pass
                            - constrained
                            - fail
                            - unknown
                            - not_applicable
                          type: string
                        primary_finding:
                          additionalProperties: false
                          properties:
                            condition:
                              maxLength: 160
                              minLength: 1
                              type: string
                            finding:
                              maxLength: 280
                              minLength: 1
                              type: string
                            signal_code:
                              pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                              type: string
                          required:
                            - signal_code
                            - condition
                            - finding
                          type: object
                        public_state:
                          enum:
                            - ready
                            - limited
                            - blocked
                            - unknown
                            - not_applicable
                          type: string
                        remediations:
                          items:
                            additionalProperties: false
                            properties:
                              code:
                                maxLength: 160
                                minLength: 1
                                type: string
                              instruction:
                                maxLength: 500
                                minLength: 1
                                type: string
                              signal_code:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                            required:
                              - signal_code
                              - code
                              - instruction
                            type: object
                          type: array
                        secondary_context:
                          items:
                            additionalProperties: false
                            properties:
                              condition:
                                maxLength: 160
                                minLength: 1
                                type: string
                              finding:
                                maxLength: 280
                                minLength: 1
                                type: string
                              signal_code:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                            required:
                              - signal_code
                              - condition
                              - finding
                            type: object
                          type: array
                        signals:
                          items:
                            additionalProperties: false
                            properties:
                              assessment_method:
                                additionalProperties: false
                                properties:
                                  method_digest:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  name:
                                    pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                    type: string
                                  version:
                                    maxLength: 160
                                    minLength: 1
                                    type: string
                                required:
                                  - name
                                  - version
                                  - method_digest
                                type: object
                              blocker:
                                additionalProperties: false
                                properties:
                                  code:
                                    maxLength: 160
                                    minLength: 1
                                    type: string
                                  explanation:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  signal_code:
                                    pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                    type: string
                                required:
                                  - signal_code
                                  - code
                                  - explanation
                                type: object
                              condition:
                                maxLength: 160
                                minLength: 1
                                type: string
                              evaluation_role:
                                enum:
                                  - graded
                                  - informational
                                type: string
                              evidence_status:
                                enum:
                                  - supported
                                  - contradicted
                                  - mixed
                                  - missing
                                type: string
                              finding:
                                maxLength: 280
                                minLength: 1
                                type: string
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              negative_coverage:
                                additionalProperties: false
                                properties:
                                  covered_surfaces:
                                    items:
                                      additionalProperties: false
                                      properties:
                                        node_id:
                                          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                          type: string
                                        node_kind:
                                          enum:
                                            - resource
                                            - endpoint
                                            - interface
                                          type: string
                                      required:
                                        - node_kind
                                        - node_id
                                      type: object
                                    minItems: 1
                                    type: array
                                  kind:
                                    enum:
                                      - complete-response-inspection
                                      - complete-structured-resource-validation
                                      - bounded-rendered-flow-inspection
                                      - explicit-first-party-declaration
                                      - reviewed-manual-inspection
                                    type: string
                                  scope:
                                    enum:
                                      - exact-resource
                                      - tested-surfaces
                                      - exact-funnel
                                    type: string
                                required:
                                  - kind
                                  - scope
                                  - covered_surfaces
                                type: object
                              note:
                                maxLength: 500
                                minLength: 1
                                type: string
                              observed_at:
                                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)))$
                                type: string
                              outcome:
                                enum:
                                  - pass
                                  - constrained
                                  - fail
                                  - unknown
                                  - not_applicable
                                type: string
                              public_state:
                                enum:
                                  - ready
                                  - limited
                                  - blocked
                                  - unknown
                                  - not_applicable
                                type: string
                              remediation:
                                additionalProperties: false
                                properties:
                                  code:
                                    maxLength: 160
                                    minLength: 1
                                    type: string
                                  instruction:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  signal_code:
                                    pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                    type: string
                                required:
                                  - signal_code
                                  - code
                                  - instruction
                                type: object
                              required:
                                type: boolean
                              signal_code:
                                pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                type: string
                              tested_surfaces:
                                items:
                                  additionalProperties: false
                                  properties:
                                    node_id:
                                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                      type: string
                                    node_kind:
                                      enum:
                                        - resource
                                        - endpoint
                                        - interface
                                      type: string
                                  required:
                                    - node_kind
                                    - node_id
                                  type: object
                                type: array
                              value:
                                enum:
                                  - yes
                                  - no
                                  - partial
                                  - unknown
                                  - not_applicable
                                type: string
                              value_label:
                                maxLength: 40
                                minLength: 1
                                type: string
                            required:
                              - signal_code
                              - evaluation_role
                              - required
                              - value
                              - value_label
                              - outcome
                              - public_state
                              - condition
                              - finding
                              - evidence_status
                              - freshness
                              - tested_surfaces
                            type: object
                          type: array
                        stage:
                          enum:
                            - evaluate
                            - sign_up
                            - pay
                            - provision
                            - operate
                          type: string
                        stage_label:
                          maxLength: 40
                          minLength: 1
                          type: string
                        state_label:
                          maxLength: 40
                          minLength: 1
                          type: string
                      required:
                        - stage
                        - stage_label
                        - outcome
                        - public_state
                        - state_label
                        - primary_finding
                        - secondary_context
                        - signals
                        - blockers
                        - remediations
                      type: object
                    maxItems: 5
                    minItems: 5
                    type: array
                  state_label:
                    maxLength: 40
                    minLength: 1
                    type: string
                  surface_catalog:
                    additionalProperties: false
                    properties:
                      endpoints:
                        items:
                          additionalProperties: false
                          properties:
                            endpoint_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            operated_by_participant_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            roles:
                              items:
                                enum:
                                  - service
                                  - authorization
                                  - token
                                  - registration
                                  - protected_resource
                                  - checkout
                                  - status
                                  - recovery
                                  - webhook
                                type: string
                              minItems: 1
                              type: array
                            standard_bindings:
                              items:
                                additionalProperties: false
                                properties:
                                  namespace:
                                    pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                    type: string
                                  relation:
                                    enum:
                                      - declares
                                      - describes
                                      - implements
                                      - uses
                                    type: string
                                  version:
                                    maxLength: 160
                                    minLength: 1
                                    type: string
                                required:
                                  - namespace
                                  - version
                                  - relation
                                type: object
                              type: array
                            transport:
                              enum:
                                - http
                                - websocket
                                - grpc
                              type: string
                            uri:
                              format: uri
                              type: string
                          required:
                            - endpoint_id
                            - uri
                            - transport
                            - roles
                            - operated_by_participant_id
                            - standard_bindings
                          type: object
                        type: array
                      interfaces:
                        items:
                          additionalProperties: false
                          properties:
                            capabilities:
                              items:
                                enum:
                                  - api
                                  - tools
                                  - agent
                                  - authentication
                                  - commerce
                                  - events
                                  - recovery
                                type: string
                              minItems: 1
                              type: array
                            endpoint_ids:
                              items:
                                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                type: string
                              type: array
                            interface_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            operated_by_participant_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            resource_ids:
                              items:
                                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                type: string
                              type: array
                            standard_bindings:
                              items:
                                additionalProperties: false
                                properties:
                                  namespace:
                                    pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                    type: string
                                  relation:
                                    enum:
                                      - declares
                                      - describes
                                      - implements
                                      - uses
                                    type: string
                                  version:
                                    maxLength: 160
                                    minLength: 1
                                    type: string
                                required:
                                  - namespace
                                  - version
                                  - relation
                                type: object
                              type: array
                          required:
                            - interface_id
                            - capabilities
                            - endpoint_ids
                            - resource_ids
                            - operated_by_participant_id
                            - standard_bindings
                          type: object
                        type: array
                      participants:
                        items:
                          additionalProperties: false
                          properties:
                            identity:
                              anyOf:
                                - additionalProperties: false
                                  properties:
                                    entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - entity_id
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    origin_source_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                  required:
                                    - origin_source_id
                                  type: object
                            participant_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            roles:
                              items:
                                enum:
                                  - subject
                                  - access_operator
                                  - identity_provider
                                  - payment_provider
                                  - provisioning_provider
                                  - operations_provider
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - participant_id
                            - roles
                            - identity
                          type: object
                        type: array
                      relations:
                        items:
                          additionalProperties: false
                          properties:
                            from:
                              additionalProperties: false
                              properties:
                                node_id:
                                  pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                  type: string
                                node_kind:
                                  enum:
                                    - resource
                                    - endpoint
                                    - interface
                                  type: string
                              required:
                                - node_kind
                                - node_id
                              type: object
                            kind:
                              enum:
                                - describes
                                - authenticates
                                - requires
                                - alternative_to
                                - precedes
                              type: string
                            relation_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            to:
                              additionalProperties: false
                              properties:
                                node_id:
                                  pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                  type: string
                                node_kind:
                                  enum:
                                    - resource
                                    - endpoint
                                    - interface
                                  type: string
                              required:
                                - node_kind
                                - node_id
                              type: object
                          required:
                            - relation_id
                            - kind
                            - from
                            - to
                          type: object
                        type: array
                      resources:
                        items:
                          additionalProperties: false
                          properties:
                            operated_by_participant_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            resource_id:
                              pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                              type: string
                            roles:
                              items:
                                enum:
                                  - discovery
                                  - terms
                                  - eligibility
                                  - pricing
                                  - sign_up
                                  - checkout
                                  - provisioning
                                  - operations
                                  - recovery
                                  - descriptor
                                  - documentation
                                  - policy
                                  - status
                                type: string
                              minItems: 1
                              type: array
                            standard_bindings:
                              items:
                                additionalProperties: false
                                properties:
                                  namespace:
                                    pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                    type: string
                                  relation:
                                    enum:
                                      - declares
                                      - describes
                                      - implements
                                      - uses
                                    type: string
                                  version:
                                    maxLength: 160
                                    minLength: 1
                                    type: string
                                required:
                                  - namespace
                                  - version
                                  - relation
                                type: object
                              type: array
                            uri:
                              format: uri
                              type: string
                          required:
                            - resource_id
                            - uri
                            - roles
                            - operated_by_participant_id
                            - standard_bindings
                          type: object
                        type: array
                    required:
                      - participants
                      - resources
                      - endpoints
                      - interfaces
                      - relations
                    type: object
                required:
                  - projection_contract
                  - agent_readiness_profile_id
                  - entity_id
                  - scope
                  - catalog_binding
                  - declaration_revision_digest
                  - declaration
                  - surface_catalog
                  - lifecycle
                  - effective_from
                  - revision_digest
                  - policy_digest
                  - policy_version
                  - policy_as_of
                  - overall_outcome
                  - public_state
                  - state_label
                  - grade
                  - grade_derivation
                  - publication
                  - stages
                  - coverage
                  - last_tested_at
                  - freshness
                  - provenance
                  - canonical_url
                  - projection_digest
                type: object
              relation:
                additionalProperties: false
                properties:
                  admitted_offer_revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  agent_readiness_profile_id:
                    pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  applicable_stages:
                    items:
                      enum:
                        - evaluate
                        - sign_up
                        - pay
                        - provision
                        - operate
                      type: string
                    minItems: 1
                    type: array
                  declaration_revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  effective_from:
                    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)))$
                    type: string
                  effective_until:
                    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)))$
                    type: string
                  offer_id:
                    pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  offer_relation_proposal_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  purpose:
                    enum:
                      - application_path
                      - redemption_path
                      - operating_path
                    type: string
                  relation_contract:
                    const: sourcey.agent-readiness-offer-relation/v1alpha1
                    type: string
                  relation_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  relation_revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - relation_contract
                  - relation_id
                  - agent_readiness_profile_id
                  - offer_id
                  - purpose
                  - applicable_stages
                  - effective_from
                  - declaration_revision_digest
                  - offer_relation_proposal_id
                  - admitted_offer_revision_digest
                  - relation_revision_digest
                type: object
            required:
              - relation
              - profile
            type: object
          type: array
        offer_id:
          pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
          type: string
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
        - offer_id
      type: object
    ResolveCatalogClosureRequest:
      additionalProperties: false
      properties:
        agent_readiness_profile_ids:
          default: []
          items:
            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
            type: string
          maxItems: 1000
          type: array
        capture_operation_ids:
          default: []
          items:
            pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
            type: string
          maxItems: 1000
          type: array
        capture_receipt_digests:
          default: []
          items:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
          maxItems: 1000
          type: array
        domains:
          default: []
          items:
            maxLength: 253
            minLength: 1
            type: string
          maxItems: 1000
          type: array
        entity_ids:
          default: []
          items:
            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
            type: string
          maxItems: 1000
          type: array
        event_ids:
          default: []
          items:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
          maxItems: 1000
          type: array
        event_operation_ids:
          default: []
          items:
            pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
            type: string
          maxItems: 1000
          type: array
        observation_ids:
          default: []
          items:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
          maxItems: 1000
          type: array
        offer_ids:
          default: []
          items:
            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
            type: string
          maxItems: 1000
          type: array
        program_ids:
          default: []
          items:
            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
            type: string
          maxItems: 1000
          type: array
        revision_digests:
          default: []
          items:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
          maxItems: 1000
          type: array
      required:
        - entity_ids
        - domains
        - program_ids
        - offer_ids
        - agent_readiness_profile_ids
        - revision_digests
        - event_ids
        - event_operation_ids
        - observation_ids
        - capture_receipt_digests
        - capture_operation_ids
      type: object
    ResolveCatalogClosureResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/ResolveCatalogClosureResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/ResolveCatalogClosureResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/ResolveCatalogClosureResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          additionalProperties: false
          properties:
            capture_receipts:
              items:
                additionalProperties: false
                properties:
                  authority_entity_revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  authority_program_revision_digest:
                    anyOf:
                      - pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      - type: "null"
                  base_release_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  capture:
                    additionalProperties: false
                    properties:
                      availability:
                        enum:
                          - public
                          - restricted
                        type: string
                      bytes:
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                        type: integer
                      digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      final_url:
                        format: uri
                        type: string
                      media_type:
                        minLength: 1
                        type: string
                      method:
                        enum:
                          - http
                          - headless
                          - archive
                          - manual
                        type: string
                      redirect_chain:
                        items:
                          additionalProperties: false
                          properties:
                            from:
                              format: uri
                              type: string
                            status:
                              anyOf:
                                - const: 301
                                  type: number
                                - const: 302
                                  type: number
                                - const: 303
                                  type: number
                                - const: 307
                                  type: number
                                - const: 308
                                  type: number
                            to:
                              format: uri
                              type: string
                          required:
                            - status
                            - from
                            - to
                          type: object
                        maxItems: 5
                        type: array
                      requested_url:
                        format: uri
                        type: string
                      retrieved_at:
                        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)))$
                        type: string
                      subject_source_url:
                        format: uri
                        type: string
                    required:
                      - subject_source_url
                      - requested_url
                      - final_url
                      - redirect_chain
                      - retrieved_at
                      - method
                      - media_type
                      - digest
                      - bytes
                      - availability
                    type: object
                  capture_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  issued_at:
                    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)))$
                    type: string
                  issuer_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  job_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  operation_id:
                    pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  protected:
                    additionalProperties: false
                    properties:
                      algorithm:
                        const: ed25519
                        type: string
                      key_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      signature:
                        minLength: 1
                        type: string
                      signature_purpose:
                        enum:
                          - catalog-capture
                          - catalog-evidence
                          - catalog-identity
                          - catalog-authority
                          - catalog-attestation
                          - catalog-verification
                          - catalog-dispute
                          - catalog-policy
                          - catalog-release
                          - catalog-feed
                        type: string
                      signer_registry_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                    required:
                      - signature_purpose
                      - signer_registry_digest
                      - key_id
                      - algorithm
                      - signature
                    type: object
                  receipt_contract:
                    const: sourcey.capture-receipt/v1alpha1
                    type: string
                  receipt_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  review_decision:
                    additionalProperties: false
                    properties:
                      decided_at:
                        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)))$
                        type: string
                      decision:
                        enum:
                          - approved
                          - rejected
                        type: string
                      decision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      rationale:
                        anyOf:
                          - maxLength: 2000
                            minLength: 1
                            type: string
                          - type: "null"
                      review_decision_contract:
                        const: sourcey.evidence-review-decision/v1alpha1
                        type: string
                      review_proposal_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      reviewer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                    required:
                      - review_decision_contract
                      - review_proposal_digest
                      - reviewer_id
                      - decision
                      - decided_at
                      - rationale
                      - decision_digest
                    type: object
                  subject:
                    oneOf:
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: entity
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - revision_digest
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: program
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - program_id
                          - revision_digest
                        type: object
                      - additionalProperties: false
                        properties:
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: offer
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - offer_id
                          - revision_digest
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          subject_type:
                            const: agent_readiness_profile
                            type: string
                        required:
                          - subject_type
                          - entity_id
                          - agent_readiness_profile_id
                          - revision_digest
                        type: object
                required:
                  - receipt_contract
                  - issuer_id
                  - operation_id
                  - job_id
                  - base_release_id
                  - subject
                  - authority_entity_revision_digest
                  - authority_program_revision_digest
                  - capture_policy_digest
                  - review_decision
                  - capture
                  - issued_at
                  - receipt_digest
                  - protected
                type: object
              type: array
            current_revision_digests:
              items:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              type: array
            events:
              items:
                anyOf:
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: evidence.bound
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          assertions:
                            items:
                              additionalProperties: false
                              properties:
                                derivation_rule:
                                  anyOf:
                                    - enum:
                                        - contact-access-from-first-party-mailto
                                        - form-access-from-first-party-application
                                        - first-party-access-operator
                                        - public-availability-from-application
                                      type: string
                                    - type: "null"
                                locators:
                                  items:
                                    additionalProperties: false
                                    properties:
                                      end_byte:
                                        exclusiveMinimum: 0
                                        maximum: 9007199254740991
                                        type: integer
                                      kind:
                                        const: utf8-range
                                        type: string
                                      start_byte:
                                        maximum: 9007199254740991
                                        minimum: 0
                                        type: integer
                                      value_digest:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                    required:
                                      - kind
                                      - start_byte
                                      - end_byte
                                      - value_digest
                                    type: object
                                  maxItems: 16
                                  minItems: 1
                                  type: array
                                path:
                                  pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                                  type: string
                                polarity:
                                  enum:
                                    - supports
                                    - contradicts
                                  type: string
                                proof_kind:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                              required:
                                - path
                                - polarity
                                - proof_kind
                                - derivation_rule
                                - locators
                              type: object
                            maxItems: 128
                            minItems: 1
                            type: array
                          authority_entity_revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          authority_program_revision_digest:
                            anyOf:
                              - pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              - type: "null"
                          binding_method:
                            minLength: 1
                            type: string
                          binding_version:
                            minLength: 1
                            type: string
                          capture_receipt_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          normalized_object_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          observation_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          paths:
                            items:
                              pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                              type: string
                            minItems: 1
                            type: array
                          polarity:
                            enum:
                              - supports
                              - contradicts
                            type: string
                        required:
                          - observation_id
                          - normalized_object_digest
                          - authority_entity_revision_digest
                          - authority_program_revision_digest
                          - assertions
                          - paths
                          - polarity
                          - binding_method
                          - binding_version
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: evidence.retracted
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          adjudication_evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          reason_code:
                            minLength: 1
                            type: string
                          replacement_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          target_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - target_event_id
                          - reason_code
                          - adjudication_evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: discrepancy.resolved
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          active_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            type: array
                          conflicting_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            minItems: 2
                            type: array
                          evidence_digests:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            minItems: 1
                            type: array
                          outcome:
                            enum:
                              - support-prevails
                              - contradiction-prevails
                              - both-invalid
                              - new-revision-required
                            type: string
                          replacement_revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - conflicting_event_ids
                          - outcome
                          - active_event_ids
                          - evidence_digests
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: authority.claimed
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          authority_claim_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          authorized_issuer_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          controlled_domain:
                            minLength: 1
                            type: string
                          method:
                            description: Proof method identifier. Known values are examples; new methods may appear without
                              changing the event envelope.
                            examples:
                              - dns-txt
                              - domain-email
                              - well-known
                              - inbound-dkim
                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                            type: string
                            x-sourcey-extensible-enum: true
                          proof_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          proven_at:
                            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)))$
                            type: string
                          recheck_due_at:
                            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)))$
                            type: string
                        required:
                          - authority_claim_id
                          - authorized_issuer_id
                          - controlled_domain
                          - method
                          - proof_digest
                          - proven_at
                          - recheck_due_at
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: authority.rechecked
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          authority_claim_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          checked_at:
                            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)))$
                            type: string
                          next_recheck_due_at:
                            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)))$
                            type: string
                        required:
                          - authority_claim_id
                          - checked_at
                          - next_recheck_due_at
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: authority.revoked
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          authority_claim_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          reason_code:
                            minLength: 1
                            type: string
                          revoked_at:
                            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)))$
                            type: string
                        required:
                          - authority_claim_id
                          - revoked_at
                          - reason_code
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: authority.superseded
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          new_authority_claim_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          old_authority_claim_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          superseded_at:
                            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)))$
                            type: string
                        required:
                          - old_authority_claim_id
                          - new_authority_claim_id
                          - superseded_at
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: subject.attested
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          attested_at:
                            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)))$
                            type: string
                          authority_claim_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                        required:
                          - authority_claim_id
                          - attested_at
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: attestation.revoked
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          authority_claim_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          reason_code:
                            minLength: 1
                            type: string
                          revoked_at:
                            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)))$
                            type: string
                          target_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - target_event_id
                          - authority_claim_id
                          - revoked_at
                          - reason_code
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: verification.completed
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          checked_at:
                            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)))$
                            type: string
                          coverage_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          method_version:
                            minLength: 1
                            type: string
                          receipt_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          result:
                            enum:
                              - pass
                              - fail
                              - inconclusive
                            type: string
                          scope:
                            enum:
                              - whole-revision
                              - paths
                            type: string
                          verification_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          verified_paths:
                            items:
                              pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                              type: string
                            type: array
                          verifier_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                        required:
                          - verification_id
                          - verifier_id
                          - method_version
                          - scope
                          - verified_paths
                          - result
                          - receipt_digest
                          - checked_at
                          - coverage_policy_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: verification.revoked
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          reason_code:
                            minLength: 1
                            type: string
                          revoked_at:
                            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)))$
                            type: string
                          target_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - target_event_id
                          - revoked_at
                          - reason_code
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: freshness.exception-granted
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          paths:
                            items:
                              pattern: ^\/(?:[^~/]|~0|~1)+(?:\/(?:[^~/]|~0|~1)+)*$
                              type: string
                            minItems: 1
                            type: array
                          reason_code:
                            minLength: 1
                            type: string
                          valid_until:
                            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)))$
                            type: string
                        required:
                          - paths
                          - valid_until
                          - reason_code
                          - evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: freshness.exception-revoked
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          reason_code:
                            minLength: 1
                            type: string
                          revoked_at:
                            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)))$
                            type: string
                          target_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - target_event_id
                          - revoked_at
                          - reason_code
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: dispute.opened
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          case_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          dispute_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          opened_at:
                            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)))$
                            type: string
                          public_reason_code:
                            minLength: 1
                            type: string
                        required:
                          - dispute_id
                          - opened_at
                          - public_reason_code
                          - case_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: dispute.resolved
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          case_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          dispute_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          opened_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          resolution_code:
                            minLength: 1
                            type: string
                          resolved_at:
                            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)))$
                            type: string
                        required:
                          - dispute_id
                          - opened_event_id
                          - resolved_at
                          - resolution_code
                          - case_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: asset.bound
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          approval_receipt_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          approval_scope:
                            minLength: 1
                            type: string
                          asset_object_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          authority_claim_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          effective_from:
                            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)))$
                            type: string
                          effective_until:
                            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)))$
                            type: string
                          license_basis:
                            minLength: 1
                            type: string
                          role:
                            enum:
                              - logo-light
                              - logo-dark
                              - icon
                            type: string
                          served_derivative_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          source_basis:
                            minLength: 1
                            type: string
                          superseded_binding_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - role
                          - asset_object_digest
                          - served_derivative_digest
                          - authority_claim_id
                          - approval_receipt_digest
                          - approval_scope
                          - source_basis
                          - license_basis
                          - effective_from
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: asset.withdrawn
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          effective_at:
                            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)))$
                            type: string
                          reason_code:
                            minLength: 1
                            type: string
                          target_binding_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - target_binding_event_id
                          - effective_at
                          - reason_code
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: asset.takedown-ordered
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          case_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          effective_at:
                            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)))$
                            type: string
                          public_reason_code:
                            minLength: 1
                            type: string
                          target_binding_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - target_binding_event_id
                          - effective_at
                          - public_reason_code
                          - case_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: entity.merged
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          disposition:
                            additionalProperties: false
                            properties:
                              agent_readiness_profiles:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    agent_readiness_profile_id:
                                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    target_agent_readiness_profile_id:
                                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - agent_readiness_profile_id
                                    - disposition
                                  type: object
                                type: array
                              aliases:
                                default: []
                                items:
                                  type: string
                                type: array
                              asset_bindings:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    binding_event_id:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                    disposition:
                                      enum:
                                        - rebind
                                        - end
                                      type: string
                                    replacement_binding_event_id:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                  required:
                                    - binding_event_id
                                    - disposition
                                  type: object
                                type: array
                              offers:
                                items:
                                  additionalProperties: false
                                  properties:
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    offer_id:
                                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_offer_id:
                                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - offer_id
                                    - disposition
                                  type: object
                                type: array
                              programs:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    program_id:
                                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_program_id:
                                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - program_id
                                    - disposition
                                  type: object
                                type: array
                            required:
                              - aliases
                              - programs
                              - offers
                              - agent_readiness_profiles
                              - asset_bindings
                            type: object
                          effective_at:
                            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)))$
                            type: string
                          evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          reason:
                            minLength: 1
                            type: string
                          retired_entity_ids:
                            items:
                              pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                              type: string
                            minItems: 1
                            type: array
                          surviving_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                        required:
                          - surviving_entity_id
                          - retired_entity_ids
                          - disposition
                          - effective_at
                          - reason
                          - evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: entity.split
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          continuing_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          disposition:
                            additionalProperties: false
                            properties:
                              agent_readiness_profiles:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    agent_readiness_profile_id:
                                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    target_agent_readiness_profile_id:
                                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - agent_readiness_profile_id
                                    - disposition
                                  type: object
                                type: array
                              aliases:
                                default: []
                                items:
                                  type: string
                                type: array
                              asset_bindings:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    binding_event_id:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                    disposition:
                                      enum:
                                        - rebind
                                        - end
                                      type: string
                                    replacement_binding_event_id:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                  required:
                                    - binding_event_id
                                    - disposition
                                  type: object
                                type: array
                              offers:
                                items:
                                  additionalProperties: false
                                  properties:
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    offer_id:
                                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_offer_id:
                                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - offer_id
                                    - disposition
                                  type: object
                                type: array
                              programs:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    program_id:
                                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_program_id:
                                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - program_id
                                    - disposition
                                  type: object
                                type: array
                            required:
                              - aliases
                              - programs
                              - offers
                              - agent_readiness_profiles
                              - asset_bindings
                            type: object
                          effective_at:
                            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)))$
                            type: string
                          evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          new_entity_ids:
                            items:
                              pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                              type: string
                            minItems: 1
                            type: array
                          original_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          reason:
                            minLength: 1
                            type: string
                        required:
                          - original_entity_id
                          - new_entity_ids
                          - disposition
                          - effective_at
                          - reason
                          - evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: entity.succeeded
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          disposition:
                            additionalProperties: false
                            properties:
                              agent_readiness_profiles:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    agent_readiness_profile_id:
                                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    target_agent_readiness_profile_id:
                                      pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - agent_readiness_profile_id
                                    - disposition
                                  type: object
                                type: array
                              aliases:
                                default: []
                                items:
                                  type: string
                                type: array
                              asset_bindings:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    binding_event_id:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                    disposition:
                                      enum:
                                        - rebind
                                        - end
                                      type: string
                                    replacement_binding_event_id:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                  required:
                                    - binding_event_id
                                    - disposition
                                  type: object
                                type: array
                              offers:
                                items:
                                  additionalProperties: false
                                  properties:
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    offer_id:
                                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_offer_id:
                                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - offer_id
                                    - disposition
                                  type: object
                                type: array
                              programs:
                                default: []
                                items:
                                  additionalProperties: false
                                  properties:
                                    disposition:
                                      enum:
                                        - merge
                                        - reparent
                                        - end
                                      type: string
                                    program_id:
                                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_entity_id:
                                      pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                    target_program_id:
                                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                      type: string
                                  required:
                                    - program_id
                                    - disposition
                                  type: object
                                type: array
                            required:
                              - aliases
                              - programs
                              - offers
                              - agent_readiness_profiles
                              - asset_bindings
                            type: object
                          effective_at:
                            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)))$
                            type: string
                          evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          predecessor_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          predecessor_retires:
                            type: boolean
                          relationship_code:
                            minLength: 1
                            type: string
                          successor_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                        required:
                          - predecessor_entity_id
                          - successor_entity_id
                          - relationship_code
                          - predecessor_retires
                          - effective_at
                          - evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: offer.merged
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          effective_at:
                            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)))$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          reason:
                            minLength: 1
                            type: string
                          retired_offer_ids:
                            items:
                              pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                              type: string
                            minItems: 1
                            type: array
                          surviving_offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                        required:
                          - surviving_offer_id
                          - retired_offer_ids
                          - entity_id
                          - effective_at
                          - reason
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: program.merged
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          effective_at:
                            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)))$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          reason:
                            minLength: 1
                            type: string
                          retired_program_ids:
                            items:
                              pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                              type: string
                            minItems: 1
                            type: array
                          surviving_program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                        required:
                          - surviving_program_id
                          - retired_program_ids
                          - entity_id
                          - effective_at
                          - reason
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: program.reparented
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          continuity_evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          new_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          old_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          valid_from:
                            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)))$
                            type: string
                          valid_until:
                            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)))$
                            type: string
                        required:
                          - program_id
                          - old_entity_id
                          - new_entity_id
                          - valid_from
                          - continuity_evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: offer.reparented
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          continuity_evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          new_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          old_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          valid_from:
                            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)))$
                            type: string
                          valid_until:
                            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)))$
                            type: string
                        required:
                          - offer_id
                          - old_entity_id
                          - new_entity_id
                          - valid_from
                          - continuity_evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: agent-readiness-profile.merged
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          continuity_evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          effective_at:
                            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)))$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          reason:
                            minLength: 1
                            type: string
                          retired_agent_readiness_profile_ids:
                            items:
                              pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                              type: string
                            minItems: 1
                            type: array
                          surviving_agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                        required:
                          - surviving_agent_readiness_profile_id
                          - retired_agent_readiness_profile_ids
                          - entity_id
                          - effective_at
                          - continuity_evidence_digest
                          - reason
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: agent-readiness-profile.reparented
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          continuity_evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          new_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          old_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          valid_from:
                            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)))$
                            type: string
                          valid_until:
                            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)))$
                            type: string
                        required:
                          - agent_readiness_profile_id
                          - old_entity_id
                          - new_entity_id
                          - valid_from
                          - continuity_evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: identity.transition-superseded
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          corrected_at:
                            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)))$
                            type: string
                          evidence_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          reason:
                            minLength: 1
                            type: string
                          replacement_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            minItems: 1
                            type: array
                          target_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - target_event_id
                          - replacement_event_ids
                          - corrected_at
                          - reason
                          - evidence_digest
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
                  - additionalProperties: false
                    properties:
                      event_contract:
                        const: sourcey.catalog-event/v1alpha1
                        type: string
                      event_id:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      issuer_id:
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                      kind:
                        const: offer.retired
                        type: string
                      occurred_at:
                        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)))$
                        type: string
                      operation_id:
                        pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      payload:
                        additionalProperties: false
                        properties:
                          effective_at:
                            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)))$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          reason_code:
                            minLength: 1
                            type: string
                        required:
                          - offer_id
                          - entity_id
                          - effective_at
                          - reason_code
                        type: object
                      protected:
                        additionalProperties: false
                        properties:
                          algorithm:
                            const: ed25519
                            type: string
                          key_id:
                            pattern: ^[a-z0-9][a-z0-9_-]*$
                            type: string
                          signature:
                            minLength: 1
                            type: string
                          signature_purpose:
                            enum:
                              - catalog-capture
                              - catalog-evidence
                              - catalog-identity
                              - catalog-authority
                              - catalog-attestation
                              - catalog-verification
                              - catalog-dispute
                              - catalog-policy
                              - catalog-release
                              - catalog-feed
                            type: string
                          signer_registry_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - signature_purpose
                          - signer_registry_digest
                          - key_id
                          - algorithm
                          - signature
                        type: object
                      subject:
                        oneOf:
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: entity
                                type: string
                            required:
                              - subject_type
                              - entity_id
                            type: object
                          - additionalProperties: false
                            properties:
                              agent_readiness_profile_id:
                                pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: agent_readiness_profile
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - agent_readiness_profile_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: program
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - program_id
                            type: object
                          - additionalProperties: false
                            properties:
                              entity_id:
                                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              offer_id:
                                pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              program_id:
                                pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                                type: string
                              revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              subject_type:
                                const: offer
                                type: string
                            required:
                              - subject_type
                              - entity_id
                              - offer_id
                            type: object
                    required:
                      - event_contract
                      - kind
                      - issuer_id
                      - operation_id
                      - subject
                      - occurred_at
                      - payload
                      - event_id
                      - protected
                    type: object
              type: array
            observations:
              items:
                additionalProperties: false
                properties:
                  capture:
                    additionalProperties: false
                    properties:
                      availability:
                        enum:
                          - public
                          - private-receipt
                        type: string
                      bytes:
                        maximum: 9007199254740991
                        minimum: 0
                        type: integer
                      digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      final_uri:
                        format: uri
                        type: string
                      media_type:
                        minLength: 1
                        type: string
                      normalized_object:
                        additionalProperties: false
                        properties:
                          bytes:
                            maximum: 9007199254740991
                            minimum: 0
                            type: integer
                          digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          media_type:
                            const: text/plain; charset=utf-8
                            type: string
                          normalizer_contract:
                            const: sourcey.evidence-normalizer/v1alpha1
                            type: string
                          normalizer_id:
                            minLength: 1
                            type: string
                          toolchain_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          version:
                            minLength: 1
                            type: string
                        required:
                          - digest
                          - bytes
                          - media_type
                          - normalizer_contract
                          - normalizer_id
                          - version
                          - toolchain_digest
                        type: object
                      redirect_chain:
                        items:
                          additionalProperties: false
                          properties:
                            from:
                              format: uri
                              type: string
                            status:
                              anyOf:
                                - const: 301
                                  type: number
                                - const: 302
                                  type: number
                                - const: 303
                                  type: number
                                - const: 307
                                  type: number
                                - const: 308
                                  type: number
                            to:
                              format: uri
                              type: string
                          required:
                            - status
                            - from
                            - to
                          type: object
                        maxItems: 5
                        type: array
                      requested_uri:
                        format: uri
                        type: string
                      source_standing:
                        enum:
                          - live-first-party
                          - archived-first-party
                          - live-third-party
                          - archived-third-party
                          - manual-first-party
                          - manual-third-party
                        type: string
                    required:
                      - digest
                      - bytes
                      - media_type
                      - availability
                    type: object
                  method:
                    additionalProperties: false
                    properties:
                      name:
                        description: Capture adapter identifier. Known values are examples; new adapters may appear without
                          changing the observation envelope.
                        examples:
                          - fixture
                          - http
                          - headless
                          - archive
                          - manual
                        pattern: ^[a-z0-9][a-z0-9_-]*$
                        type: string
                        x-sourcey-extensible-enum: true
                      version:
                        minLength: 1
                        type: string
                    required:
                      - name
                      - version
                    type: object
                  no_capture_reason:
                    enum:
                      - dns-failure
                      - connect-timeout
                      - tls-failure
                      - access-denied
                      - policy-blocked
                      - empty-response
                      - extractor-error
                    type: string
                  observation_contract:
                    const: sourcey.observation/v1alpha1
                    type: string
                  observation_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  outcome:
                    enum:
                      - supports-candidate
                      - contradicts-candidate
                      - unreachable
                      - error
                    type: string
                  retrieved_at:
                    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)))$
                    type: string
                  source_id:
                    pattern: ^[a-z0-9][a-z0-9_-]*$
                    type: string
                  source_uri:
                    format: uri
                    type: string
                required:
                  - observation_contract
                  - source_id
                  - source_uri
                  - retrieved_at
                  - method
                  - outcome
                  - observation_id
                type: object
              type: array
            resource_digests:
              additionalProperties:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              propertyNames:
                pattern: ^[a-z0-9][a-z0-9_-]*$
                type: string
              type: object
            revisions:
              items:
                additionalProperties: false
                properties:
                  revision:
                    anyOf:
                      - additionalProperties: false
                        properties:
                          content:
                            additionalProperties: false
                            properties:
                              category:
                                minLength: 1
                                type: string
                              description:
                                maxLength: 200
                                minLength: 1
                                type: string
                              domains:
                                items:
                                  additionalProperties: false
                                  properties:
                                    role:
                                      enum:
                                        - primary
                                        - alias
                                      type: string
                                    valid_from:
                                      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)))$
                                      type: string
                                    valid_until:
                                      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)))$
                                      type: string
                                    value:
                                      minLength: 1
                                      type: string
                                  required:
                                    - value
                                    - role
                                    - valid_from
                                  type: object
                                minItems: 1
                                type: array
                              links:
                                additionalProperties: false
                                properties:
                                  pricing:
                                    format: uri
                                    type: string
                                  site:
                                    format: uri
                                    type: string
                                required:
                                  - site
                                type: object
                              name:
                                minLength: 1
                                type: string
                            required:
                              - name
                              - description
                              - domains
                              - category
                              - links
                            type: object
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_contract:
                            const: sourcey.entity-revision/v1alpha1
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - revision_contract
                          - entity_id
                          - content
                          - revision_digest
                        type: object
                      - additionalProperties: false
                        properties:
                          content:
                            additionalProperties: false
                            properties:
                              summary:
                                maxLength: 240
                                minLength: 1
                                type: string
                              title:
                                minLength: 1
                                type: string
                            required:
                              - title
                            type: object
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_contract:
                            const: sourcey.program-revision/v1alpha1
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - revision_contract
                          - entity_id
                          - program_id
                          - content
                          - revision_digest
                        type: object
                      - additionalProperties: false
                        properties:
                          content:
                            additionalProperties: false
                            properties:
                              access:
                                additionalProperties: false
                                properties:
                                  availability:
                                    enum:
                                      - public
                                      - referral
                                      - membership
                                      - invite
                                      - automatic
                                      - other
                                    type: string
                                  instructions:
                                    maxLength: 1000
                                    minLength: 1
                                    type: string
                                  method:
                                    enum:
                                      - form
                                      - code
                                      - contact
                                      - automatic
                                      - other
                                    type: string
                                  public_code:
                                    maxLength: 200
                                    minLength: 1
                                    type: string
                                  url:
                                    format: uri
                                    type: string
                                required:
                                  - availability
                                  - method
                                type: object
                              description:
                                minLength: 1
                                type: string
                              economics:
                                additionalProperties: false
                                properties:
                                  benefits:
                                    items:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            benefit_id:
                                              pattern: ^[a-z0-9][a-z0-9_-]*$
                                              type: string
                                            description:
                                              maxLength: 500
                                              minLength: 1
                                              type: string
                                            duration:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: exact
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                            kind:
                                              const: credit
                                              type: string
                                            value:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: exact
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: range
                                                      type: string
                                                    maximum:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    minimum:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                  required:
                                                    - kind
                                                    - minimum
                                                    - maximum
                                                  type: object
                                          required:
                                            - benefit_id
                                            - description
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            applies_to:
                                              maxLength: 240
                                              minLength: 1
                                              type: string
                                            benefit_id:
                                              pattern: ^[a-z0-9][a-z0-9_-]*$
                                              type: string
                                            description:
                                              maxLength: 500
                                              minLength: 1
                                              type: string
                                            duration:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: exact
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                            kind:
                                              const: discount
                                              type: string
                                            percentage:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: exact
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: range
                                                      type: string
                                                    maximum_basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    minimum_basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                  required:
                                                    - kind
                                                    - minimum_basis_points
                                                    - maximum_basis_points
                                                  type: object
                                          required:
                                            - benefit_id
                                            - description
                                            - kind
                                            - percentage
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            benefit_id:
                                              pattern: ^[a-z0-9][a-z0-9_-]*$
                                              type: string
                                            description:
                                              maxLength: 500
                                              minLength: 1
                                              type: string
                                            duration:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: exact
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                            kind:
                                              const: cashback
                                              type: string
                                            value:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: money
                                                      type: string
                                                    value:
                                                      oneOf:
                                                        - additionalProperties: false
                                                          properties:
                                                            amount:
                                                              additionalProperties: false
                                                              properties:
                                                                currency:
                                                                  pattern: ^[A-Z]{3}$
                                                                  type: string
                                                                minor_units:
                                                                  maximum: 9007199254740991
                                                                  minimum: 0
                                                                  type: integer
                                                              required:
                                                                - currency
                                                                - minor_units
                                                              type: object
                                                            kind:
                                                              const: exact
                                                              type: string
                                                          required:
                                                            - kind
                                                            - amount
                                                          type: object
                                                        - additionalProperties: false
                                                          properties:
                                                            amount:
                                                              additionalProperties: false
                                                              properties:
                                                                currency:
                                                                  pattern: ^[A-Z]{3}$
                                                                  type: string
                                                                minor_units:
                                                                  maximum: 9007199254740991
                                                                  minimum: 0
                                                                  type: integer
                                                              required:
                                                                - currency
                                                                - minor_units
                                                              type: object
                                                            kind:
                                                              const: up-to
                                                              type: string
                                                          required:
                                                            - kind
                                                            - amount
                                                          type: object
                                                        - additionalProperties: false
                                                          properties:
                                                            amount:
                                                              additionalProperties: false
                                                              properties:
                                                                currency:
                                                                  pattern: ^[A-Z]{3}$
                                                                  type: string
                                                                minor_units:
                                                                  maximum: 9007199254740991
                                                                  minimum: 0
                                                                  type: integer
                                                              required:
                                                                - currency
                                                                - minor_units
                                                              type: object
                                                            kind:
                                                              const: at-least
                                                              type: string
                                                          required:
                                                            - kind
                                                            - amount
                                                          type: object
                                                        - additionalProperties: false
                                                          properties:
                                                            kind:
                                                              const: range
                                                              type: string
                                                            maximum:
                                                              additionalProperties: false
                                                              properties:
                                                                currency:
                                                                  pattern: ^[A-Z]{3}$
                                                                  type: string
                                                                minor_units:
                                                                  maximum: 9007199254740991
                                                                  minimum: 0
                                                                  type: integer
                                                              required:
                                                                - currency
                                                                - minor_units
                                                              type: object
                                                            minimum:
                                                              additionalProperties: false
                                                              properties:
                                                                currency:
                                                                  pattern: ^[A-Z]{3}$
                                                                  type: string
                                                                minor_units:
                                                                  maximum: 9007199254740991
                                                                  minimum: 0
                                                                  type: integer
                                                              required:
                                                                - currency
                                                                - minor_units
                                                              type: object
                                                          required:
                                                            - kind
                                                            - minimum
                                                            - maximum
                                                          type: object
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: percentage
                                                      type: string
                                                    value:
                                                      oneOf:
                                                        - additionalProperties: false
                                                          properties:
                                                            basis_points:
                                                              maximum: 10000
                                                              minimum: 1
                                                              type: integer
                                                            kind:
                                                              const: exact
                                                              type: string
                                                          required:
                                                            - kind
                                                            - basis_points
                                                          type: object
                                                        - additionalProperties: false
                                                          properties:
                                                            basis_points:
                                                              maximum: 10000
                                                              minimum: 1
                                                              type: integer
                                                            kind:
                                                              const: up-to
                                                              type: string
                                                          required:
                                                            - kind
                                                            - basis_points
                                                          type: object
                                                        - additionalProperties: false
                                                          properties:
                                                            basis_points:
                                                              maximum: 10000
                                                              minimum: 1
                                                              type: integer
                                                            kind:
                                                              const: at-least
                                                              type: string
                                                          required:
                                                            - kind
                                                            - basis_points
                                                          type: object
                                                        - additionalProperties: false
                                                          properties:
                                                            kind:
                                                              const: range
                                                              type: string
                                                            maximum_basis_points:
                                                              maximum: 10000
                                                              minimum: 1
                                                              type: integer
                                                            minimum_basis_points:
                                                              maximum: 10000
                                                              minimum: 1
                                                              type: integer
                                                          required:
                                                            - kind
                                                            - minimum_basis_points
                                                            - maximum_basis_points
                                                          type: object
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                          required:
                                            - benefit_id
                                            - description
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            benefit_id:
                                              pattern: ^[a-z0-9][a-z0-9_-]*$
                                              type: string
                                            description:
                                              maxLength: 500
                                              minLength: 1
                                              type: string
                                            kind:
                                              const: waiver
                                              type: string
                                            waived_item:
                                              maxLength: 240
                                              minLength: 1
                                              type: string
                                          required:
                                            - benefit_id
                                            - description
                                            - kind
                                            - waived_item
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            benefit_id:
                                              pattern: ^[a-z0-9][a-z0-9_-]*$
                                              type: string
                                            description:
                                              maxLength: 500
                                              minLength: 1
                                              type: string
                                            duration:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: exact
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                    value:
                                                      pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                                      type: string
                                                  required:
                                                    - kind
                                                    - value
                                                  type: object
                                            kind:
                                              const: free-service
                                              type: string
                                            service:
                                              maxLength: 240
                                              minLength: 1
                                              type: string
                                          required:
                                            - benefit_id
                                            - description
                                            - kind
                                            - service
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            benefit_id:
                                              pattern: ^[a-z0-9][a-z0-9_-]*$
                                              type: string
                                            description:
                                              maxLength: 500
                                              minLength: 1
                                              type: string
                                            kind:
                                              const: other
                                              type: string
                                          required:
                                            - benefit_id
                                            - description
                                            - kind
                                          type: object
                                    minItems: 1
                                    type: array
                                  consideration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: none
                                            type: string
                                        required:
                                          - kind
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: fixed
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          description:
                                            maxLength: 500
                                            minLength: 1
                                            type: string
                                          kind:
                                            const: variable
                                            type: string
                                        required:
                                          - kind
                                          - description
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          description:
                                            maxLength: 500
                                            minLength: 1
                                            type: string
                                          kind:
                                            const: unknown
                                            type: string
                                        required:
                                          - kind
                                          - description
                                        type: object
                                required:
                                  - consideration
                                  - benefits
                                type: object
                              eligibility:
                                additionalProperties: false
                                properties:
                                  rule:
                                    $ref: "#/components/schemas/ResolveCatalogClosureResponse200/$defs/__schema0"
                                required:
                                  - rule
                                type: object
                              lifecycle:
                                additionalProperties: false
                                properties:
                                  effective_from:
                                    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)))$
                                    type: string
                                  effective_until:
                                    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)))$
                                    type: string
                                  status:
                                    enum:
                                      - active
                                      - ended
                                      - withdrawn
                                    type: string
                                required:
                                  - status
                                  - effective_from
                                type: object
                              roles:
                                additionalProperties: false
                                properties:
                                  access_operator_entity_id:
                                    pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                    type: string
                                  terms_authority_entity_id:
                                    pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                                    type: string
                                required:
                                  - terms_authority_entity_id
                                  - access_operator_entity_id
                                type: object
                              summary:
                                maxLength: 240
                                minLength: 1
                                type: string
                              terms_url:
                                format: uri
                                type: string
                              title:
                                minLength: 1
                                type: string
                            required:
                              - title
                              - summary
                              - lifecycle
                              - economics
                              - eligibility
                              - roles
                              - access
                            type: object
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          offer_id:
                            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          program_id:
                            pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          revision_contract:
                            const: sourcey.offer-revision/v1alpha1
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - revision_contract
                          - entity_id
                          - offer_id
                          - content
                          - revision_digest
                        type: object
                      - additionalProperties: false
                        properties:
                          agent_readiness_profile_id:
                            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          catalog_binding:
                            additionalProperties: false
                            properties:
                              base_release_id:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                              entity_revision_digest:
                                pattern: ^sha256:[a-f0-9]{64}$
                                type: string
                            required:
                              - base_release_id
                              - entity_revision_digest
                            type: object
                          declaration:
                            oneOf:
                              - additionalProperties: false
                                properties:
                                  status:
                                    const: none
                                    type: string
                                required:
                                  - status
                                type: object
                              - additionalProperties: false
                                properties:
                                  declaration_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  provenance:
                                    additionalProperties: false
                                    properties:
                                      blob_digest:
                                        pattern: ^sha256:[a-f0-9]{64}$
                                        type: string
                                      commit:
                                        pattern: ^[a-f0-9]{40,64}$
                                        type: string
                                      git_blob_oid:
                                        pattern: ^[a-f0-9]{40,64}$
                                        type: string
                                      path:
                                        pattern: ^vendors\/[a-z0-9]{1,2}\/[a-z0-9]+(?:-[a-z0-9]+)*\.yaml$
                                        type: string
                                      repository:
                                        const: sourcey/agent-ready-services
                                        type: string
                                    required:
                                      - repository
                                      - commit
                                      - path
                                      - git_blob_oid
                                      - blob_digest
                                    type: object
                                  status:
                                    enum:
                                      - community_declared
                                      - vendor_declared
                                    type: string
                                required:
                                  - declaration_id
                                  - provenance
                                  - status
                                type: object
                          declaration_revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          effective_from:
                            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)))$
                            type: string
                          effective_until:
                            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)))$
                            type: string
                          entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          lifecycle:
                            enum:
                              - active
                              - ended
                              - withdrawn
                            type: string
                          revision_contract:
                            const: sourcey.agent-readiness-revision/v1alpha1
                            type: string
                          revision_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          scope:
                            additionalProperties: false
                            properties:
                              funnel:
                                additionalProperties: false
                                properties:
                                  key:
                                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                    type: string
                                  name:
                                    maxLength: 160
                                    minLength: 1
                                    type: string
                                required:
                                  - key
                                  - name
                                type: object
                              product:
                                additionalProperties: false
                                properties:
                                  key:
                                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                    type: string
                                  name:
                                    maxLength: 160
                                    minLength: 1
                                    type: string
                                required:
                                  - key
                                  - name
                                type: object
                            required:
                              - product
                              - funnel
                            type: object
                          signals:
                            items:
                              additionalProperties: false
                              properties:
                                assessment_method:
                                  additionalProperties: false
                                  properties:
                                    method_digest:
                                      pattern: ^sha256:[a-f0-9]{64}$
                                      type: string
                                    name:
                                      pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                      type: string
                                    version:
                                      maxLength: 160
                                      minLength: 1
                                      type: string
                                  required:
                                    - name
                                    - version
                                    - method_digest
                                  type: object
                                negative_coverage:
                                  additionalProperties: false
                                  properties:
                                    covered_surfaces:
                                      items:
                                        additionalProperties: false
                                        properties:
                                          node_id:
                                            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                            type: string
                                          node_kind:
                                            enum:
                                              - resource
                                              - endpoint
                                              - interface
                                            type: string
                                        required:
                                          - node_kind
                                          - node_id
                                        type: object
                                      minItems: 1
                                      type: array
                                    kind:
                                      enum:
                                        - complete-response-inspection
                                        - complete-structured-resource-validation
                                        - bounded-rendered-flow-inspection
                                        - explicit-first-party-declaration
                                        - reviewed-manual-inspection
                                      type: string
                                    scope:
                                      enum:
                                        - exact-resource
                                        - tested-surfaces
                                        - exact-funnel
                                      type: string
                                  required:
                                    - kind
                                    - scope
                                    - covered_surfaces
                                  type: object
                                note:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                observed_at:
                                  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)))$
                                  type: string
                                signal_code:
                                  pattern: ^[a-z0-9]+(?:[._-][a-z0-9]+)*$
                                  type: string
                                stage:
                                  enum:
                                    - evaluate
                                    - sign_up
                                    - pay
                                    - provision
                                    - operate
                                  type: string
                                tested_surfaces:
                                  items:
                                    additionalProperties: false
                                    properties:
                                      node_id:
                                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                                        type: string
                                      node_kind:
                                        enum:
                                          - resource
                                          - endpoint
                                          - interface
                                        type: string
                                    required:
                                      - node_kind
                                      - node_id
                                    type: object
                                  minItems: 1
                                  type: array
                                value:
                                  enum:
                                    - yes
                                    - no
                                    - partial
                                    - unknown
                                    - not_applicable
                                  type: string
                              required:
                                - stage
                                - signal_code
                                - value
                                - observed_at
                                - tested_surfaces
                                - assessment_method
                              type: object
                            minItems: 1
                            type: array
                        required:
                          - revision_contract
                          - agent_readiness_profile_id
                          - entity_id
                          - scope
                          - catalog_binding
                          - declaration_revision_digest
                          - declaration
                          - lifecycle
                          - effective_from
                          - signals
                          - revision_digest
                        type: object
                  revision_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - revision_digest
                  - revision
                type: object
              type: array
          required:
            - resource_digests
            - current_revision_digests
            - revisions
            - events
            - observations
            - capture_receipts
          type: object
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
      type: object
    SearchCatalogResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/SearchCatalogResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/SearchCatalogResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/SearchCatalogResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            additionalProperties: false
            properties:
              category:
                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                type: string
              description:
                minLength: 1
                type: string
              entity_id:
                pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                type: string
              name:
                minLength: 1
                type: string
              offers:
                items:
                  additionalProperties: false
                  properties:
                    access:
                      additionalProperties: false
                      properties:
                        availability:
                          enum:
                            - public
                            - referral
                            - membership
                            - invite
                            - automatic
                            - other
                          type: string
                        instructions:
                          maxLength: 1000
                          minLength: 1
                          type: string
                        method:
                          enum:
                            - form
                            - code
                            - contact
                            - automatic
                            - other
                          type: string
                        public_code:
                          maxLength: 200
                          minLength: 1
                          type: string
                        url:
                          format: uri
                          type: string
                      required:
                        - availability
                        - method
                      type: object
                    description:
                      minLength: 1
                      type: string
                    economics:
                      additionalProperties: false
                      properties:
                        benefits:
                          items:
                            oneOf:
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: credit
                                    type: string
                                  value:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: exact
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: up-to
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          amount:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          kind:
                                            const: at-least
                                            type: string
                                        required:
                                          - kind
                                          - amount
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: range
                                            type: string
                                          maximum:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                          minimum:
                                            additionalProperties: false
                                            properties:
                                              currency:
                                                pattern: ^[A-Z]{3}$
                                                type: string
                                              minor_units:
                                                maximum: 9007199254740991
                                                minimum: 0
                                                type: integer
                                            required:
                                              - currency
                                              - minor_units
                                            type: object
                                        required:
                                          - kind
                                          - minimum
                                          - maximum
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - value
                                type: object
                              - additionalProperties: false
                                properties:
                                  applies_to:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: discount
                                    type: string
                                  percentage:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: exact
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: up-to
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          kind:
                                            const: at-least
                                            type: string
                                        required:
                                          - kind
                                          - basis_points
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: range
                                            type: string
                                          maximum_basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                          minimum_basis_points:
                                            maximum: 10000
                                            minimum: 1
                                            type: integer
                                        required:
                                          - kind
                                          - minimum_basis_points
                                          - maximum_basis_points
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - percentage
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: cashback
                                    type: string
                                  value:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: money
                                            type: string
                                          value:
                                            oneOf:
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: exact
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: up-to
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  amount:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  kind:
                                                    const: at-least
                                                    type: string
                                                required:
                                                  - kind
                                                  - amount
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  kind:
                                                    const: range
                                                    type: string
                                                  maximum:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                  minimum:
                                                    additionalProperties: false
                                                    properties:
                                                      currency:
                                                        pattern: ^[A-Z]{3}$
                                                        type: string
                                                      minor_units:
                                                        maximum: 9007199254740991
                                                        minimum: 0
                                                        type: integer
                                                    required:
                                                      - currency
                                                      - minor_units
                                                    type: object
                                                required:
                                                  - kind
                                                  - minimum
                                                  - maximum
                                                type: object
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: percentage
                                            type: string
                                          value:
                                            oneOf:
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: exact
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: up-to
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  kind:
                                                    const: at-least
                                                    type: string
                                                required:
                                                  - kind
                                                  - basis_points
                                                type: object
                                              - additionalProperties: false
                                                properties:
                                                  kind:
                                                    const: range
                                                    type: string
                                                  maximum_basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                  minimum_basis_points:
                                                    maximum: 10000
                                                    minimum: 1
                                                    type: integer
                                                required:
                                                  - kind
                                                  - minimum_basis_points
                                                  - maximum_basis_points
                                                type: object
                                        required:
                                          - kind
                                          - value
                                        type: object
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - value
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: waiver
                                    type: string
                                  waived_item:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - waived_item
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  duration:
                                    oneOf:
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: exact
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: up-to
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                      - additionalProperties: false
                                        properties:
                                          kind:
                                            const: at-least
                                            type: string
                                          value:
                                            pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                            type: string
                                        required:
                                          - kind
                                          - value
                                        type: object
                                  kind:
                                    const: free-service
                                    type: string
                                  service:
                                    maxLength: 240
                                    minLength: 1
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                  - service
                                type: object
                              - additionalProperties: false
                                properties:
                                  benefit_id:
                                    pattern: ^[a-z0-9][a-z0-9_-]*$
                                    type: string
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: other
                                    type: string
                                required:
                                  - benefit_id
                                  - description
                                  - kind
                                type: object
                          minItems: 1
                          type: array
                        consideration:
                          oneOf:
                            - additionalProperties: false
                              properties:
                                kind:
                                  const: none
                                  type: string
                              required:
                                - kind
                              type: object
                            - additionalProperties: false
                              properties:
                                amount:
                                  additionalProperties: false
                                  properties:
                                    currency:
                                      pattern: ^[A-Z]{3}$
                                      type: string
                                    minor_units:
                                      maximum: 9007199254740991
                                      minimum: 0
                                      type: integer
                                  required:
                                    - currency
                                    - minor_units
                                  type: object
                                kind:
                                  const: fixed
                                  type: string
                              required:
                                - kind
                                - amount
                              type: object
                            - additionalProperties: false
                              properties:
                                description:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                kind:
                                  const: variable
                                  type: string
                              required:
                                - kind
                                - description
                              type: object
                            - additionalProperties: false
                              properties:
                                description:
                                  maxLength: 500
                                  minLength: 1
                                  type: string
                                kind:
                                  const: unknown
                                  type: string
                              required:
                                - kind
                                - description
                              type: object
                      required:
                        - consideration
                        - benefits
                      type: object
                    effective_from:
                      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)))$
                      type: string
                    effective_until:
                      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)))$
                      type: string
                    eligibility:
                      additionalProperties: false
                      properties:
                        rule:
                          $ref: "#/components/schemas/SearchCatalogResponse200/$defs/__schema0"
                      required:
                        - rule
                      type: object
                    lifecycle:
                      enum:
                        - active
                        - ended
                        - withdrawn
                      type: string
                    offer_id:
                      pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    roles:
                      additionalProperties: false
                      properties:
                        access_operator_entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                        terms_authority_entity_id:
                          pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                          type: string
                      required:
                        - terms_authority_entity_id
                        - access_operator_entity_id
                      type: object
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    terms_url:
                      format: uri
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - offer_id
                    - slug
                    - title
                    - summary
                    - economics
                    - eligibility
                    - roles
                    - access
                    - lifecycle
                    - effective_from
                    - revision_digest
                    - provenance
                  type: object
                type: array
              programs:
                items:
                  additionalProperties: false
                  properties:
                    program_id:
                      pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                      type: string
                    provenance:
                      additionalProperties: false
                      properties:
                        attestation_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        basis_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          minItems: 1
                          type: array
                        coverage_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        dispute:
                          enum:
                            - none
                            - open
                            - resolved
                          type: string
                        fields:
                          items:
                            additionalProperties: false
                            properties:
                              accepted_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                minItems: 1
                                type: array
                              contradicting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                              evidence_proof_kinds:
                                items:
                                  enum:
                                    - observed
                                    - derived
                                    - editorial
                                  type: string
                                type: array
                              freshness:
                                enum:
                                  - fresh
                                  - stale
                                  - unknown
                                type: string
                              latest_observation_at:
                                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)))$
                                type: string
                              path:
                                pattern: ^\/.*
                                type: string
                              supporting_event_ids:
                                items:
                                  pattern: ^sha256:[a-f0-9]{64}$
                                  type: string
                                type: array
                            required:
                              - path
                              - supporting_event_ids
                              - contradicting_event_ids
                              - accepted_proof_kinds
                              - evidence_proof_kinds
                              - freshness
                            type: object
                          minItems: 1
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        freshness_policy_digest:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                        tier:
                          enum:
                            - observed
                            - signed
                            - verified
                          type: string
                        verification_event_id:
                          pattern: ^sha256:[a-f0-9]{64}$
                          type: string
                      required:
                        - tier
                        - freshness
                        - dispute
                        - coverage_policy_digest
                        - freshness_policy_digest
                        - basis_event_ids
                        - fields
                      type: object
                    revision_digest:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    slug:
                      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      type: string
                    summary:
                      maxLength: 240
                      minLength: 1
                      type: string
                    title:
                      minLength: 1
                      type: string
                  required:
                    - program_id
                    - slug
                    - title
                    - revision_digest
                    - provenance
                  type: object
                type: array
              provenance:
                additionalProperties: false
                properties:
                  attestation_event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  basis_event_ids:
                    items:
                      pattern: ^sha256:[a-f0-9]{64}$
                      type: string
                    minItems: 1
                    type: array
                  coverage_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  dispute:
                    enum:
                      - none
                      - open
                      - resolved
                    type: string
                  fields:
                    items:
                      additionalProperties: false
                      properties:
                        accepted_proof_kinds:
                          items:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                          minItems: 1
                          type: array
                        contradicting_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          type: array
                        evidence_proof_kinds:
                          items:
                            enum:
                              - observed
                              - derived
                              - editorial
                            type: string
                          type: array
                        freshness:
                          enum:
                            - fresh
                            - stale
                            - unknown
                          type: string
                        latest_observation_at:
                          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)))$
                          type: string
                        path:
                          pattern: ^\/.*
                          type: string
                        supporting_event_ids:
                          items:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          type: array
                      required:
                        - path
                        - supporting_event_ids
                        - contradicting_event_ids
                        - accepted_proof_kinds
                        - evidence_proof_kinds
                        - freshness
                      type: object
                    minItems: 1
                    type: array
                  freshness:
                    enum:
                      - fresh
                      - stale
                      - unknown
                    type: string
                  freshness_policy_digest:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                  tier:
                    enum:
                      - observed
                      - signed
                      - verified
                    type: string
                  verification_event_id:
                    pattern: ^sha256:[a-f0-9]{64}$
                    type: string
                required:
                  - tier
                  - freshness
                  - dispute
                  - coverage_policy_digest
                  - freshness_policy_digest
                  - basis_event_ids
                  - fields
                type: object
              revision_digest:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
              slug:
                pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                type: string
              website:
                format: uri
                type: string
            required:
              - entity_id
              - slug
              - name
              - description
              - website
              - category
              - revision_digest
              - provenance
              - programs
              - offers
            type: object
          type: array
        next_cursor:
          anyOf:
            - minLength: 1
              type: string
            - type: "null"
        query:
          type: string
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
        - query
        - next_cursor
      type: object
    SearchOffersResponse200:
      $defs:
        __schema0:
          anyOf:
            - anyOf:
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - present
                        - absent
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - eq
                        - neq
                        - contains
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string
                              type: string
                            value:
                              type: string
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: boolean
                              type: string
                            value:
                              type: boolean
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      const: in
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: string-set
                              type: string
                            values:
                              items:
                                type: string
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: number-set
                              type: string
                            values:
                              items:
                                type: number
                              minItems: 1
                              type: array
                          required:
                            - type
                            - values
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
                - additionalProperties: false
                  properties:
                    criterion_id:
                      pattern: ^[a-z0-9][a-z0-9_-]*$
                      type: string
                    fact:
                      pattern: ^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)+$
                      type: string
                    kind:
                      const: predicate
                      type: string
                    operator:
                      enum:
                        - lt
                        - lte
                        - gt
                        - gte
                      type: string
                    statement:
                      maxLength: 500
                      minLength: 1
                      type: string
                    value:
                      oneOf:
                        - additionalProperties: false
                          properties:
                            type:
                              const: number
                              type: string
                            value:
                              type: number
                          required:
                            - type
                            - value
                          type: object
                        - additionalProperties: false
                          properties:
                            type:
                              const: date
                              type: string
                            value:
                              format: date
                              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])))$
                              type: string
                          required:
                            - type
                            - value
                          type: object
                  required:
                    - kind
                    - criterion_id
                    - statement
                    - fact
                    - operator
                    - value
                  type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: manual
                  type: string
                reason:
                  enum:
                    - vendor-discretion
                    - external-verification
                    - not-machine-evaluable
                    - other
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
              required:
                - kind
                - criterion_id
                - statement
                - reason
              type: object
            - additionalProperties: false
              properties:
                criterion_id:
                  pattern: ^[a-z0-9][a-z0-9_-]*$
                  type: string
                kind:
                  const: constant
                  type: string
                statement:
                  maxLength: 500
                  minLength: 1
                  type: string
                value:
                  type: boolean
              required:
                - kind
                - criterion_id
                - statement
                - value
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: all
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/SearchOffersResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: any
                  type: string
                rules:
                  items:
                    $ref: "#/components/schemas/SearchOffersResponse200/$defs/__schema0"
                  minItems: 1
                  type: array
              required:
                - kind
                - rules
              type: object
            - additionalProperties: false
              properties:
                kind:
                  const: not
                  type: string
                rule:
                  $ref: "#/components/schemas/SearchOffersResponse200/$defs/__schema0"
              required:
                - kind
                - rule
              type: object
      additionalProperties: false
      properties:
        api_contract:
          const: sourcey.catalog-api/v1
          type: string
        artifact_sha256:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
        data:
          items:
            anyOf:
              - additionalProperties: false
                properties:
                  canonical_url:
                    format: uri
                    type: string
                  category:
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    type: string
                  entity_id:
                    pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  entity_name:
                    minLength: 1
                    type: string
                  entity_slug:
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    type: string
                  offer:
                    additionalProperties: false
                    properties:
                      access:
                        additionalProperties: false
                        properties:
                          availability:
                            enum:
                              - public
                              - referral
                              - membership
                              - invite
                              - automatic
                              - other
                            type: string
                          instructions:
                            maxLength: 1000
                            minLength: 1
                            type: string
                          method:
                            enum:
                              - form
                              - code
                              - contact
                              - automatic
                              - other
                            type: string
                          public_code:
                            maxLength: 200
                            minLength: 1
                            type: string
                          url:
                            format: uri
                            type: string
                        required:
                          - availability
                          - method
                        type: object
                      description:
                        minLength: 1
                        type: string
                      economics:
                        additionalProperties: false
                        properties:
                          benefits:
                            items:
                              oneOf:
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: credit
                                      type: string
                                    value:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: exact
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: up-to
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: at-least
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: range
                                              type: string
                                            maximum:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            minimum:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                          required:
                                            - kind
                                            - minimum
                                            - maximum
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - value
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    applies_to:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: discount
                                      type: string
                                    percentage:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: exact
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: up-to
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: at-least
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: range
                                              type: string
                                            maximum_basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            minimum_basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                          required:
                                            - kind
                                            - minimum_basis_points
                                            - maximum_basis_points
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - percentage
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: cashback
                                      type: string
                                    value:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: money
                                              type: string
                                            value:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: exact
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: range
                                                      type: string
                                                    maximum:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    minimum:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                  required:
                                                    - kind
                                                    - minimum
                                                    - maximum
                                                  type: object
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: percentage
                                              type: string
                                            value:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: exact
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: range
                                                      type: string
                                                    maximum_basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    minimum_basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                  required:
                                                    - kind
                                                    - minimum_basis_points
                                                    - maximum_basis_points
                                                  type: object
                                          required:
                                            - kind
                                            - value
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - value
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    kind:
                                      const: waiver
                                      type: string
                                    waived_item:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - waived_item
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: free-service
                                      type: string
                                    service:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - service
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    kind:
                                      const: other
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                  type: object
                            minItems: 1
                            type: array
                          consideration:
                            oneOf:
                              - additionalProperties: false
                                properties:
                                  kind:
                                    const: none
                                    type: string
                                required:
                                  - kind
                                type: object
                              - additionalProperties: false
                                properties:
                                  amount:
                                    additionalProperties: false
                                    properties:
                                      currency:
                                        pattern: ^[A-Z]{3}$
                                        type: string
                                      minor_units:
                                        maximum: 9007199254740991
                                        minimum: 0
                                        type: integer
                                    required:
                                      - currency
                                      - minor_units
                                    type: object
                                  kind:
                                    const: fixed
                                    type: string
                                required:
                                  - kind
                                  - amount
                                type: object
                              - additionalProperties: false
                                properties:
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: variable
                                    type: string
                                required:
                                  - kind
                                  - description
                                type: object
                              - additionalProperties: false
                                properties:
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: unknown
                                    type: string
                                required:
                                  - kind
                                  - description
                                type: object
                        required:
                          - consideration
                          - benefits
                        type: object
                      effective_from:
                        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)))$
                        type: string
                      effective_until:
                        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)))$
                        type: string
                      eligibility:
                        additionalProperties: false
                        properties:
                          rule:
                            $ref: "#/components/schemas/SearchOffersResponse200/$defs/__schema0"
                        required:
                          - rule
                        type: object
                      lifecycle:
                        enum:
                          - active
                          - ended
                          - withdrawn
                        type: string
                      offer_id:
                        pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      program_id:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      provenance:
                        additionalProperties: false
                        properties:
                          attestation_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          basis_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            minItems: 1
                            type: array
                          coverage_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          dispute:
                            enum:
                              - none
                              - open
                              - resolved
                            type: string
                          fields:
                            items:
                              additionalProperties: false
                              properties:
                                accepted_proof_kinds:
                                  items:
                                    enum:
                                      - observed
                                      - derived
                                      - editorial
                                    type: string
                                  minItems: 1
                                  type: array
                                contradicting_event_ids:
                                  items:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  type: array
                                evidence_proof_kinds:
                                  items:
                                    enum:
                                      - observed
                                      - derived
                                      - editorial
                                    type: string
                                  type: array
                                freshness:
                                  enum:
                                    - fresh
                                    - stale
                                    - unknown
                                  type: string
                                latest_observation_at:
                                  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)))$
                                  type: string
                                path:
                                  pattern: ^\/.*
                                  type: string
                                supporting_event_ids:
                                  items:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  type: array
                              required:
                                - path
                                - supporting_event_ids
                                - contradicting_event_ids
                                - accepted_proof_kinds
                                - evidence_proof_kinds
                                - freshness
                              type: object
                            minItems: 1
                            type: array
                          freshness:
                            enum:
                              - fresh
                              - stale
                              - unknown
                            type: string
                          freshness_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          tier:
                            enum:
                              - observed
                              - signed
                              - verified
                            type: string
                          verification_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - tier
                          - freshness
                          - dispute
                          - coverage_policy_digest
                          - freshness_policy_digest
                          - basis_event_ids
                          - fields
                        type: object
                      revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      roles:
                        additionalProperties: false
                        properties:
                          access_operator_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          terms_authority_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                        required:
                          - terms_authority_entity_id
                          - access_operator_entity_id
                        type: object
                      slug:
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                      summary:
                        maxLength: 240
                        minLength: 1
                        type: string
                      terms_url:
                        format: uri
                        type: string
                      title:
                        minLength: 1
                        type: string
                    required:
                      - offer_id
                      - slug
                      - title
                      - summary
                      - economics
                      - eligibility
                      - roles
                      - access
                      - lifecycle
                      - effective_from
                      - revision_digest
                      - provenance
                    type: object
                  program_id:
                    pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  program_slug:
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    type: string
                  program_title:
                    minLength: 1
                    type: string
                required:
                  - entity_id
                  - entity_slug
                  - entity_name
                  - category
                  - offer
                  - canonical_url
                  - program_id
                  - program_slug
                  - program_title
                type: object
              - additionalProperties: false
                properties:
                  canonical_url:
                    format: uri
                    type: string
                  category:
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    type: string
                  entity_id:
                    pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                    type: string
                  entity_name:
                    minLength: 1
                    type: string
                  entity_slug:
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    type: string
                  offer:
                    additionalProperties: false
                    properties:
                      access:
                        additionalProperties: false
                        properties:
                          availability:
                            enum:
                              - public
                              - referral
                              - membership
                              - invite
                              - automatic
                              - other
                            type: string
                          instructions:
                            maxLength: 1000
                            minLength: 1
                            type: string
                          method:
                            enum:
                              - form
                              - code
                              - contact
                              - automatic
                              - other
                            type: string
                          public_code:
                            maxLength: 200
                            minLength: 1
                            type: string
                          url:
                            format: uri
                            type: string
                        required:
                          - availability
                          - method
                        type: object
                      description:
                        minLength: 1
                        type: string
                      economics:
                        additionalProperties: false
                        properties:
                          benefits:
                            items:
                              oneOf:
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: credit
                                      type: string
                                    value:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: exact
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: up-to
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            amount:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            kind:
                                              const: at-least
                                              type: string
                                          required:
                                            - kind
                                            - amount
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: range
                                              type: string
                                            maximum:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                            minimum:
                                              additionalProperties: false
                                              properties:
                                                currency:
                                                  pattern: ^[A-Z]{3}$
                                                  type: string
                                                minor_units:
                                                  maximum: 9007199254740991
                                                  minimum: 0
                                                  type: integer
                                              required:
                                                - currency
                                                - minor_units
                                              type: object
                                          required:
                                            - kind
                                            - minimum
                                            - maximum
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - value
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    applies_to:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: discount
                                      type: string
                                    percentage:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: exact
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: up-to
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            kind:
                                              const: at-least
                                              type: string
                                          required:
                                            - kind
                                            - basis_points
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: range
                                              type: string
                                            maximum_basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                            minimum_basis_points:
                                              maximum: 10000
                                              minimum: 1
                                              type: integer
                                          required:
                                            - kind
                                            - minimum_basis_points
                                            - maximum_basis_points
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - percentage
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: cashback
                                      type: string
                                    value:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: money
                                              type: string
                                            value:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: exact
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    amount:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                  required:
                                                    - kind
                                                    - amount
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: range
                                                      type: string
                                                    maximum:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                    minimum:
                                                      additionalProperties: false
                                                      properties:
                                                        currency:
                                                          pattern: ^[A-Z]{3}$
                                                          type: string
                                                        minor_units:
                                                          maximum: 9007199254740991
                                                          minimum: 0
                                                          type: integer
                                                      required:
                                                        - currency
                                                        - minor_units
                                                      type: object
                                                  required:
                                                    - kind
                                                    - minimum
                                                    - maximum
                                                  type: object
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: percentage
                                              type: string
                                            value:
                                              oneOf:
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: exact
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: up-to
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    kind:
                                                      const: at-least
                                                      type: string
                                                  required:
                                                    - kind
                                                    - basis_points
                                                  type: object
                                                - additionalProperties: false
                                                  properties:
                                                    kind:
                                                      const: range
                                                      type: string
                                                    maximum_basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                    minimum_basis_points:
                                                      maximum: 10000
                                                      minimum: 1
                                                      type: integer
                                                  required:
                                                    - kind
                                                    - minimum_basis_points
                                                    - maximum_basis_points
                                                  type: object
                                          required:
                                            - kind
                                            - value
                                          type: object
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - value
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    kind:
                                      const: waiver
                                      type: string
                                    waived_item:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - waived_item
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    duration:
                                      oneOf:
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: exact
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: up-to
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                        - additionalProperties: false
                                          properties:
                                            kind:
                                              const: at-least
                                              type: string
                                            value:
                                              pattern: ^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$
                                              type: string
                                          required:
                                            - kind
                                            - value
                                          type: object
                                    kind:
                                      const: free-service
                                      type: string
                                    service:
                                      maxLength: 240
                                      minLength: 1
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                    - service
                                  type: object
                                - additionalProperties: false
                                  properties:
                                    benefit_id:
                                      pattern: ^[a-z0-9][a-z0-9_-]*$
                                      type: string
                                    description:
                                      maxLength: 500
                                      minLength: 1
                                      type: string
                                    kind:
                                      const: other
                                      type: string
                                  required:
                                    - benefit_id
                                    - description
                                    - kind
                                  type: object
                            minItems: 1
                            type: array
                          consideration:
                            oneOf:
                              - additionalProperties: false
                                properties:
                                  kind:
                                    const: none
                                    type: string
                                required:
                                  - kind
                                type: object
                              - additionalProperties: false
                                properties:
                                  amount:
                                    additionalProperties: false
                                    properties:
                                      currency:
                                        pattern: ^[A-Z]{3}$
                                        type: string
                                      minor_units:
                                        maximum: 9007199254740991
                                        minimum: 0
                                        type: integer
                                    required:
                                      - currency
                                      - minor_units
                                    type: object
                                  kind:
                                    const: fixed
                                    type: string
                                required:
                                  - kind
                                  - amount
                                type: object
                              - additionalProperties: false
                                properties:
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: variable
                                    type: string
                                required:
                                  - kind
                                  - description
                                type: object
                              - additionalProperties: false
                                properties:
                                  description:
                                    maxLength: 500
                                    minLength: 1
                                    type: string
                                  kind:
                                    const: unknown
                                    type: string
                                required:
                                  - kind
                                  - description
                                type: object
                        required:
                          - consideration
                          - benefits
                        type: object
                      effective_from:
                        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)))$
                        type: string
                      effective_until:
                        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)))$
                        type: string
                      eligibility:
                        additionalProperties: false
                        properties:
                          rule:
                            $ref: "#/components/schemas/SearchOffersResponse200/$defs/__schema0"
                        required:
                          - rule
                        type: object
                      lifecycle:
                        enum:
                          - active
                          - ended
                          - withdrawn
                        type: string
                      offer_id:
                        pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      program_id:
                        pattern: ^prg_[0-9a-hjkmnp-tv-z]{26}$
                        type: string
                      provenance:
                        additionalProperties: false
                        properties:
                          attestation_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          basis_event_ids:
                            items:
                              pattern: ^sha256:[a-f0-9]{64}$
                              type: string
                            minItems: 1
                            type: array
                          coverage_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          dispute:
                            enum:
                              - none
                              - open
                              - resolved
                            type: string
                          fields:
                            items:
                              additionalProperties: false
                              properties:
                                accepted_proof_kinds:
                                  items:
                                    enum:
                                      - observed
                                      - derived
                                      - editorial
                                    type: string
                                  minItems: 1
                                  type: array
                                contradicting_event_ids:
                                  items:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  type: array
                                evidence_proof_kinds:
                                  items:
                                    enum:
                                      - observed
                                      - derived
                                      - editorial
                                    type: string
                                  type: array
                                freshness:
                                  enum:
                                    - fresh
                                    - stale
                                    - unknown
                                  type: string
                                latest_observation_at:
                                  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)))$
                                  type: string
                                path:
                                  pattern: ^\/.*
                                  type: string
                                supporting_event_ids:
                                  items:
                                    pattern: ^sha256:[a-f0-9]{64}$
                                    type: string
                                  type: array
                              required:
                                - path
                                - supporting_event_ids
                                - contradicting_event_ids
                                - accepted_proof_kinds
                                - evidence_proof_kinds
                                - freshness
                              type: object
                            minItems: 1
                            type: array
                          freshness:
                            enum:
                              - fresh
                              - stale
                              - unknown
                            type: string
                          freshness_policy_digest:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                          tier:
                            enum:
                              - observed
                              - signed
                              - verified
                            type: string
                          verification_event_id:
                            pattern: ^sha256:[a-f0-9]{64}$
                            type: string
                        required:
                          - tier
                          - freshness
                          - dispute
                          - coverage_policy_digest
                          - freshness_policy_digest
                          - basis_event_ids
                          - fields
                        type: object
                      revision_digest:
                        pattern: ^sha256:[a-f0-9]{64}$
                        type: string
                      roles:
                        additionalProperties: false
                        properties:
                          access_operator_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                          terms_authority_entity_id:
                            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
                            type: string
                        required:
                          - terms_authority_entity_id
                          - access_operator_entity_id
                        type: object
                      slug:
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                        type: string
                      summary:
                        maxLength: 240
                        minLength: 1
                        type: string
                      terms_url:
                        format: uri
                        type: string
                      title:
                        minLength: 1
                        type: string
                    required:
                      - offer_id
                      - slug
                      - title
                      - summary
                      - economics
                      - eligibility
                      - roles
                      - access
                      - lifecycle
                      - effective_from
                      - revision_digest
                      - provenance
                    type: object
                required:
                  - entity_id
                  - entity_slug
                  - entity_name
                  - category
                  - offer
                  - canonical_url
                type: object
          type: array
        next_cursor:
          anyOf:
            - minLength: 1
              type: string
            - type: "null"
        query:
          type: string
        release_id:
          pattern: ^sha256:[a-f0-9]{64}$
          type: string
      required:
        - api_contract
        - release_id
        - artifact_sha256
        - data
        - query
        - next_cursor
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: Sourcey access key
      description: Optional. Anonymous reads remain available; a key adds identity and higher quotas.
      scheme: bearer
      type: http
    cookieAuth:
      description: Authenticated Sourcey browser session.
      in: cookie
      name: sourcey_session
      type: apiKey
info:
  description: Public version 1 projections of one immutable Sourcey catalog release.
  title: Sourcey Public API
  version: 1.1.0
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
openapi: 3.1.1
paths:
  /v1/agent-readiness-offer-relations:
    get:
      operationId: listAgentReadinessOfferRelations
      parameters:
        - in: query
          name: agent_readiness_profile_id
          required: false
          schema:
            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
            type: string
        - in: query
          name: cursor
          required: false
          schema:
            minLength: 1
            type: string
        - in: query
          name: limit
          required: true
          schema:
            default: 20
            maximum: 100
            minimum: 1
            type: integer
        - in: query
          name: offer_id
          required: false
          schema:
            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListAgentReadinessOfferRelationsResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: List exact released relations between agent readiness profiles and Offers.
      tags:
        - Catalog
  /v1/agent-readiness-offer-relations/{id}:
    get:
      operationId: getAgentReadinessOfferRelation
      parameters:
        - in: path
          name: id
          required: true
          schema:
            pattern: ^[a-z0-9][a-z0-9_-]*$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetAgentReadinessOfferRelationResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an exact released Agent Readiness Offer relation by immutable identity.
      tags:
        - Catalog
  /v1/agent-readiness-profiles:
    get:
      operationId: listAgentReadinessProfiles
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            minLength: 1
            type: string
        - in: query
          name: entity_id
          required: false
          schema:
            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
            type: string
        - in: query
          name: freshness
          required: false
          schema:
            enum:
              - fresh
              - stale
              - unknown
            type: string
        - in: query
          name: funnel_key
          required: false
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
        - in: query
          name: grade
          required: false
          schema:
            enum:
              - A+
              - A
              - B+
              - B
              - C+
              - C
              - D
              - F
              - unrated
            type: string
        - in: query
          name: lifecycle
          required: false
          schema:
            enum:
              - active
              - ended
              - withdrawn
            type: string
        - in: query
          name: limit
          required: true
          schema:
            default: 20
            maximum: 100
            minimum: 1
            type: integer
        - in: query
          name: offer_id
          required: false
          schema:
            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
            type: string
        - in: query
          name: product_key
          required: false
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
        - in: query
          name: public_state
          required: false
          schema:
            enum:
              - ready
              - limited
              - blocked
              - unknown
              - not_applicable
            type: string
        - in: query
          name: q
          required: true
          schema:
            default: ""
            maxLength: 256
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListAgentReadinessProfilesResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Search and filter published agent readiness profiles.
      tags:
        - Catalog
  /v1/agent-readiness-profiles/by-offer/{offer}:
    get:
      operationId: listOfferAgentReadinessProfiles
      parameters:
        - in: path
          name: offer
          required: true
          schema:
            pattern: ^off_[0-9a-hjkmnp-tv-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListOfferAgentReadinessProfilesResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: List published Agent Readiness profiles through exact released Offer relations.
      tags:
        - Catalog
  /v1/agent-readiness-profiles/{id}:
    get:
      operationId: getAgentReadinessProfile
      parameters:
        - in: path
          name: id
          required: true
          schema:
            pattern: ^arp_[0-9a-hjkmnp-tv-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetEntityAgentReadinessProfileResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read a published agent readiness profile by immutable ID.
      tags:
        - Catalog
  /v1/capture-receipts:
    get:
      operationId: listCaptureReceipts
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            minLength: 1
            type: string
        - in: query
          name: limit
          required: false
          schema:
            maximum: 100
            minimum: 1
            type: integer
        - in: query
          name: operation_id
          required: true
          schema:
            pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListCaptureReceiptsResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Find capture receipts by exact operation identity.
      tags:
        - Catalog
  /v1/capture-receipts/{id}:
    get:
      operationId: getCaptureReceipt
      parameters:
        - in: path
          name: id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCaptureReceiptResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an immutable evidence capture receipt.
      tags:
        - Catalog
  /v1/catalog:
    get:
      operationId: getCatalog
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read the complete canonical catalog artifact.
      tags:
        - Catalog
  /v1/catalog/closure:
    post:
      operationId: resolveCatalogClosure
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResolveCatalogClosureRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResolveCatalogClosureResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Resolve the existing catalog objects relevant to a bounded mutation.
      tags:
        - Catalog
  /v1/changes:
    get:
      operationId: getChanges
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetChangesResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read deterministic release changes using a signed cursor.
      tags:
        - Catalog
  /v1/eligibility/check:
    post:
      operationId: checkEligibility
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CheckEligibilityRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckEligibilityResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Evaluate structured eligibility by immutable offer ID.
      tags:
        - Catalog
  /v1/entities:
    get:
      operationId: listEntities
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            minLength: 1
            type: string
        - in: query
          name: domain
          required: false
          schema:
            maxLength: 253
            minLength: 1
            type: string
        - in: query
          name: limit
          required: false
          schema:
            maximum: 100
            minimum: 1
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListEntitiesResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: List catalog entities.
      tags:
        - Catalog
  /v1/entities/by-slug/{entity}:
    get:
      operationId: getEntityBySlug
      parameters:
        - in: path
          name: entity
          required: true
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetEntityResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an entity through its current or historical slug.
      tags:
        - Catalog
  /v1/entities/{entity}:
    get:
      operationId: getEntity
      parameters:
        - in: path
          name: entity
          required: true
          schema:
            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetEntityResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an entity by immutable ID.
      tags:
        - Catalog
  /v1/entities/{entity}/agent-readiness-profiles:
    get:
      operationId: listEntityAgentReadinessProfiles
      parameters:
        - in: path
          name: entity
          required: true
          schema:
            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListEntityAgentReadinessProfilesResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: List published agent readiness profiles for an entity.
      tags:
        - Catalog
  /v1/entities/{entity}/agent-readiness-profiles/{product}/{funnel}:
    get:
      operationId: getEntityAgentReadinessProfile
      parameters:
        - in: path
          name: entity
          required: true
          schema:
            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
            type: string
        - in: path
          name: funnel
          required: true
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
        - in: path
          name: product
          required: true
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetEntityAgentReadinessProfileResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Resolve a published agent readiness profile by immutable entity and exact scope keys.
      tags:
        - Catalog
  /v1/events:
    get:
      operationId: listEvents
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            minLength: 1
            type: string
        - in: query
          name: entity_id
          required: false
          schema:
            pattern: ^ent_[0-9a-hjkmnp-tv-z]{26}$
            type: string
        - in: query
          name: limit
          required: false
          schema:
            maximum: 100
            minimum: 1
            type: integer
        - in: query
          name: operation_id
          required: false
          schema:
            pattern: ^op_[0-9a-hjkmnp-tv-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListEventsResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Find catalog events by exact operation identity.
      tags:
        - Catalog
  /v1/events/{id}:
    get:
      operationId: getEvent
      parameters:
        - in: path
          name: id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetEventResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an immutable catalog event.
      tags:
        - Catalog
  /v1/observations/{id}:
    get:
      operationId: getObservation
      parameters:
        - in: path
          name: id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetObservationResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an immutable source observation.
      tags:
        - Catalog
  /v1/offers/{entity}/{offer}:
    get:
      operationId: getOfferBySlug
      parameters:
        - in: path
          name: entity
          required: true
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
        - in: path
          name: offer
          required: true
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetOfferResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an offer by entity and offer slug.
      tags:
        - Catalog
  /v1/offers/{id}:
    get:
      operationId: getOffer
      parameters:
        - in: path
          name: id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetOfferResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an offer by immutable ID.
      tags:
        - Catalog
  /v1/programs/{entity}/{program}:
    get:
      operationId: getProgramBySlug
      parameters:
        - in: path
          name: entity
          required: true
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
        - in: path
          name: program
          required: true
          schema:
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetProgramResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read a program by entity and program slug.
      tags:
        - Catalog
  /v1/programs/{id}:
    get:
      operationId: getProgram
      parameters:
        - in: path
          name: id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetProgramResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read a program by immutable ID.
      tags:
        - Catalog
  /v1/provenance/{id}:
    get:
      operationId: getProvenance
      parameters:
        - in: path
          name: id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetProvenanceResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read the closed provenance graph for a revision.
      tags:
        - Catalog
  /v1/release:
    get:
      operationId: getCatalogRelease
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogReleaseResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read the immutable catalog release descriptor.
      tags:
        - Catalog
  /v1/releases/{release_id}:
    get:
      operationId: getCatalogReleaseById
      parameters:
        - in: path
          name: release_id
          required: true
          schema:
            pattern: ^sha256:[a-f0-9]{64}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogReleaseByIdResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an immutable retained catalog release.
      tags:
        - Catalog
  /v1/revisions/{id}:
    get:
      operationId: getRevision
      parameters:
        - in: path
          name: id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetRevisionResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read an immutable entity, program, offer, or agent readiness revision.
      tags:
        - Catalog
  /v1/revisions/{id}/provenance:
    get:
      operationId: getRevisionProvenance
      parameters:
        - in: path
          name: id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetProvenanceResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read provenance through a revision-scoped route.
      tags:
        - Catalog
  /v1/search:
    get:
      operationId: searchCatalog
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            minLength: 1
            type: string
        - in: query
          name: limit
          required: true
          schema:
            default: 20
            maximum: 100
            minimum: 1
            type: integer
        - in: query
          name: q
          required: true
          schema:
            default: ""
            maxLength: 256
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchCatalogResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Search the catalog.
      tags:
        - Catalog
  /v1/search/offers:
    get:
      operationId: searchOffers
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            minLength: 1
            type: string
        - in: query
          name: limit
          required: true
          schema:
            default: 20
            maximum: 100
            minimum: 1
            type: integer
        - in: query
          name: q
          required: true
          schema:
            default: ""
            maxLength: 256
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchOffersResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Search offers through the catalog index.
      tags:
        - Catalog
  /v1/status:
    get:
      operationId: getCatalogStatus
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse200"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - {}
        - bearerAuth: []
      summary: Read serving status and the exact catalog release pin.
      tags:
        - Catalog
  /v1/submissions:
    post:
      operationId: createCatalogSubmission
      parameters:
        - in: header
          name: idempotency-key
          required: true
          schema:
            maxLength: 128
            minLength: 8
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateCatalogSubmissionRequest"
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateCatalogSubmissionResponse202"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "409":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 409 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - cookieAuth: []
        - bearerAuth: []
      summary: Submit exact Catalog authoring bytes through an authenticated ingress.
      tags:
        - Catalog
  /v1/submissions/{submission_id}:
    get:
      operationId: getCatalogSubmission
      parameters:
        - in: path
          name: submission_id
          required: true
          schema:
            pattern: ^sub_[a-f0-9]{64}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateCatalogSubmissionResponse202"
          description: Successful response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Invalid request.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 401 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 403 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: Resource not found.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 405 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 429 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 500 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetCatalogStatusResponse401"
          description: HTTP 503 response.
          headers:
            x-request-id:
              description: Server-generated request correlation identifier.
              required: true
              schema:
                type: string
            x-sourcey-artifact-sha256:
              description: Exact immutable catalog artifact digest used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
            x-sourcey-release-id:
              description: Exact immutable catalog release used by this deployment.
              required: true
              schema:
                pattern: ^sha256:[a-f0-9]{64}$
                type: string
      security:
        - cookieAuth: []
        - bearerAuth: []
      summary: Read aggregate validation, admission, and publication state for a submission.
      tags:
        - Catalog
servers:
  - description: Production
    url: https://api.sourcey.com
tags:
  - description: Immutable Sourcey catalog reads, provenance, search, and eligibility.
    name: Catalog
