Schemas / UI (control surfaces)

rig.ui.panel

v1.0.0 · stable maturity: stable 6 fields 0 required

Fields

FieldTypeMeaning
role string optional Optional. Stable id (e.g. led.install, mod.lfo, play.hud) so another host can find or merge the surface
surface enumtool · hud optional Optional. tool or hud; absent = tool
order int optional Optional. Sort key among sibling panels; absent = 0
visible bool optional Optional. Whether the panel is shown; absent = true
preferredWidth float optional Optional. Advisory width hint in the document's defaultUnit; hosts may ignore
preferredHeight float optional Optional. Advisory height hint; hosts may ignore

Portable tool surface - a window/panel of controls that any UI pack can redraw. Labels compose rig.meta.named - do not re-declare name here.

Controls, actions, and rig.ui.group reference this entity via their panel field. surface hud is the same controls drawn as a play overlay. Layout chrome (docks, tabs, ESP page shells, toolkit window flags) is fulfillment - not this schema.

A host that implements six schemas and ignores the rest may still ship a panel over the fields it understands. Ship what you support.

JSON Schema

Resolves at https://rig.works/schemas/rig.ui.panel.schema.json — raw file.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.ui.panel.schema.json",
  "title": "rig.ui.panel",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "role": {
      "$ref": "./_defs.schema.json#/$defs/string"
    },
    "surface": {
      "type": "string",
      "enum": [
        "tool",
        "hud"
      ]
    },
    "order": {
      "$ref": "./_defs.schema.json#/$defs/int"
    },
    "visible": {
      "$ref": "./_defs.schema.json#/$defs/bool"
    },
    "preferredWidth": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "preferredHeight": {
      "$ref": "./_defs.schema.json#/$defs/float"
    }
  },
  "description": "Portable tool or HUD surface. role is a stable id; surface absent = tool. Dock/chrome is fulfillment.",
  "x-rig-maturity": "stable"
}

Seen in

play-scene.json · portable-tool.json · ui-panel.json