The codec for a field whose travel is DECLARED — the declaration passed WHOLE, not transcribed
field by field.
A ControlLimit travels as ONE thing — bounds, resolution and unit — so use this
wherever a field's travel is declared, and reach for finiteNumber's loose form only when
there is no declaration to point at.
Passing min and max by hand drops the other two silently, and a client binding what it was
given then draws a Hz control with no unit and a step of zero. The declaration is not the
defect there — the transcription is, and taking the whole value removes the opportunity.
The limit this publishes is limit ITSELF, not a span reconstructed from its members: the
measured defect this closes (2026-09-15, OPTIONS /channel/input/1/drive) is exactly a
reconstruction that named unit and step and silently dropped default/defaultFrom —
every one of driveDb/character/bandHz/mix/trimDb had a come-up value declared in
strip-fx-limits.ts that never reached the wire, because this function rebuilt a narrower
limit from the four members it happened to name instead of carrying the one it was given.
The codec for a field whose travel is DECLARED — the declaration passed WHOLE, not transcribed field by field.
A ControlLimit travels as ONE thing — bounds, resolution and unit — so use this wherever a field's travel is declared, and reach for
finiteNumber's loose form only when there is no declaration to point at.Passing
minandmaxby hand drops the other two silently, and a client binding what it was given then draws a Hz control with no unit and a step of zero. The declaration is not the defect there — the transcription is, and taking the whole value removes the opportunity.The
limitthis publishes islimitITSELF, not a span reconstructed from its members: the measured defect this closes (2026-09-15,OPTIONS /channel/input/1/drive) is exactly a reconstruction that namedunitandstepand silently droppeddefault/defaultFrom— every one ofdriveDb/character/bandHz/mix/trimDbhad a come-up value declared instrip-fx-limits.tsthat never reached the wire, because this function rebuilt a narrower limit from the four members it happened to name instead of carrying the one it was given.