The frontend never reads libopenapi's Extensions, and plan.Metadata is {Title, Description, Deprecated}.
ogen depends on: x-ogen-name (type name override), x-ogen-type (custom Go type), x-ogen-properties (per-property name overrides), x-ogen-validate (custom validation params), x-ogen-time-format, x-oapi-codegen-extra-tags (extra struct tags). See jsonschema.Schema fields XOgenName, XOgenType, OgenValidate, ExtraTags, XOgenTimeFormat.
A generic extension passthrough (map[string]any on Metadata, keeping raw values) is preferable to hardcoding ogen-specific keys — schemacompiler should not know about x-ogen-* by name. Per-property extensions additionally need #22.
The frontend never reads libopenapi's
Extensions, andplan.Metadatais{Title, Description, Deprecated}.ogen depends on:
x-ogen-name(type name override),x-ogen-type(custom Go type),x-ogen-properties(per-property name overrides),x-ogen-validate(custom validation params),x-ogen-time-format,x-oapi-codegen-extra-tags(extra struct tags). Seejsonschema.SchemafieldsXOgenName,XOgenType,OgenValidate,ExtraTags,XOgenTimeFormat.A generic extension passthrough (
map[string]anyonMetadata, keeping raw values) is preferable to hardcoding ogen-specific keys — schemacompiler should not know aboutx-ogen-*by name. Per-property extensions additionally need #22.