# Code-gen


`CodeGenBuilder` refines `BuilderSpec` with `generator` and
`languages` so multi-language generators (protoc, openapi-generator,
graphql-codegen) carry their target metadata in the type.

The `codeGen` smart constructor expands a single config record into
a fully-typed spec: per-language outputs, read-source / declare-tool
/ resolve-dependency / run-tool / transform-output / emit-descriptor
/ materialize-derivation operations.

