# Packages

## Domain Types

### Input State

- `InputState = object { effective_bindings, effective_schema }`

  Computed input state for a package — derived at response time from the
  package kind's schema and the package's input binding. Not stored.

  `effective_schema` is the full input schema (kind + binding required
  constraints merged). `effective_bindings` resolves the CEL binding to
  show actual static values and `{"$input": "path"}` references for
  install-provided fields.

  - `effective_bindings: optional map[unknown]`

  - `effective_schema: optional object { additionalProperties, const, default, 17 more }`

    A subset of JSON Schema 2020-12 used to describe package input and output
    shapes.

    Supported keywords:

    - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
    - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
    - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
      `minItems`, `maxItems`, `enum`, `const`, `format`

    Intentionally unsupported (reject at release time rather than silently ignore):

    - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
    - References: `$ref`, `$dynamicRef`
    - `patternProperties`, `propertyNames`, `unevaluatedProperties`
    - Custom vocabularies and `$vocabulary`

    Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

    - `additionalProperties: optional unknown`

      Schema for properties not named in `properties`.

    - `const: optional unknown`

      Constant allowed value.

    - `default: optional unknown`

      Default value (annotation).

    - `description: optional string`

      Human-readable description (annotation).

    - `enum: optional array of unknown`

      Enumerated allowed values.

    - `format: optional string`

      Format hint (e.g., "uri", "uuid", "email", "date-time").

    - `items: optional unknown`

      Schema for array items.

    - `maximum: optional number`

    - `maxItems: optional number`

    - `maxLength: optional number`

    - `minimum: optional number`

    - `minItems: optional number`

    - `minLength: optional number`

    - `pattern: optional string`

    - `properties: optional unknown`

      Property schemas, keyed by property name.

    - `readOnly: optional boolean`

      Read-only hint — server-populated, ignored on write.

    - `required: optional array of string`

      Names of required properties.

    - `title: optional string`

      Human-readable title (annotation).

    - `type: optional "object" or "array" or "string" or 4 more`

      The `type` keyword in JSON Schema 2020-12.

      - `"object"`

      - `"array"`

      - `"string"`

      - `"integer"`

      - `"number"`

      - `"boolean"`

      - `"null"`

    - `writeOnly: optional boolean`

      Write-only hint (passwords, secrets) — never returned on read.

### Package

- `Package = object { id, created_at, kind, 15 more }`

  - `id: string`

  - `created_at: string`

  - `kind: string`

  - `name: string`

  - `published: boolean`

    Whether the package is published. Unpublished packages are excluded from
    list endpoints by default; pass `include_unpublished=true` to include them.

  - `slug: string`

    Server-populated URL-friendly identifier.

  - `updated_at: string`

  - `current_version: optional PackageVersion`

    - `id: string`

    - `created_at: string`

    - `manifest_sha: string`

    - `name: string`

    - `owner_type: "platform" or "customer"`

      - `"platform"`

      - `"customer"`

    - `version: number`

    - `archived_at: optional string`

    - `created_by: optional string`

    - `description: optional string`

    - `icon_url: optional string`

    - `inputs: optional PackageInputBinding`

      Input binding for a package.

      `schema` constrains install-level inputs. `bindings` is a CEL expression
      that assembles the flat input map — static values are CEL literals,
      install-provided values are `pkg.inputs.X` references. Evaluated at
      provisioning time to produce the `entities.inputs` map for entity bindings.

      - `bindings: optional string`

        CEL expression assembling the flat input map from static values
        and install-provided values (referenced via `pkg.inputs.X`).

        Scope:

        - `pkg.inputs` — install-supplied values conforming to `schema`.

      - `schema: optional object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `links: optional array of object { href, rel, properties, 2 more }`

      - `href: string`

        Target reference.

        Fragment URIs (`#name`) reference other entities in the same graph by
        their local name (the key in the entity map). Absolute paths and URLs reference
        external resources outside the graph.

      - `rel: string`

        Link relation type.

      - `properties: optional map[unknown]`

        Additional metadata keyed by property name.

      - `titles: optional map[string]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: optional string`

        Media type of the target resource (per RFC 7033 section 4.4.4.3).
        Applies to external `href`s; typically omitted for intra-graph references.

    - `outputs: optional PackageOutputBinding`

      Output binding for a package.

      `schema` describes the flat outputs surfaced on an install.
      `bindings` is a CEL expression — a map literal whose keys match
      `schema.properties` and whose values project fields out of the resolved
      entity graph. Evaluated after the provisioner has resolved all entities.

      - `bindings: string`

        CEL expression source. Must evaluate to a map whose fields match
        `schema.properties`.

        Scope: `entities`:

        - `entities.inputs` — the package's input values (merged with
          install inputs at provisioning time).
        - `entities.<name>` — resolved entities in the graph, each with
          `href: string` and `outputs: map<string, dyn>`.

      - `schema: object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `properties: optional map[unknown]`

      Vocabulary-defined metadata properties, keyed by property URN.

      Known properties are declared with their schemas; additional
      properties with custom URNs are permitted via `Record<unknown>`.

      Each property carries `x-subject-types` indicating which entity types
      it applies to. Properties with `draft/` in the URN are experimental
      and carry `x-internal: true`.

    - `tags: optional array of string`

  - `description: optional string`

  - `draft: optional PackageDraft`

    - `id: string`

    - `manifest_sha: string`

    - `name: string`

    - `updated_at: string`

    - `description: optional string`

    - `icon_url: optional string`

    - `inputs: optional PackageInputBinding`

      Input binding for a package.

      `schema` constrains install-level inputs. `bindings` is a CEL expression
      that assembles the flat input map — static values are CEL literals,
      install-provided values are `pkg.inputs.X` references. Evaluated at
      provisioning time to produce the `entities.inputs` map for entity bindings.

      - `bindings: optional string`

        CEL expression assembling the flat input map from static values
        and install-provided values (referenced via `pkg.inputs.X`).

        Scope:

        - `pkg.inputs` — install-supplied values conforming to `schema`.

      - `schema: optional object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `links: optional array of object { href, rel, properties, 2 more }`

      - `href: string`

        Target reference.

        Fragment URIs (`#name`) reference other entities in the same graph by
        their local name (the key in the entity map). Absolute paths and URLs reference
        external resources outside the graph.

      - `rel: string`

        Link relation type.

      - `properties: optional map[unknown]`

        Additional metadata keyed by property name.

      - `titles: optional map[string]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: optional string`

        Media type of the target resource (per RFC 7033 section 4.4.4.3).
        Applies to external `href`s; typically omitted for intra-graph references.

    - `outputs: optional PackageOutputBinding`

      Output binding for a package.

      `schema` describes the flat outputs surfaced on an install.
      `bindings` is a CEL expression — a map literal whose keys match
      `schema.properties` and whose values project fields out of the resolved
      entity graph. Evaluated after the provisioner has resolved all entities.

      - `bindings: string`

        CEL expression source. Must evaluate to a map whose fields match
        `schema.properties`.

        Scope: `entities`:

        - `entities.inputs` — the package's input values (merged with
          install inputs at provisioning time).
        - `entities.<name>` — resolved entities in the graph, each with
          `href: string` and `outputs: map<string, dyn>`.

      - `schema: object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `properties: optional map[unknown]`

      Vocabulary-defined metadata properties, keyed by property URN.

      Known properties are declared with their schemas; additional
      properties with custom URNs are permitted via `Record<unknown>`.

      Each property carries `x-subject-types` indicating which entity types
      it applies to. Properties with `draft/` in the URN are experimental
      and carry `x-internal: true`.

    - `tags: optional array of string`

  - `icon_url: optional string`

  - `input_state: optional InputState`

    Computed input state for a package — derived at response time from the
    package kind's schema and the package's input binding. Not stored.

    `effective_schema` is the full input schema (kind + binding required
    constraints merged). `effective_bindings` resolves the CEL binding to
    show actual static values and `{"$input": "path"}` references for
    install-provided fields.

    - `effective_bindings: optional map[unknown]`

    - `effective_schema: optional object { additionalProperties, const, default, 17 more }`

      A subset of JSON Schema 2020-12 used to describe package input and output
      shapes.

      Supported keywords:

      - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
      - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
      - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
        `minItems`, `maxItems`, `enum`, `const`, `format`

      Intentionally unsupported (reject at release time rather than silently ignore):

      - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
      - References: `$ref`, `$dynamicRef`
      - `patternProperties`, `propertyNames`, `unevaluatedProperties`
      - Custom vocabularies and `$vocabulary`

      Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

      - `additionalProperties: optional unknown`

        Schema for properties not named in `properties`.

      - `const: optional unknown`

        Constant allowed value.

      - `default: optional unknown`

        Default value (annotation).

      - `description: optional string`

        Human-readable description (annotation).

      - `enum: optional array of unknown`

        Enumerated allowed values.

      - `format: optional string`

        Format hint (e.g., "uri", "uuid", "email", "date-time").

      - `items: optional unknown`

        Schema for array items.

      - `maximum: optional number`

      - `maxItems: optional number`

      - `maxLength: optional number`

      - `minimum: optional number`

      - `minItems: optional number`

      - `minLength: optional number`

      - `pattern: optional string`

      - `properties: optional unknown`

        Property schemas, keyed by property name.

      - `readOnly: optional boolean`

        Read-only hint — server-populated, ignored on write.

      - `required: optional array of string`

        Names of required properties.

      - `title: optional string`

        Human-readable title (annotation).

      - `type: optional "object" or "array" or "string" or 4 more`

        The `type` keyword in JSON Schema 2020-12.

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `writeOnly: optional boolean`

        Write-only hint (passwords, secrets) — never returned on read.

  - `inputs: optional PackageInputBinding`

    Input binding for a package.

    `schema` constrains install-level inputs. `bindings` is a CEL expression
    that assembles the flat input map — static values are CEL literals,
    install-provided values are `pkg.inputs.X` references. Evaluated at
    provisioning time to produce the `entities.inputs` map for entity bindings.

    - `bindings: optional string`

      CEL expression assembling the flat input map from static values
      and install-provided values (referenced via `pkg.inputs.X`).

      Scope:

      - `pkg.inputs` — install-supplied values conforming to `schema`.

    - `schema: optional object { additionalProperties, const, default, 17 more }`

      A subset of JSON Schema 2020-12 used to describe package input and output
      shapes.

      Supported keywords:

      - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
      - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
      - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
        `minItems`, `maxItems`, `enum`, `const`, `format`

      Intentionally unsupported (reject at release time rather than silently ignore):

      - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
      - References: `$ref`, `$dynamicRef`
      - `patternProperties`, `propertyNames`, `unevaluatedProperties`
      - Custom vocabularies and `$vocabulary`

      Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

      - `additionalProperties: optional unknown`

        Schema for properties not named in `properties`.

      - `const: optional unknown`

        Constant allowed value.

      - `default: optional unknown`

        Default value (annotation).

      - `description: optional string`

        Human-readable description (annotation).

      - `enum: optional array of unknown`

        Enumerated allowed values.

      - `format: optional string`

        Format hint (e.g., "uri", "uuid", "email", "date-time").

      - `items: optional unknown`

        Schema for array items.

      - `maximum: optional number`

      - `maxItems: optional number`

      - `maxLength: optional number`

      - `minimum: optional number`

      - `minItems: optional number`

      - `minLength: optional number`

      - `pattern: optional string`

      - `properties: optional unknown`

        Property schemas, keyed by property name.

      - `readOnly: optional boolean`

        Read-only hint — server-populated, ignored on write.

      - `required: optional array of string`

        Names of required properties.

      - `title: optional string`

        Human-readable title (annotation).

      - `type: optional "object" or "array" or "string" or 4 more`

        The `type` keyword in JSON Schema 2020-12.

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `writeOnly: optional boolean`

        Write-only hint (passwords, secrets) — never returned on read.

  - `links: optional array of object { href, rel, properties, 2 more }`

    - `href: string`

      Target reference.

      Fragment URIs (`#name`) reference other entities in the same graph by
      their local name (the key in the entity map). Absolute paths and URLs reference
      external resources outside the graph.

    - `rel: string`

      Link relation type.

    - `properties: optional map[unknown]`

      Additional metadata keyed by property name.

    - `titles: optional map[string]`

      Human-readable titles keyed by BCP 47 language tag.

    - `type: optional string`

      Media type of the target resource (per RFC 7033 section 4.4.4.3).
      Applies to external `href`s; typically omitted for intra-graph references.

  - `outputs: optional PackageOutputBinding`

    Output binding for a package.

    `schema` describes the flat outputs surfaced on an install.
    `bindings` is a CEL expression — a map literal whose keys match
    `schema.properties` and whose values project fields out of the resolved
    entity graph. Evaluated after the provisioner has resolved all entities.

    - `bindings: string`

      CEL expression source. Must evaluate to a map whose fields match
      `schema.properties`.

      Scope: `entities`:

      - `entities.inputs` — the package's input values (merged with
        install inputs at provisioning time).
      - `entities.<name>` — resolved entities in the graph, each with
        `href: string` and `outputs: map<string, dyn>`.

    - `schema: object { additionalProperties, const, default, 17 more }`

      A subset of JSON Schema 2020-12 used to describe package input and output
      shapes.

      Supported keywords:

      - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
      - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
      - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
        `minItems`, `maxItems`, `enum`, `const`, `format`

      Intentionally unsupported (reject at release time rather than silently ignore):

      - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
      - References: `$ref`, `$dynamicRef`
      - `patternProperties`, `propertyNames`, `unevaluatedProperties`
      - Custom vocabularies and `$vocabulary`

      Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

      - `additionalProperties: optional unknown`

        Schema for properties not named in `properties`.

      - `const: optional unknown`

        Constant allowed value.

      - `default: optional unknown`

        Default value (annotation).

      - `description: optional string`

        Human-readable description (annotation).

      - `enum: optional array of unknown`

        Enumerated allowed values.

      - `format: optional string`

        Format hint (e.g., "uri", "uuid", "email", "date-time").

      - `items: optional unknown`

        Schema for array items.

      - `maximum: optional number`

      - `maxItems: optional number`

      - `maxLength: optional number`

      - `minimum: optional number`

      - `minItems: optional number`

      - `minLength: optional number`

      - `pattern: optional string`

      - `properties: optional unknown`

        Property schemas, keyed by property name.

      - `readOnly: optional boolean`

        Read-only hint — server-populated, ignored on write.

      - `required: optional array of string`

        Names of required properties.

      - `title: optional string`

        Human-readable title (annotation).

      - `type: optional "object" or "array" or "string" or 4 more`

        The `type` keyword in JSON Schema 2020-12.

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `writeOnly: optional boolean`

        Write-only hint (passwords, secrets) — never returned on read.

  - `properties: optional map[unknown]`

    Vocabulary-defined metadata properties, keyed by property URN.

    Known properties are declared with their schemas; additional
    properties with custom URNs are permitted via `Record<unknown>`.

    Each property carries `x-subject-types` indicating which entity types
    it applies to. Properties with `draft/` in the URN are experimental
    and carry `x-internal: true`.

  - `source: optional PackageSource`

    Provenance info for a package originating from an ancestor catalog.

    - `scope: "global" or "org" or "zone"`

      Scope type of the catalog where the package is authored.

      - `"global"`

      - `"org"`

      - `"zone"`

  - `tags: optional array of string`

### Package Draft

- `PackageDraft = object { id, manifest_sha, name, 8 more }`

  - `id: string`

  - `manifest_sha: string`

  - `name: string`

  - `updated_at: string`

  - `description: optional string`

  - `icon_url: optional string`

  - `inputs: optional PackageInputBinding`

    Input binding for a package.

    `schema` constrains install-level inputs. `bindings` is a CEL expression
    that assembles the flat input map — static values are CEL literals,
    install-provided values are `pkg.inputs.X` references. Evaluated at
    provisioning time to produce the `entities.inputs` map for entity bindings.

    - `bindings: optional string`

      CEL expression assembling the flat input map from static values
      and install-provided values (referenced via `pkg.inputs.X`).

      Scope:

      - `pkg.inputs` — install-supplied values conforming to `schema`.

    - `schema: optional object { additionalProperties, const, default, 17 more }`

      A subset of JSON Schema 2020-12 used to describe package input and output
      shapes.

      Supported keywords:

      - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
      - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
      - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
        `minItems`, `maxItems`, `enum`, `const`, `format`

      Intentionally unsupported (reject at release time rather than silently ignore):

      - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
      - References: `$ref`, `$dynamicRef`
      - `patternProperties`, `propertyNames`, `unevaluatedProperties`
      - Custom vocabularies and `$vocabulary`

      Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

      - `additionalProperties: optional unknown`

        Schema for properties not named in `properties`.

      - `const: optional unknown`

        Constant allowed value.

      - `default: optional unknown`

        Default value (annotation).

      - `description: optional string`

        Human-readable description (annotation).

      - `enum: optional array of unknown`

        Enumerated allowed values.

      - `format: optional string`

        Format hint (e.g., "uri", "uuid", "email", "date-time").

      - `items: optional unknown`

        Schema for array items.

      - `maximum: optional number`

      - `maxItems: optional number`

      - `maxLength: optional number`

      - `minimum: optional number`

      - `minItems: optional number`

      - `minLength: optional number`

      - `pattern: optional string`

      - `properties: optional unknown`

        Property schemas, keyed by property name.

      - `readOnly: optional boolean`

        Read-only hint — server-populated, ignored on write.

      - `required: optional array of string`

        Names of required properties.

      - `title: optional string`

        Human-readable title (annotation).

      - `type: optional "object" or "array" or "string" or 4 more`

        The `type` keyword in JSON Schema 2020-12.

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `writeOnly: optional boolean`

        Write-only hint (passwords, secrets) — never returned on read.

  - `links: optional array of object { href, rel, properties, 2 more }`

    - `href: string`

      Target reference.

      Fragment URIs (`#name`) reference other entities in the same graph by
      their local name (the key in the entity map). Absolute paths and URLs reference
      external resources outside the graph.

    - `rel: string`

      Link relation type.

    - `properties: optional map[unknown]`

      Additional metadata keyed by property name.

    - `titles: optional map[string]`

      Human-readable titles keyed by BCP 47 language tag.

    - `type: optional string`

      Media type of the target resource (per RFC 7033 section 4.4.4.3).
      Applies to external `href`s; typically omitted for intra-graph references.

  - `outputs: optional PackageOutputBinding`

    Output binding for a package.

    `schema` describes the flat outputs surfaced on an install.
    `bindings` is a CEL expression — a map literal whose keys match
    `schema.properties` and whose values project fields out of the resolved
    entity graph. Evaluated after the provisioner has resolved all entities.

    - `bindings: string`

      CEL expression source. Must evaluate to a map whose fields match
      `schema.properties`.

      Scope: `entities`:

      - `entities.inputs` — the package's input values (merged with
        install inputs at provisioning time).
      - `entities.<name>` — resolved entities in the graph, each with
        `href: string` and `outputs: map<string, dyn>`.

    - `schema: object { additionalProperties, const, default, 17 more }`

      A subset of JSON Schema 2020-12 used to describe package input and output
      shapes.

      Supported keywords:

      - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
      - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
      - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
        `minItems`, `maxItems`, `enum`, `const`, `format`

      Intentionally unsupported (reject at release time rather than silently ignore):

      - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
      - References: `$ref`, `$dynamicRef`
      - `patternProperties`, `propertyNames`, `unevaluatedProperties`
      - Custom vocabularies and `$vocabulary`

      Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

      - `additionalProperties: optional unknown`

        Schema for properties not named in `properties`.

      - `const: optional unknown`

        Constant allowed value.

      - `default: optional unknown`

        Default value (annotation).

      - `description: optional string`

        Human-readable description (annotation).

      - `enum: optional array of unknown`

        Enumerated allowed values.

      - `format: optional string`

        Format hint (e.g., "uri", "uuid", "email", "date-time").

      - `items: optional unknown`

        Schema for array items.

      - `maximum: optional number`

      - `maxItems: optional number`

      - `maxLength: optional number`

      - `minimum: optional number`

      - `minItems: optional number`

      - `minLength: optional number`

      - `pattern: optional string`

      - `properties: optional unknown`

        Property schemas, keyed by property name.

      - `readOnly: optional boolean`

        Read-only hint — server-populated, ignored on write.

      - `required: optional array of string`

        Names of required properties.

      - `title: optional string`

        Human-readable title (annotation).

      - `type: optional "object" or "array" or "string" or 4 more`

        The `type` keyword in JSON Schema 2020-12.

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `writeOnly: optional boolean`

        Write-only hint (passwords, secrets) — never returned on read.

  - `properties: optional map[unknown]`

    Vocabulary-defined metadata properties, keyed by property URN.

    Known properties are declared with their schemas; additional
    properties with custom URNs are permitted via `Record<unknown>`.

    Each property carries `x-subject-types` indicating which entity types
    it applies to. Properties with `draft/` in the URN are experimental
    and carry `x-internal: true`.

  - `tags: optional array of string`

### Package Input Binding

- `PackageInputBinding = object { bindings, schema }`

  Input binding for a package.

  `schema` constrains install-level inputs. `bindings` is a CEL expression
  that assembles the flat input map — static values are CEL literals,
  install-provided values are `pkg.inputs.X` references. Evaluated at
  provisioning time to produce the `entities.inputs` map for entity bindings.

  - `bindings: optional string`

    CEL expression assembling the flat input map from static values
    and install-provided values (referenced via `pkg.inputs.X`).

    Scope:

    - `pkg.inputs` — install-supplied values conforming to `schema`.

  - `schema: optional object { additionalProperties, const, default, 17 more }`

    A subset of JSON Schema 2020-12 used to describe package input and output
    shapes.

    Supported keywords:

    - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
    - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
    - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
      `minItems`, `maxItems`, `enum`, `const`, `format`

    Intentionally unsupported (reject at release time rather than silently ignore):

    - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
    - References: `$ref`, `$dynamicRef`
    - `patternProperties`, `propertyNames`, `unevaluatedProperties`
    - Custom vocabularies and `$vocabulary`

    Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

    - `additionalProperties: optional unknown`

      Schema for properties not named in `properties`.

    - `const: optional unknown`

      Constant allowed value.

    - `default: optional unknown`

      Default value (annotation).

    - `description: optional string`

      Human-readable description (annotation).

    - `enum: optional array of unknown`

      Enumerated allowed values.

    - `format: optional string`

      Format hint (e.g., "uri", "uuid", "email", "date-time").

    - `items: optional unknown`

      Schema for array items.

    - `maximum: optional number`

    - `maxItems: optional number`

    - `maxLength: optional number`

    - `minimum: optional number`

    - `minItems: optional number`

    - `minLength: optional number`

    - `pattern: optional string`

    - `properties: optional unknown`

      Property schemas, keyed by property name.

    - `readOnly: optional boolean`

      Read-only hint — server-populated, ignored on write.

    - `required: optional array of string`

      Names of required properties.

    - `title: optional string`

      Human-readable title (annotation).

    - `type: optional "object" or "array" or "string" or 4 more`

      The `type` keyword in JSON Schema 2020-12.

      - `"object"`

      - `"array"`

      - `"string"`

      - `"integer"`

      - `"number"`

      - `"boolean"`

      - `"null"`

    - `writeOnly: optional boolean`

      Write-only hint (passwords, secrets) — never returned on read.

### Package List

- `PackageList = object { items, pagination }`

  - `items: array of Package`

    - `id: string`

    - `created_at: string`

    - `kind: string`

    - `name: string`

    - `published: boolean`

      Whether the package is published. Unpublished packages are excluded from
      list endpoints by default; pass `include_unpublished=true` to include them.

    - `slug: string`

      Server-populated URL-friendly identifier.

    - `updated_at: string`

    - `current_version: optional PackageVersion`

      - `id: string`

      - `created_at: string`

      - `manifest_sha: string`

      - `name: string`

      - `owner_type: "platform" or "customer"`

        - `"platform"`

        - `"customer"`

      - `version: number`

      - `archived_at: optional string`

      - `created_by: optional string`

      - `description: optional string`

      - `icon_url: optional string`

      - `inputs: optional PackageInputBinding`

        Input binding for a package.

        `schema` constrains install-level inputs. `bindings` is a CEL expression
        that assembles the flat input map — static values are CEL literals,
        install-provided values are `pkg.inputs.X` references. Evaluated at
        provisioning time to produce the `entities.inputs` map for entity bindings.

        - `bindings: optional string`

          CEL expression assembling the flat input map from static values
          and install-provided values (referenced via `pkg.inputs.X`).

          Scope:

          - `pkg.inputs` — install-supplied values conforming to `schema`.

        - `schema: optional object { additionalProperties, const, default, 17 more }`

          A subset of JSON Schema 2020-12 used to describe package input and output
          shapes.

          Supported keywords:

          - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
          - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
          - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
            `minItems`, `maxItems`, `enum`, `const`, `format`

          Intentionally unsupported (reject at release time rather than silently ignore):

          - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
          - References: `$ref`, `$dynamicRef`
          - `patternProperties`, `propertyNames`, `unevaluatedProperties`
          - Custom vocabularies and `$vocabulary`

          Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

          - `additionalProperties: optional unknown`

            Schema for properties not named in `properties`.

          - `const: optional unknown`

            Constant allowed value.

          - `default: optional unknown`

            Default value (annotation).

          - `description: optional string`

            Human-readable description (annotation).

          - `enum: optional array of unknown`

            Enumerated allowed values.

          - `format: optional string`

            Format hint (e.g., "uri", "uuid", "email", "date-time").

          - `items: optional unknown`

            Schema for array items.

          - `maximum: optional number`

          - `maxItems: optional number`

          - `maxLength: optional number`

          - `minimum: optional number`

          - `minItems: optional number`

          - `minLength: optional number`

          - `pattern: optional string`

          - `properties: optional unknown`

            Property schemas, keyed by property name.

          - `readOnly: optional boolean`

            Read-only hint — server-populated, ignored on write.

          - `required: optional array of string`

            Names of required properties.

          - `title: optional string`

            Human-readable title (annotation).

          - `type: optional "object" or "array" or "string" or 4 more`

            The `type` keyword in JSON Schema 2020-12.

            - `"object"`

            - `"array"`

            - `"string"`

            - `"integer"`

            - `"number"`

            - `"boolean"`

            - `"null"`

          - `writeOnly: optional boolean`

            Write-only hint (passwords, secrets) — never returned on read.

      - `links: optional array of object { href, rel, properties, 2 more }`

        - `href: string`

          Target reference.

          Fragment URIs (`#name`) reference other entities in the same graph by
          their local name (the key in the entity map). Absolute paths and URLs reference
          external resources outside the graph.

        - `rel: string`

          Link relation type.

        - `properties: optional map[unknown]`

          Additional metadata keyed by property name.

        - `titles: optional map[string]`

          Human-readable titles keyed by BCP 47 language tag.

        - `type: optional string`

          Media type of the target resource (per RFC 7033 section 4.4.4.3).
          Applies to external `href`s; typically omitted for intra-graph references.

      - `outputs: optional PackageOutputBinding`

        Output binding for a package.

        `schema` describes the flat outputs surfaced on an install.
        `bindings` is a CEL expression — a map literal whose keys match
        `schema.properties` and whose values project fields out of the resolved
        entity graph. Evaluated after the provisioner has resolved all entities.

        - `bindings: string`

          CEL expression source. Must evaluate to a map whose fields match
          `schema.properties`.

          Scope: `entities`:

          - `entities.inputs` — the package's input values (merged with
            install inputs at provisioning time).
          - `entities.<name>` — resolved entities in the graph, each with
            `href: string` and `outputs: map<string, dyn>`.

        - `schema: object { additionalProperties, const, default, 17 more }`

          A subset of JSON Schema 2020-12 used to describe package input and output
          shapes.

          Supported keywords:

          - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
          - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
          - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
            `minItems`, `maxItems`, `enum`, `const`, `format`

          Intentionally unsupported (reject at release time rather than silently ignore):

          - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
          - References: `$ref`, `$dynamicRef`
          - `patternProperties`, `propertyNames`, `unevaluatedProperties`
          - Custom vocabularies and `$vocabulary`

          Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

          - `additionalProperties: optional unknown`

            Schema for properties not named in `properties`.

          - `const: optional unknown`

            Constant allowed value.

          - `default: optional unknown`

            Default value (annotation).

          - `description: optional string`

            Human-readable description (annotation).

          - `enum: optional array of unknown`

            Enumerated allowed values.

          - `format: optional string`

            Format hint (e.g., "uri", "uuid", "email", "date-time").

          - `items: optional unknown`

            Schema for array items.

          - `maximum: optional number`

          - `maxItems: optional number`

          - `maxLength: optional number`

          - `minimum: optional number`

          - `minItems: optional number`

          - `minLength: optional number`

          - `pattern: optional string`

          - `properties: optional unknown`

            Property schemas, keyed by property name.

          - `readOnly: optional boolean`

            Read-only hint — server-populated, ignored on write.

          - `required: optional array of string`

            Names of required properties.

          - `title: optional string`

            Human-readable title (annotation).

          - `type: optional "object" or "array" or "string" or 4 more`

            The `type` keyword in JSON Schema 2020-12.

            - `"object"`

            - `"array"`

            - `"string"`

            - `"integer"`

            - `"number"`

            - `"boolean"`

            - `"null"`

          - `writeOnly: optional boolean`

            Write-only hint (passwords, secrets) — never returned on read.

      - `properties: optional map[unknown]`

        Vocabulary-defined metadata properties, keyed by property URN.

        Known properties are declared with their schemas; additional
        properties with custom URNs are permitted via `Record<unknown>`.

        Each property carries `x-subject-types` indicating which entity types
        it applies to. Properties with `draft/` in the URN are experimental
        and carry `x-internal: true`.

      - `tags: optional array of string`

    - `description: optional string`

    - `draft: optional PackageDraft`

      - `id: string`

      - `manifest_sha: string`

      - `name: string`

      - `updated_at: string`

      - `description: optional string`

      - `icon_url: optional string`

      - `inputs: optional PackageInputBinding`

        Input binding for a package.

        `schema` constrains install-level inputs. `bindings` is a CEL expression
        that assembles the flat input map — static values are CEL literals,
        install-provided values are `pkg.inputs.X` references. Evaluated at
        provisioning time to produce the `entities.inputs` map for entity bindings.

        - `bindings: optional string`

          CEL expression assembling the flat input map from static values
          and install-provided values (referenced via `pkg.inputs.X`).

          Scope:

          - `pkg.inputs` — install-supplied values conforming to `schema`.

        - `schema: optional object { additionalProperties, const, default, 17 more }`

          A subset of JSON Schema 2020-12 used to describe package input and output
          shapes.

          Supported keywords:

          - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
          - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
          - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
            `minItems`, `maxItems`, `enum`, `const`, `format`

          Intentionally unsupported (reject at release time rather than silently ignore):

          - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
          - References: `$ref`, `$dynamicRef`
          - `patternProperties`, `propertyNames`, `unevaluatedProperties`
          - Custom vocabularies and `$vocabulary`

          Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

          - `additionalProperties: optional unknown`

            Schema for properties not named in `properties`.

          - `const: optional unknown`

            Constant allowed value.

          - `default: optional unknown`

            Default value (annotation).

          - `description: optional string`

            Human-readable description (annotation).

          - `enum: optional array of unknown`

            Enumerated allowed values.

          - `format: optional string`

            Format hint (e.g., "uri", "uuid", "email", "date-time").

          - `items: optional unknown`

            Schema for array items.

          - `maximum: optional number`

          - `maxItems: optional number`

          - `maxLength: optional number`

          - `minimum: optional number`

          - `minItems: optional number`

          - `minLength: optional number`

          - `pattern: optional string`

          - `properties: optional unknown`

            Property schemas, keyed by property name.

          - `readOnly: optional boolean`

            Read-only hint — server-populated, ignored on write.

          - `required: optional array of string`

            Names of required properties.

          - `title: optional string`

            Human-readable title (annotation).

          - `type: optional "object" or "array" or "string" or 4 more`

            The `type` keyword in JSON Schema 2020-12.

            - `"object"`

            - `"array"`

            - `"string"`

            - `"integer"`

            - `"number"`

            - `"boolean"`

            - `"null"`

          - `writeOnly: optional boolean`

            Write-only hint (passwords, secrets) — never returned on read.

      - `links: optional array of object { href, rel, properties, 2 more }`

        - `href: string`

          Target reference.

          Fragment URIs (`#name`) reference other entities in the same graph by
          their local name (the key in the entity map). Absolute paths and URLs reference
          external resources outside the graph.

        - `rel: string`

          Link relation type.

        - `properties: optional map[unknown]`

          Additional metadata keyed by property name.

        - `titles: optional map[string]`

          Human-readable titles keyed by BCP 47 language tag.

        - `type: optional string`

          Media type of the target resource (per RFC 7033 section 4.4.4.3).
          Applies to external `href`s; typically omitted for intra-graph references.

      - `outputs: optional PackageOutputBinding`

        Output binding for a package.

        `schema` describes the flat outputs surfaced on an install.
        `bindings` is a CEL expression — a map literal whose keys match
        `schema.properties` and whose values project fields out of the resolved
        entity graph. Evaluated after the provisioner has resolved all entities.

        - `bindings: string`

          CEL expression source. Must evaluate to a map whose fields match
          `schema.properties`.

          Scope: `entities`:

          - `entities.inputs` — the package's input values (merged with
            install inputs at provisioning time).
          - `entities.<name>` — resolved entities in the graph, each with
            `href: string` and `outputs: map<string, dyn>`.

        - `schema: object { additionalProperties, const, default, 17 more }`

          A subset of JSON Schema 2020-12 used to describe package input and output
          shapes.

          Supported keywords:

          - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
          - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
          - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
            `minItems`, `maxItems`, `enum`, `const`, `format`

          Intentionally unsupported (reject at release time rather than silently ignore):

          - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
          - References: `$ref`, `$dynamicRef`
          - `patternProperties`, `propertyNames`, `unevaluatedProperties`
          - Custom vocabularies and `$vocabulary`

          Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

          - `additionalProperties: optional unknown`

            Schema for properties not named in `properties`.

          - `const: optional unknown`

            Constant allowed value.

          - `default: optional unknown`

            Default value (annotation).

          - `description: optional string`

            Human-readable description (annotation).

          - `enum: optional array of unknown`

            Enumerated allowed values.

          - `format: optional string`

            Format hint (e.g., "uri", "uuid", "email", "date-time").

          - `items: optional unknown`

            Schema for array items.

          - `maximum: optional number`

          - `maxItems: optional number`

          - `maxLength: optional number`

          - `minimum: optional number`

          - `minItems: optional number`

          - `minLength: optional number`

          - `pattern: optional string`

          - `properties: optional unknown`

            Property schemas, keyed by property name.

          - `readOnly: optional boolean`

            Read-only hint — server-populated, ignored on write.

          - `required: optional array of string`

            Names of required properties.

          - `title: optional string`

            Human-readable title (annotation).

          - `type: optional "object" or "array" or "string" or 4 more`

            The `type` keyword in JSON Schema 2020-12.

            - `"object"`

            - `"array"`

            - `"string"`

            - `"integer"`

            - `"number"`

            - `"boolean"`

            - `"null"`

          - `writeOnly: optional boolean`

            Write-only hint (passwords, secrets) — never returned on read.

      - `properties: optional map[unknown]`

        Vocabulary-defined metadata properties, keyed by property URN.

        Known properties are declared with their schemas; additional
        properties with custom URNs are permitted via `Record<unknown>`.

        Each property carries `x-subject-types` indicating which entity types
        it applies to. Properties with `draft/` in the URN are experimental
        and carry `x-internal: true`.

      - `tags: optional array of string`

    - `icon_url: optional string`

    - `input_state: optional InputState`

      Computed input state for a package — derived at response time from the
      package kind's schema and the package's input binding. Not stored.

      `effective_schema` is the full input schema (kind + binding required
      constraints merged). `effective_bindings` resolves the CEL binding to
      show actual static values and `{"$input": "path"}` references for
      install-provided fields.

      - `effective_bindings: optional map[unknown]`

      - `effective_schema: optional object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `inputs: optional PackageInputBinding`

      Input binding for a package.

      `schema` constrains install-level inputs. `bindings` is a CEL expression
      that assembles the flat input map — static values are CEL literals,
      install-provided values are `pkg.inputs.X` references. Evaluated at
      provisioning time to produce the `entities.inputs` map for entity bindings.

      - `bindings: optional string`

        CEL expression assembling the flat input map from static values
        and install-provided values (referenced via `pkg.inputs.X`).

        Scope:

        - `pkg.inputs` — install-supplied values conforming to `schema`.

      - `schema: optional object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `links: optional array of object { href, rel, properties, 2 more }`

      - `href: string`

        Target reference.

        Fragment URIs (`#name`) reference other entities in the same graph by
        their local name (the key in the entity map). Absolute paths and URLs reference
        external resources outside the graph.

      - `rel: string`

        Link relation type.

      - `properties: optional map[unknown]`

        Additional metadata keyed by property name.

      - `titles: optional map[string]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: optional string`

        Media type of the target resource (per RFC 7033 section 4.4.4.3).
        Applies to external `href`s; typically omitted for intra-graph references.

    - `outputs: optional PackageOutputBinding`

      Output binding for a package.

      `schema` describes the flat outputs surfaced on an install.
      `bindings` is a CEL expression — a map literal whose keys match
      `schema.properties` and whose values project fields out of the resolved
      entity graph. Evaluated after the provisioner has resolved all entities.

      - `bindings: string`

        CEL expression source. Must evaluate to a map whose fields match
        `schema.properties`.

        Scope: `entities`:

        - `entities.inputs` — the package's input values (merged with
          install inputs at provisioning time).
        - `entities.<name>` — resolved entities in the graph, each with
          `href: string` and `outputs: map<string, dyn>`.

      - `schema: object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `properties: optional map[unknown]`

      Vocabulary-defined metadata properties, keyed by property URN.

      Known properties are declared with their schemas; additional
      properties with custom URNs are permitted via `Record<unknown>`.

      Each property carries `x-subject-types` indicating which entity types
      it applies to. Properties with `draft/` in the URN are experimental
      and carry `x-internal: true`.

    - `source: optional PackageSource`

      Provenance info for a package originating from an ancestor catalog.

      - `scope: "global" or "org" or "zone"`

        Scope type of the catalog where the package is authored.

        - `"global"`

        - `"org"`

        - `"zone"`

    - `tags: optional array of string`

  - `pagination: object { after_cursor, before_cursor, total_count }`

    Cursor-based pagination metadata returned alongside a list of results

    - `after_cursor: string`

      An opaque cursor used for paginating through a list of results

    - `before_cursor: string`

      An opaque cursor used for paginating through a list of results

    - `total_count: optional number`

      Total number of items across all pages. Only present when the request includes ?expand[]=total_count.

### Package Output Binding

- `PackageOutputBinding = object { bindings, schema }`

  Output binding for a package.

  `schema` describes the flat outputs surfaced on an install.
  `bindings` is a CEL expression — a map literal whose keys match
  `schema.properties` and whose values project fields out of the resolved
  entity graph. Evaluated after the provisioner has resolved all entities.

  - `bindings: string`

    CEL expression source. Must evaluate to a map whose fields match
    `schema.properties`.

    Scope: `entities`:

    - `entities.inputs` — the package's input values (merged with
      install inputs at provisioning time).
    - `entities.<name>` — resolved entities in the graph, each with
      `href: string` and `outputs: map<string, dyn>`.

  - `schema: object { additionalProperties, const, default, 17 more }`

    A subset of JSON Schema 2020-12 used to describe package input and output
    shapes.

    Supported keywords:

    - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
    - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
    - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
      `minItems`, `maxItems`, `enum`, `const`, `format`

    Intentionally unsupported (reject at release time rather than silently ignore):

    - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
    - References: `$ref`, `$dynamicRef`
    - `patternProperties`, `propertyNames`, `unevaluatedProperties`
    - Custom vocabularies and `$vocabulary`

    Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

    - `additionalProperties: optional unknown`

      Schema for properties not named in `properties`.

    - `const: optional unknown`

      Constant allowed value.

    - `default: optional unknown`

      Default value (annotation).

    - `description: optional string`

      Human-readable description (annotation).

    - `enum: optional array of unknown`

      Enumerated allowed values.

    - `format: optional string`

      Format hint (e.g., "uri", "uuid", "email", "date-time").

    - `items: optional unknown`

      Schema for array items.

    - `maximum: optional number`

    - `maxItems: optional number`

    - `maxLength: optional number`

    - `minimum: optional number`

    - `minItems: optional number`

    - `minLength: optional number`

    - `pattern: optional string`

    - `properties: optional unknown`

      Property schemas, keyed by property name.

    - `readOnly: optional boolean`

      Read-only hint — server-populated, ignored on write.

    - `required: optional array of string`

      Names of required properties.

    - `title: optional string`

      Human-readable title (annotation).

    - `type: optional "object" or "array" or "string" or 4 more`

      The `type` keyword in JSON Schema 2020-12.

      - `"object"`

      - `"array"`

      - `"string"`

      - `"integer"`

      - `"number"`

      - `"boolean"`

      - `"null"`

    - `writeOnly: optional boolean`

      Write-only hint (passwords, secrets) — never returned on read.

### Package Source

- `PackageSource = object { scope }`

  Provenance info for a package originating from an ancestor catalog.

  - `scope: "global" or "org" or "zone"`

    Scope type of the catalog where the package is authored.

    - `"global"`

    - `"org"`

    - `"zone"`

# Versions

## Domain Types

### Package Version

- `PackageVersion = object { id, created_at, manifest_sha, 12 more }`

  - `id: string`

  - `created_at: string`

  - `manifest_sha: string`

  - `name: string`

  - `owner_type: "platform" or "customer"`

    - `"platform"`

    - `"customer"`

  - `version: number`

  - `archived_at: optional string`

  - `created_by: optional string`

  - `description: optional string`

  - `icon_url: optional string`

  - `inputs: optional PackageInputBinding`

    Input binding for a package.

    `schema` constrains install-level inputs. `bindings` is a CEL expression
    that assembles the flat input map — static values are CEL literals,
    install-provided values are `pkg.inputs.X` references. Evaluated at
    provisioning time to produce the `entities.inputs` map for entity bindings.

    - `bindings: optional string`

      CEL expression assembling the flat input map from static values
      and install-provided values (referenced via `pkg.inputs.X`).

      Scope:

      - `pkg.inputs` — install-supplied values conforming to `schema`.

    - `schema: optional object { additionalProperties, const, default, 17 more }`

      A subset of JSON Schema 2020-12 used to describe package input and output
      shapes.

      Supported keywords:

      - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
      - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
      - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
        `minItems`, `maxItems`, `enum`, `const`, `format`

      Intentionally unsupported (reject at release time rather than silently ignore):

      - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
      - References: `$ref`, `$dynamicRef`
      - `patternProperties`, `propertyNames`, `unevaluatedProperties`
      - Custom vocabularies and `$vocabulary`

      Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

      - `additionalProperties: optional unknown`

        Schema for properties not named in `properties`.

      - `const: optional unknown`

        Constant allowed value.

      - `default: optional unknown`

        Default value (annotation).

      - `description: optional string`

        Human-readable description (annotation).

      - `enum: optional array of unknown`

        Enumerated allowed values.

      - `format: optional string`

        Format hint (e.g., "uri", "uuid", "email", "date-time").

      - `items: optional unknown`

        Schema for array items.

      - `maximum: optional number`

      - `maxItems: optional number`

      - `maxLength: optional number`

      - `minimum: optional number`

      - `minItems: optional number`

      - `minLength: optional number`

      - `pattern: optional string`

      - `properties: optional unknown`

        Property schemas, keyed by property name.

      - `readOnly: optional boolean`

        Read-only hint — server-populated, ignored on write.

      - `required: optional array of string`

        Names of required properties.

      - `title: optional string`

        Human-readable title (annotation).

      - `type: optional "object" or "array" or "string" or 4 more`

        The `type` keyword in JSON Schema 2020-12.

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `writeOnly: optional boolean`

        Write-only hint (passwords, secrets) — never returned on read.

  - `links: optional array of object { href, rel, properties, 2 more }`

    - `href: string`

      Target reference.

      Fragment URIs (`#name`) reference other entities in the same graph by
      their local name (the key in the entity map). Absolute paths and URLs reference
      external resources outside the graph.

    - `rel: string`

      Link relation type.

    - `properties: optional map[unknown]`

      Additional metadata keyed by property name.

    - `titles: optional map[string]`

      Human-readable titles keyed by BCP 47 language tag.

    - `type: optional string`

      Media type of the target resource (per RFC 7033 section 4.4.4.3).
      Applies to external `href`s; typically omitted for intra-graph references.

  - `outputs: optional PackageOutputBinding`

    Output binding for a package.

    `schema` describes the flat outputs surfaced on an install.
    `bindings` is a CEL expression — a map literal whose keys match
    `schema.properties` and whose values project fields out of the resolved
    entity graph. Evaluated after the provisioner has resolved all entities.

    - `bindings: string`

      CEL expression source. Must evaluate to a map whose fields match
      `schema.properties`.

      Scope: `entities`:

      - `entities.inputs` — the package's input values (merged with
        install inputs at provisioning time).
      - `entities.<name>` — resolved entities in the graph, each with
        `href: string` and `outputs: map<string, dyn>`.

    - `schema: object { additionalProperties, const, default, 17 more }`

      A subset of JSON Schema 2020-12 used to describe package input and output
      shapes.

      Supported keywords:

      - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
      - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
      - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
        `minItems`, `maxItems`, `enum`, `const`, `format`

      Intentionally unsupported (reject at release time rather than silently ignore):

      - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
      - References: `$ref`, `$dynamicRef`
      - `patternProperties`, `propertyNames`, `unevaluatedProperties`
      - Custom vocabularies and `$vocabulary`

      Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

      - `additionalProperties: optional unknown`

        Schema for properties not named in `properties`.

      - `const: optional unknown`

        Constant allowed value.

      - `default: optional unknown`

        Default value (annotation).

      - `description: optional string`

        Human-readable description (annotation).

      - `enum: optional array of unknown`

        Enumerated allowed values.

      - `format: optional string`

        Format hint (e.g., "uri", "uuid", "email", "date-time").

      - `items: optional unknown`

        Schema for array items.

      - `maximum: optional number`

      - `maxItems: optional number`

      - `maxLength: optional number`

      - `minimum: optional number`

      - `minItems: optional number`

      - `minLength: optional number`

      - `pattern: optional string`

      - `properties: optional unknown`

        Property schemas, keyed by property name.

      - `readOnly: optional boolean`

        Read-only hint — server-populated, ignored on write.

      - `required: optional array of string`

        Names of required properties.

      - `title: optional string`

        Human-readable title (annotation).

      - `type: optional "object" or "array" or "string" or 4 more`

        The `type` keyword in JSON Schema 2020-12.

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `writeOnly: optional boolean`

        Write-only hint (passwords, secrets) — never returned on read.

  - `properties: optional map[unknown]`

    Vocabulary-defined metadata properties, keyed by property URN.

    Known properties are declared with their schemas; additional
    properties with custom URNs are permitted via `Record<unknown>`.

    Each property carries `x-subject-types` indicating which entity types
    it applies to. Properties with `draft/` in the URN are experimental
    and carry `x-internal: true`.

  - `tags: optional array of string`

### Package Version List

- `PackageVersionList = object { items, pagination }`

  - `items: array of PackageVersion`

    - `id: string`

    - `created_at: string`

    - `manifest_sha: string`

    - `name: string`

    - `owner_type: "platform" or "customer"`

      - `"platform"`

      - `"customer"`

    - `version: number`

    - `archived_at: optional string`

    - `created_by: optional string`

    - `description: optional string`

    - `icon_url: optional string`

    - `inputs: optional PackageInputBinding`

      Input binding for a package.

      `schema` constrains install-level inputs. `bindings` is a CEL expression
      that assembles the flat input map — static values are CEL literals,
      install-provided values are `pkg.inputs.X` references. Evaluated at
      provisioning time to produce the `entities.inputs` map for entity bindings.

      - `bindings: optional string`

        CEL expression assembling the flat input map from static values
        and install-provided values (referenced via `pkg.inputs.X`).

        Scope:

        - `pkg.inputs` — install-supplied values conforming to `schema`.

      - `schema: optional object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `links: optional array of object { href, rel, properties, 2 more }`

      - `href: string`

        Target reference.

        Fragment URIs (`#name`) reference other entities in the same graph by
        their local name (the key in the entity map). Absolute paths and URLs reference
        external resources outside the graph.

      - `rel: string`

        Link relation type.

      - `properties: optional map[unknown]`

        Additional metadata keyed by property name.

      - `titles: optional map[string]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: optional string`

        Media type of the target resource (per RFC 7033 section 4.4.4.3).
        Applies to external `href`s; typically omitted for intra-graph references.

    - `outputs: optional PackageOutputBinding`

      Output binding for a package.

      `schema` describes the flat outputs surfaced on an install.
      `bindings` is a CEL expression — a map literal whose keys match
      `schema.properties` and whose values project fields out of the resolved
      entity graph. Evaluated after the provisioner has resolved all entities.

      - `bindings: string`

        CEL expression source. Must evaluate to a map whose fields match
        `schema.properties`.

        Scope: `entities`:

        - `entities.inputs` — the package's input values (merged with
          install inputs at provisioning time).
        - `entities.<name>` — resolved entities in the graph, each with
          `href: string` and `outputs: map<string, dyn>`.

      - `schema: object { additionalProperties, const, default, 17 more }`

        A subset of JSON Schema 2020-12 used to describe package input and output
        shapes.

        Supported keywords:

        - Structural: `type`, `properties`, `required`, `items`, `additionalProperties`
        - Annotations: `title`, `description`, `default`, `readOnly`, `writeOnly`
        - Constraints: `pattern`, `minLength`, `maxLength`, `minimum`, `maximum`,
          `minItems`, `maxItems`, `enum`, `const`, `format`

        Intentionally unsupported (reject at release time rather than silently ignore):

        - Schema combinators: `allOf`, `anyOf`, `oneOf`, `not`
        - References: `$ref`, `$dynamicRef`
        - `patternProperties`, `propertyNames`, `unevaluatedProperties`
        - Custom vocabularies and `$vocabulary`

        Dialect: JSON Schema 2020-12 (implied — authors do not include `$schema`).

        - `additionalProperties: optional unknown`

          Schema for properties not named in `properties`.

        - `const: optional unknown`

          Constant allowed value.

        - `default: optional unknown`

          Default value (annotation).

        - `description: optional string`

          Human-readable description (annotation).

        - `enum: optional array of unknown`

          Enumerated allowed values.

        - `format: optional string`

          Format hint (e.g., "uri", "uuid", "email", "date-time").

        - `items: optional unknown`

          Schema for array items.

        - `maximum: optional number`

        - `maxItems: optional number`

        - `maxLength: optional number`

        - `minimum: optional number`

        - `minItems: optional number`

        - `minLength: optional number`

        - `pattern: optional string`

        - `properties: optional unknown`

          Property schemas, keyed by property name.

        - `readOnly: optional boolean`

          Read-only hint — server-populated, ignored on write.

        - `required: optional array of string`

          Names of required properties.

        - `title: optional string`

          Human-readable title (annotation).

        - `type: optional "object" or "array" or "string" or 4 more`

          The `type` keyword in JSON Schema 2020-12.

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `writeOnly: optional boolean`

          Write-only hint (passwords, secrets) — never returned on read.

    - `properties: optional map[unknown]`

      Vocabulary-defined metadata properties, keyed by property URN.

      Known properties are declared with their schemas; additional
      properties with custom URNs are permitted via `Record<unknown>`.

      Each property carries `x-subject-types` indicating which entity types
      it applies to. Properties with `draft/` in the URN are experimental
      and carry `x-internal: true`.

    - `tags: optional array of string`

  - `pagination: object { after_cursor, before_cursor, total_count }`

    Cursor-based pagination metadata returned alongside a list of results

    - `after_cursor: string`

      An opaque cursor used for paginating through a list of results

    - `before_cursor: string`

      An opaque cursor used for paginating through a list of results

    - `total_count: optional number`

      Total number of items across all pages. Only present when the request includes ?expand[]=total_count.
