# Packages

## Domain Types

### Input State

- `class 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[Dict[str, object]]`

  - `effective_schema: Optional[EffectiveSchema]`

    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`).

    - `additional_properties: Optional[object]`

      Schema for properties not named in `properties`.

    - `const: Optional[object]`

      Constant allowed value.

    - `default: Optional[object]`

      Default value (annotation).

    - `description: Optional[str]`

      Human-readable description (annotation).

    - `enum: Optional[List[object]]`

      Enumerated allowed values.

    - `format: Optional[str]`

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

    - `items: Optional[object]`

      Schema for array items.

    - `maximum: Optional[float]`

    - `max_items: Optional[int]`

    - `max_length: Optional[int]`

    - `minimum: Optional[float]`

    - `min_items: Optional[int]`

    - `min_length: Optional[int]`

    - `pattern: Optional[str]`

    - `properties: Optional[object]`

      Property schemas, keyed by property name.

    - `read_only: Optional[bool]`

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

    - `required: Optional[List[str]]`

      Names of required properties.

    - `title: Optional[str]`

      Human-readable title (annotation).

    - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

      - `"object"`

      - `"array"`

      - `"string"`

      - `"integer"`

      - `"number"`

      - `"boolean"`

      - `"null"`

    - `write_only: Optional[bool]`

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

### Package

- `class Package: …`

  - `id: str`

  - `created_at: datetime`

  - `kind: str`

  - `name: str`

  - `published: bool`

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

  - `slug: str`

    Server-populated URL-friendly identifier.

  - `updated_at: datetime`

  - `current_version: Optional[PackageVersion]`

    - `id: str`

    - `created_at: datetime`

    - `manifest_sha: str`

    - `name: str`

    - `owner_type: Literal["platform", "customer"]`

      - `"platform"`

      - `"customer"`

    - `version: int`

    - `archived_at: Optional[datetime]`

    - `created_by: Optional[str]`

    - `description: Optional[str]`

    - `icon_url: Optional[str]`

    - `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[str]`

        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[Schema]`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

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

    - `links: Optional[List[Link]]`

      - `href: str`

        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: str`

        Link relation type.

      - `properties: Optional[Dict[str, object]]`

        Additional metadata keyed by property name.

      - `titles: Optional[Dict[str, str]]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: Optional[str]`

        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: str`

        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: Schema`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

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

    - `properties: Optional[Dict[str, object]]`

      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[List[str]]`

  - `description: Optional[str]`

  - `draft: Optional[PackageDraft]`

    - `id: str`

    - `manifest_sha: str`

    - `name: str`

    - `updated_at: datetime`

    - `description: Optional[str]`

    - `icon_url: Optional[str]`

    - `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[str]`

        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[Schema]`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

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

    - `links: Optional[List[Link]]`

      - `href: str`

        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: str`

        Link relation type.

      - `properties: Optional[Dict[str, object]]`

        Additional metadata keyed by property name.

      - `titles: Optional[Dict[str, str]]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: Optional[str]`

        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: str`

        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: Schema`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

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

    - `properties: Optional[Dict[str, object]]`

      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[List[str]]`

  - `icon_url: Optional[str]`

  - `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[Dict[str, object]]`

    - `effective_schema: Optional[EffectiveSchema]`

      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`).

      - `additional_properties: Optional[object]`

        Schema for properties not named in `properties`.

      - `const: Optional[object]`

        Constant allowed value.

      - `default: Optional[object]`

        Default value (annotation).

      - `description: Optional[str]`

        Human-readable description (annotation).

      - `enum: Optional[List[object]]`

        Enumerated allowed values.

      - `format: Optional[str]`

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

      - `items: Optional[object]`

        Schema for array items.

      - `maximum: Optional[float]`

      - `max_items: Optional[int]`

      - `max_length: Optional[int]`

      - `minimum: Optional[float]`

      - `min_items: Optional[int]`

      - `min_length: Optional[int]`

      - `pattern: Optional[str]`

      - `properties: Optional[object]`

        Property schemas, keyed by property name.

      - `read_only: Optional[bool]`

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

      - `required: Optional[List[str]]`

        Names of required properties.

      - `title: Optional[str]`

        Human-readable title (annotation).

      - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `write_only: Optional[bool]`

        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[str]`

      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[Schema]`

      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`).

      - `additional_properties: Optional[object]`

        Schema for properties not named in `properties`.

      - `const: Optional[object]`

        Constant allowed value.

      - `default: Optional[object]`

        Default value (annotation).

      - `description: Optional[str]`

        Human-readable description (annotation).

      - `enum: Optional[List[object]]`

        Enumerated allowed values.

      - `format: Optional[str]`

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

      - `items: Optional[object]`

        Schema for array items.

      - `maximum: Optional[float]`

      - `max_items: Optional[int]`

      - `max_length: Optional[int]`

      - `minimum: Optional[float]`

      - `min_items: Optional[int]`

      - `min_length: Optional[int]`

      - `pattern: Optional[str]`

      - `properties: Optional[object]`

        Property schemas, keyed by property name.

      - `read_only: Optional[bool]`

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

      - `required: Optional[List[str]]`

        Names of required properties.

      - `title: Optional[str]`

        Human-readable title (annotation).

      - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `write_only: Optional[bool]`

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

  - `links: Optional[List[Link]]`

    - `href: str`

      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: str`

      Link relation type.

    - `properties: Optional[Dict[str, object]]`

      Additional metadata keyed by property name.

    - `titles: Optional[Dict[str, str]]`

      Human-readable titles keyed by BCP 47 language tag.

    - `type: Optional[str]`

      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: str`

      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: Schema`

      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`).

      - `additional_properties: Optional[object]`

        Schema for properties not named in `properties`.

      - `const: Optional[object]`

        Constant allowed value.

      - `default: Optional[object]`

        Default value (annotation).

      - `description: Optional[str]`

        Human-readable description (annotation).

      - `enum: Optional[List[object]]`

        Enumerated allowed values.

      - `format: Optional[str]`

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

      - `items: Optional[object]`

        Schema for array items.

      - `maximum: Optional[float]`

      - `max_items: Optional[int]`

      - `max_length: Optional[int]`

      - `minimum: Optional[float]`

      - `min_items: Optional[int]`

      - `min_length: Optional[int]`

      - `pattern: Optional[str]`

      - `properties: Optional[object]`

        Property schemas, keyed by property name.

      - `read_only: Optional[bool]`

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

      - `required: Optional[List[str]]`

        Names of required properties.

      - `title: Optional[str]`

        Human-readable title (annotation).

      - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `write_only: Optional[bool]`

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

  - `properties: Optional[Dict[str, object]]`

    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: Literal["global", "org", "zone"]`

      Scope type of the catalog where the package is authored.

      - `"global"`

      - `"org"`

      - `"zone"`

  - `tags: Optional[List[str]]`

### Package Draft

- `class PackageDraft: …`

  - `id: str`

  - `manifest_sha: str`

  - `name: str`

  - `updated_at: datetime`

  - `description: Optional[str]`

  - `icon_url: Optional[str]`

  - `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[str]`

      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[Schema]`

      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`).

      - `additional_properties: Optional[object]`

        Schema for properties not named in `properties`.

      - `const: Optional[object]`

        Constant allowed value.

      - `default: Optional[object]`

        Default value (annotation).

      - `description: Optional[str]`

        Human-readable description (annotation).

      - `enum: Optional[List[object]]`

        Enumerated allowed values.

      - `format: Optional[str]`

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

      - `items: Optional[object]`

        Schema for array items.

      - `maximum: Optional[float]`

      - `max_items: Optional[int]`

      - `max_length: Optional[int]`

      - `minimum: Optional[float]`

      - `min_items: Optional[int]`

      - `min_length: Optional[int]`

      - `pattern: Optional[str]`

      - `properties: Optional[object]`

        Property schemas, keyed by property name.

      - `read_only: Optional[bool]`

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

      - `required: Optional[List[str]]`

        Names of required properties.

      - `title: Optional[str]`

        Human-readable title (annotation).

      - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `write_only: Optional[bool]`

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

  - `links: Optional[List[Link]]`

    - `href: str`

      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: str`

      Link relation type.

    - `properties: Optional[Dict[str, object]]`

      Additional metadata keyed by property name.

    - `titles: Optional[Dict[str, str]]`

      Human-readable titles keyed by BCP 47 language tag.

    - `type: Optional[str]`

      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: str`

      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: Schema`

      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`).

      - `additional_properties: Optional[object]`

        Schema for properties not named in `properties`.

      - `const: Optional[object]`

        Constant allowed value.

      - `default: Optional[object]`

        Default value (annotation).

      - `description: Optional[str]`

        Human-readable description (annotation).

      - `enum: Optional[List[object]]`

        Enumerated allowed values.

      - `format: Optional[str]`

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

      - `items: Optional[object]`

        Schema for array items.

      - `maximum: Optional[float]`

      - `max_items: Optional[int]`

      - `max_length: Optional[int]`

      - `minimum: Optional[float]`

      - `min_items: Optional[int]`

      - `min_length: Optional[int]`

      - `pattern: Optional[str]`

      - `properties: Optional[object]`

        Property schemas, keyed by property name.

      - `read_only: Optional[bool]`

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

      - `required: Optional[List[str]]`

        Names of required properties.

      - `title: Optional[str]`

        Human-readable title (annotation).

      - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `write_only: Optional[bool]`

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

  - `properties: Optional[Dict[str, object]]`

    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[List[str]]`

### Package Input Binding

- `class 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[str]`

    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[Schema]`

    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`).

    - `additional_properties: Optional[object]`

      Schema for properties not named in `properties`.

    - `const: Optional[object]`

      Constant allowed value.

    - `default: Optional[object]`

      Default value (annotation).

    - `description: Optional[str]`

      Human-readable description (annotation).

    - `enum: Optional[List[object]]`

      Enumerated allowed values.

    - `format: Optional[str]`

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

    - `items: Optional[object]`

      Schema for array items.

    - `maximum: Optional[float]`

    - `max_items: Optional[int]`

    - `max_length: Optional[int]`

    - `minimum: Optional[float]`

    - `min_items: Optional[int]`

    - `min_length: Optional[int]`

    - `pattern: Optional[str]`

    - `properties: Optional[object]`

      Property schemas, keyed by property name.

    - `read_only: Optional[bool]`

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

    - `required: Optional[List[str]]`

      Names of required properties.

    - `title: Optional[str]`

      Human-readable title (annotation).

    - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

      - `"object"`

      - `"array"`

      - `"string"`

      - `"integer"`

      - `"number"`

      - `"boolean"`

      - `"null"`

    - `write_only: Optional[bool]`

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

### Package List

- `class PackageList: …`

  - `items: List[Package]`

    - `id: str`

    - `created_at: datetime`

    - `kind: str`

    - `name: str`

    - `published: bool`

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

    - `slug: str`

      Server-populated URL-friendly identifier.

    - `updated_at: datetime`

    - `current_version: Optional[PackageVersion]`

      - `id: str`

      - `created_at: datetime`

      - `manifest_sha: str`

      - `name: str`

      - `owner_type: Literal["platform", "customer"]`

        - `"platform"`

        - `"customer"`

      - `version: int`

      - `archived_at: Optional[datetime]`

      - `created_by: Optional[str]`

      - `description: Optional[str]`

      - `icon_url: Optional[str]`

      - `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[str]`

          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[Schema]`

          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`).

          - `additional_properties: Optional[object]`

            Schema for properties not named in `properties`.

          - `const: Optional[object]`

            Constant allowed value.

          - `default: Optional[object]`

            Default value (annotation).

          - `description: Optional[str]`

            Human-readable description (annotation).

          - `enum: Optional[List[object]]`

            Enumerated allowed values.

          - `format: Optional[str]`

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

          - `items: Optional[object]`

            Schema for array items.

          - `maximum: Optional[float]`

          - `max_items: Optional[int]`

          - `max_length: Optional[int]`

          - `minimum: Optional[float]`

          - `min_items: Optional[int]`

          - `min_length: Optional[int]`

          - `pattern: Optional[str]`

          - `properties: Optional[object]`

            Property schemas, keyed by property name.

          - `read_only: Optional[bool]`

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

          - `required: Optional[List[str]]`

            Names of required properties.

          - `title: Optional[str]`

            Human-readable title (annotation).

          - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

            - `"object"`

            - `"array"`

            - `"string"`

            - `"integer"`

            - `"number"`

            - `"boolean"`

            - `"null"`

          - `write_only: Optional[bool]`

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

      - `links: Optional[List[Link]]`

        - `href: str`

          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: str`

          Link relation type.

        - `properties: Optional[Dict[str, object]]`

          Additional metadata keyed by property name.

        - `titles: Optional[Dict[str, str]]`

          Human-readable titles keyed by BCP 47 language tag.

        - `type: Optional[str]`

          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: str`

          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: Schema`

          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`).

          - `additional_properties: Optional[object]`

            Schema for properties not named in `properties`.

          - `const: Optional[object]`

            Constant allowed value.

          - `default: Optional[object]`

            Default value (annotation).

          - `description: Optional[str]`

            Human-readable description (annotation).

          - `enum: Optional[List[object]]`

            Enumerated allowed values.

          - `format: Optional[str]`

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

          - `items: Optional[object]`

            Schema for array items.

          - `maximum: Optional[float]`

          - `max_items: Optional[int]`

          - `max_length: Optional[int]`

          - `minimum: Optional[float]`

          - `min_items: Optional[int]`

          - `min_length: Optional[int]`

          - `pattern: Optional[str]`

          - `properties: Optional[object]`

            Property schemas, keyed by property name.

          - `read_only: Optional[bool]`

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

          - `required: Optional[List[str]]`

            Names of required properties.

          - `title: Optional[str]`

            Human-readable title (annotation).

          - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

            - `"object"`

            - `"array"`

            - `"string"`

            - `"integer"`

            - `"number"`

            - `"boolean"`

            - `"null"`

          - `write_only: Optional[bool]`

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

      - `properties: Optional[Dict[str, object]]`

        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[List[str]]`

    - `description: Optional[str]`

    - `draft: Optional[PackageDraft]`

      - `id: str`

      - `manifest_sha: str`

      - `name: str`

      - `updated_at: datetime`

      - `description: Optional[str]`

      - `icon_url: Optional[str]`

      - `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[str]`

          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[Schema]`

          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`).

          - `additional_properties: Optional[object]`

            Schema for properties not named in `properties`.

          - `const: Optional[object]`

            Constant allowed value.

          - `default: Optional[object]`

            Default value (annotation).

          - `description: Optional[str]`

            Human-readable description (annotation).

          - `enum: Optional[List[object]]`

            Enumerated allowed values.

          - `format: Optional[str]`

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

          - `items: Optional[object]`

            Schema for array items.

          - `maximum: Optional[float]`

          - `max_items: Optional[int]`

          - `max_length: Optional[int]`

          - `minimum: Optional[float]`

          - `min_items: Optional[int]`

          - `min_length: Optional[int]`

          - `pattern: Optional[str]`

          - `properties: Optional[object]`

            Property schemas, keyed by property name.

          - `read_only: Optional[bool]`

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

          - `required: Optional[List[str]]`

            Names of required properties.

          - `title: Optional[str]`

            Human-readable title (annotation).

          - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

            - `"object"`

            - `"array"`

            - `"string"`

            - `"integer"`

            - `"number"`

            - `"boolean"`

            - `"null"`

          - `write_only: Optional[bool]`

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

      - `links: Optional[List[Link]]`

        - `href: str`

          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: str`

          Link relation type.

        - `properties: Optional[Dict[str, object]]`

          Additional metadata keyed by property name.

        - `titles: Optional[Dict[str, str]]`

          Human-readable titles keyed by BCP 47 language tag.

        - `type: Optional[str]`

          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: str`

          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: Schema`

          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`).

          - `additional_properties: Optional[object]`

            Schema for properties not named in `properties`.

          - `const: Optional[object]`

            Constant allowed value.

          - `default: Optional[object]`

            Default value (annotation).

          - `description: Optional[str]`

            Human-readable description (annotation).

          - `enum: Optional[List[object]]`

            Enumerated allowed values.

          - `format: Optional[str]`

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

          - `items: Optional[object]`

            Schema for array items.

          - `maximum: Optional[float]`

          - `max_items: Optional[int]`

          - `max_length: Optional[int]`

          - `minimum: Optional[float]`

          - `min_items: Optional[int]`

          - `min_length: Optional[int]`

          - `pattern: Optional[str]`

          - `properties: Optional[object]`

            Property schemas, keyed by property name.

          - `read_only: Optional[bool]`

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

          - `required: Optional[List[str]]`

            Names of required properties.

          - `title: Optional[str]`

            Human-readable title (annotation).

          - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

            - `"object"`

            - `"array"`

            - `"string"`

            - `"integer"`

            - `"number"`

            - `"boolean"`

            - `"null"`

          - `write_only: Optional[bool]`

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

      - `properties: Optional[Dict[str, object]]`

        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[List[str]]`

    - `icon_url: Optional[str]`

    - `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[Dict[str, object]]`

      - `effective_schema: Optional[EffectiveSchema]`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

          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[str]`

        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[Schema]`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

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

    - `links: Optional[List[Link]]`

      - `href: str`

        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: str`

        Link relation type.

      - `properties: Optional[Dict[str, object]]`

        Additional metadata keyed by property name.

      - `titles: Optional[Dict[str, str]]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: Optional[str]`

        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: str`

        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: Schema`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

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

    - `properties: Optional[Dict[str, object]]`

      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: Literal["global", "org", "zone"]`

        Scope type of the catalog where the package is authored.

        - `"global"`

        - `"org"`

        - `"zone"`

    - `tags: Optional[List[str]]`

  - `pagination: Pagination`

    Cursor-based pagination metadata returned alongside a list of results

    - `after_cursor: Optional[str]`

      An opaque cursor used for paginating through a list of results

    - `before_cursor: Optional[str]`

      An opaque cursor used for paginating through a list of results

    - `total_count: Optional[int]`

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

### Package Output Binding

- `class 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: str`

    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: Schema`

    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`).

    - `additional_properties: Optional[object]`

      Schema for properties not named in `properties`.

    - `const: Optional[object]`

      Constant allowed value.

    - `default: Optional[object]`

      Default value (annotation).

    - `description: Optional[str]`

      Human-readable description (annotation).

    - `enum: Optional[List[object]]`

      Enumerated allowed values.

    - `format: Optional[str]`

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

    - `items: Optional[object]`

      Schema for array items.

    - `maximum: Optional[float]`

    - `max_items: Optional[int]`

    - `max_length: Optional[int]`

    - `minimum: Optional[float]`

    - `min_items: Optional[int]`

    - `min_length: Optional[int]`

    - `pattern: Optional[str]`

    - `properties: Optional[object]`

      Property schemas, keyed by property name.

    - `read_only: Optional[bool]`

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

    - `required: Optional[List[str]]`

      Names of required properties.

    - `title: Optional[str]`

      Human-readable title (annotation).

    - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

      - `"object"`

      - `"array"`

      - `"string"`

      - `"integer"`

      - `"number"`

      - `"boolean"`

      - `"null"`

    - `write_only: Optional[bool]`

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

### Package Source

- `class PackageSource: …`

  Provenance info for a package originating from an ancestor catalog.

  - `scope: Literal["global", "org", "zone"]`

    Scope type of the catalog where the package is authored.

    - `"global"`

    - `"org"`

    - `"zone"`

# Versions

## Domain Types

### Package Version

- `class PackageVersion: …`

  - `id: str`

  - `created_at: datetime`

  - `manifest_sha: str`

  - `name: str`

  - `owner_type: Literal["platform", "customer"]`

    - `"platform"`

    - `"customer"`

  - `version: int`

  - `archived_at: Optional[datetime]`

  - `created_by: Optional[str]`

  - `description: Optional[str]`

  - `icon_url: Optional[str]`

  - `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[str]`

      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[Schema]`

      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`).

      - `additional_properties: Optional[object]`

        Schema for properties not named in `properties`.

      - `const: Optional[object]`

        Constant allowed value.

      - `default: Optional[object]`

        Default value (annotation).

      - `description: Optional[str]`

        Human-readable description (annotation).

      - `enum: Optional[List[object]]`

        Enumerated allowed values.

      - `format: Optional[str]`

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

      - `items: Optional[object]`

        Schema for array items.

      - `maximum: Optional[float]`

      - `max_items: Optional[int]`

      - `max_length: Optional[int]`

      - `minimum: Optional[float]`

      - `min_items: Optional[int]`

      - `min_length: Optional[int]`

      - `pattern: Optional[str]`

      - `properties: Optional[object]`

        Property schemas, keyed by property name.

      - `read_only: Optional[bool]`

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

      - `required: Optional[List[str]]`

        Names of required properties.

      - `title: Optional[str]`

        Human-readable title (annotation).

      - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `write_only: Optional[bool]`

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

  - `links: Optional[List[Link]]`

    - `href: str`

      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: str`

      Link relation type.

    - `properties: Optional[Dict[str, object]]`

      Additional metadata keyed by property name.

    - `titles: Optional[Dict[str, str]]`

      Human-readable titles keyed by BCP 47 language tag.

    - `type: Optional[str]`

      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: str`

      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: Schema`

      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`).

      - `additional_properties: Optional[object]`

        Schema for properties not named in `properties`.

      - `const: Optional[object]`

        Constant allowed value.

      - `default: Optional[object]`

        Default value (annotation).

      - `description: Optional[str]`

        Human-readable description (annotation).

      - `enum: Optional[List[object]]`

        Enumerated allowed values.

      - `format: Optional[str]`

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

      - `items: Optional[object]`

        Schema for array items.

      - `maximum: Optional[float]`

      - `max_items: Optional[int]`

      - `max_length: Optional[int]`

      - `minimum: Optional[float]`

      - `min_items: Optional[int]`

      - `min_length: Optional[int]`

      - `pattern: Optional[str]`

      - `properties: Optional[object]`

        Property schemas, keyed by property name.

      - `read_only: Optional[bool]`

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

      - `required: Optional[List[str]]`

        Names of required properties.

      - `title: Optional[str]`

        Human-readable title (annotation).

      - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

        - `"object"`

        - `"array"`

        - `"string"`

        - `"integer"`

        - `"number"`

        - `"boolean"`

        - `"null"`

      - `write_only: Optional[bool]`

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

  - `properties: Optional[Dict[str, object]]`

    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[List[str]]`

### Package Version List

- `class PackageVersionList: …`

  - `items: List[PackageVersion]`

    - `id: str`

    - `created_at: datetime`

    - `manifest_sha: str`

    - `name: str`

    - `owner_type: Literal["platform", "customer"]`

      - `"platform"`

      - `"customer"`

    - `version: int`

    - `archived_at: Optional[datetime]`

    - `created_by: Optional[str]`

    - `description: Optional[str]`

    - `icon_url: Optional[str]`

    - `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[str]`

        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[Schema]`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

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

    - `links: Optional[List[Link]]`

      - `href: str`

        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: str`

        Link relation type.

      - `properties: Optional[Dict[str, object]]`

        Additional metadata keyed by property name.

      - `titles: Optional[Dict[str, str]]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: Optional[str]`

        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: str`

        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: Schema`

        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`).

        - `additional_properties: Optional[object]`

          Schema for properties not named in `properties`.

        - `const: Optional[object]`

          Constant allowed value.

        - `default: Optional[object]`

          Default value (annotation).

        - `description: Optional[str]`

          Human-readable description (annotation).

        - `enum: Optional[List[object]]`

          Enumerated allowed values.

        - `format: Optional[str]`

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

        - `items: Optional[object]`

          Schema for array items.

        - `maximum: Optional[float]`

        - `max_items: Optional[int]`

        - `max_length: Optional[int]`

        - `minimum: Optional[float]`

        - `min_items: Optional[int]`

        - `min_length: Optional[int]`

        - `pattern: Optional[str]`

        - `properties: Optional[object]`

          Property schemas, keyed by property name.

        - `read_only: Optional[bool]`

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

        - `required: Optional[List[str]]`

          Names of required properties.

        - `title: Optional[str]`

          Human-readable title (annotation).

        - `type: Optional[Literal["object", "array", "string", 4 more]]`

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

          - `"object"`

          - `"array"`

          - `"string"`

          - `"integer"`

          - `"number"`

          - `"boolean"`

          - `"null"`

        - `write_only: Optional[bool]`

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

    - `properties: Optional[Dict[str, object]]`

      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[List[str]]`

  - `pagination: Pagination`

    Cursor-based pagination metadata returned alongside a list of results

    - `after_cursor: Optional[str]`

      An opaque cursor used for paginating through a list of results

    - `before_cursor: Optional[str]`

      An opaque cursor used for paginating through a list of results

    - `total_count: Optional[int]`

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