Names & $refs
Once codescan knows which definitions to emit, these knobs govern how they are
named and referenced: the definition names that form your published $ref
contract, where member names come from, and the shape a reference takes in the
output.
- When two Go types want the same definition name, codescan keeps them distinct with deterministic, package-qualified names — and you stay in control of the $ref names that form your published contract.
- Derive property, parameter and header names from a struct tag other than json (form, xml, …) via NameFromTags.
- Emit interface-method property names verbatim (ID, CreatedAt) instead of the auto-jsonified spelling (id, createdAt), with SkipJSONifyInterfaceMethods.
- Choose how Go type aliases render — dissolved to their target, or exposed as a first-class $ref via swagger:model, with RefAliases / TransparentAliases.
- Render a plain struct embed as an allOf composition — a $ref to the embedded model plus a sibling member for the embedding struct’s own fields — instead of inlining the promoted properties, with DefaultAllOfForEmbeds.
- Control how a field’s description and extensions are rendered when its type resolves to a $ref — wrapped in an allOf, emitted as direct siblings (EmitRefSiblings), or dropped (SkipAllOfCompounding).