Schemas / UI (control surfaces)

rig.ui.action

v1.0.0 · stable maturity: stable 5 fields 3 required

Fields

FieldTypeMeaning
panel entity required Owning rig.ui.panel
group entity optional Optional. Owning rig.ui.group; absent or null = direct child of the panel
order int required Sort key within the panel or group
actionId string required Command catalog id (e.g. lfo.resetPhase, transport.play)
enabled bool optional Whether the action can be invoked

A command button on a panel. Edges toward behavior.

Labels compose rig.meta.named. What the action does is fulfillment - the Contract only names which command the surface exposes.

Portability: prefer shared actionId names that both hosts implement. Unknown ids may be hidden or disabled (ship what you support). Host-private ids are valid but non-portable. Cross-app tools should prefer rig.ui.control (mutate shared POD) over actions when possible - see ui.md.

Required: panel, order, actionId.

JSON Schema

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

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.ui.action.schema.json",
  "title": "rig.ui.action",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "panel": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    },
    "group": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    },
    "order": {
      "$ref": "./_defs.schema.json#/$defs/int"
    },
    "actionId": {
      "$ref": "./_defs.schema.json#/$defs/string"
    },
    "enabled": {
      "$ref": "./_defs.schema.json#/$defs/bool"
    }
  },
  "required": [
    "panel",
    "order",
    "actionId"
  ],
  "description": "Command button. Prefer shared actionId names for portable tools; unknown ids may be hidden.",
  "x-rig-maturity": "stable"
}

Seen in

portable-tool.json · ui-panel.json