Type
Task
Scope
Multi-theme or Platform
Skillset
engineering
Description
Context
The STAC catalog at stac.overturemaps.org emits table:columns with only column names — no type or description. Consumers reading the catalog have no way to discover what a column means without leaving STAC and going to the schema docs. The information already lives in the Pydantic models; a new codegen renderer can surface it as machine-readable JSON that the STAC generator consumes at build time.
Proposed change
In packages/overture-schema-codegen/src/overture/schema/codegen/, alongside markdown/ and pyspark/:
- Add a
stac_table_columns/ renderer that emits one JSON file per (theme, type), matching the STAC table extension table:columns shape: [{"name", "type", "description"}].
type maps from the Pydantic field's resolved primitive to STAC/parquet types (string, int32, int64, double, boolean, struct, list). Reuse extraction logic already used by the pyspark renderer where possible.
description comes from the field's docstring / description text.
- Wire into the CLI as a new
--format option so overture-codegen generate --format stac-table-columns --output-dir out/ writes buildings/building.json, places/place.json, etc.
Type
Task
Scope
Multi-theme or Platform
Skillset
engineering
Description
Context
The STAC catalog at stac.overturemaps.org emits
table:columnswith only column names — notypeordescription. Consumers reading the catalog have no way to discover what a column means without leaving STAC and going to the schema docs. The information already lives in the Pydantic models; a new codegen renderer can surface it as machine-readable JSON that the STAC generator consumes at build time.Proposed change
In packages/overture-schema-codegen/src/overture/schema/codegen/, alongside
markdown/andpyspark/:stac_table_columns/renderer that emits one JSON file per (theme, type), matching the STAC table extensiontable:columnsshape:[{"name", "type", "description"}].typemaps from the Pydantic field's resolved primitive to STAC/parquet types (string,int32,int64,double,boolean,struct,list). Reuse extraction logic already used by the pyspark renderer where possible.descriptioncomes from the field's docstring / description text.--formatoption sooverture-codegen generate --format stac-table-columns --output-dir out/writesbuildings/building.json,places/place.json, etc.