Skip to content

contentSchema has no IR field at any position #426

Description

@fuad-daoud

The gap

docs/ir-design.md:671-672 already names this one as "a gap expected to close": the 2020-12 content vocabulary's contentSchema has no home at any position, while contentEncoding and contentMediaType reach Encoding.Name / Encoding.MediaType.

Why it is worth closing

contentSchema is the keyword that says what a string-encoded payload is once decoded — the schema of the thing inside a base64 blob or a application/json-typed string. Without it, a consumer sees an opaque string where the source declared a full shape.

It also completes a vocabulary that is otherwise two-thirds modelled, which is an awkward place to stop: a consumer has to special-case one of the three keywords.

Scale

Small but concrete: it is the difference between half and all of oasdiff's media-type family for a downstream consumer, and it accounts for 4 breaking-change checks that cannot be implemented from typed IR.


Found by a study of dexpace/spaceapi adopting morphic IR as its input format (spaceapi#56), 2026-09-05. Related: #418 (non-emitter consumer), #419 (cross-revision identity).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:featureNew capability or enhancement

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions