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.