openmixer — generated API reference
    Preparing search index...

    Interface SurfacePageJson

    One USER page — the operator's curated strip set on the bay (USER 1–4 on a Midas PRO, "user banks" on an X32). SHOW state (operator ruling 2026-08-28, surface-interaction-conventions.md §"User pages are desk state"): a page is built in a session, beside the patch, and must be on every device that opens that session — so it lives on the desk as the /surface/pages/{index} row and rides ConsoleSnapshot beside the preferences, never in a browser's storage.

    A slot is ANY strip of the console by channel ref, or null — a blank SPACER, the physical gap consoles use to group strips on a layer. Order is the operator's. Duplicates are allowed: consoles do not fence them. The page's IDENTITY is its position in the set, which is why the row is index-addressed and the page carries no id of its own.

    interface SurfacePageJson {
        name: string;
        slots: readonly (ChannelRefJson | null)[];
    }
    Index
    name: string
    slots: readonly (ChannelRefJson | null)[]