'slicer' and 'firmware' adapters COMPOSE (amendment 1); one winner per kind.
OptionalfinalizeOptionalconfig: unknownOptionalonOptionalconfig: unknownOptionalonPer-adapter serializable configuration (validated by the adapter itself).
Optionalconfig: unknown
@chestnutlabs/gcode-dialects — dialect adapter contracts & registry (DD-005).
Phase 1 (#73): behavioral contracts, buffered annotation sink, and the composition runner. Built-in vendor adapters arrive in phases 3–5. Depends only on @chestnutlabs/toolpath-core; the parser consumes the runner through its own structural DialectRunnerFactory type (worker entries compose the two — DD-002 §5 boundaries).