Schemas / UI (control surfaces)

rig.ui.action

v0.31.0 · draft 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; this schema is the piece most likely to change before 1.0.0.

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.jsonraw 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. Most likely to change before 1.0.0."
}

Seen in

portable-tool.json · ui-panel.json