openmixer — generated API reference
    Preparing search index...

    Type Alias BoundsResolution

    BoundsResolution:
        | {
            descriptor: ControlDescriptor;
            kind: "bounds";
            source: RangeSource["kind"];
        }
        | { kind: "coupling"; source: "faderTaper" }
        | { kind: "absent"; source: RangeSource["kind"] }
        | { control: "toggle" | "enum" | "text" | "readout"; kind: "notNumeric" }
        | { kind: "unsourced" }

    What following a fact's pointer produced. bounds carries the source it resolved through, so a caller — or the provenance matrix — can say WHERE a drawn number came from, not just what it is.

    Type Declaration

    • { descriptor: ControlDescriptor; kind: "bounds"; source: RangeSource["kind"] }

      Resolved: draw this.

    • { kind: "coupling"; source: "faderTaper" }

      The fact's travel is a COUPLING, not a min/max pair — ask the taper, never flatten it.

    • { kind: "absent"; source: RangeSource["kind"] }

      The pointer is declared but its source was not supplied — no preamp patched, no table given, no such field in the table. A fact to render, never a default to substitute.

    • { control: "toggle" | "enum" | "text" | "readout"; kind: "notNumeric" }

      The fact is not carried by a numeric control at all — a toggle, an enum, a scribble string. It has no travel to declare, so it is not a gap and never joins the ledger.

    • { kind: "unsourced" }

      The contract declares no pointer for this fact — a gap in the declaration, not in the caller. The written-down list in control-bounds.test.ts is the shrink-only ledger.