Skip to main content

Object Schema

Every Switchboard object instance — the SDK singleton, extensions, engines, graphs, and nodes — follows the same base shape. This page defines that shape as a JSON Schema.

For the related schema that describes the static type descriptors that objects publish (configuration, properties, actions, events), see Object Type Schema.

At a glance

FieldRequiredTypePurpose
idnostringIdentifier of the object within its parent scope.
urinostringFully-qualified path to the object (e.g. switchboard.engine1.graph1.node1).
typeyesstringKind of object (switchboard, engine, graph, node, extension).
subtypeyesstringSpecific variant within the kind (e.g. Switchboard.AudioPlayer).
configurationnoobjectConstruction-time parameters, keyed by parameter name.
propertiesnoobjectRuntime properties, keyed by property name.

Fields

id

Optional identifier of the object within its parent scope. May be omitted when the object is referenced by uri alone.

uri

Optional fully-qualified path to the object. Encodes the object's location in the SDK hierarchy, with segments separated by . (e.g. switchboard.engine1.graph1.node1).

type

Required. The kind of Switchboard object. Must be one of:

  • switchboard — the SDK singleton
  • engine — an audio engine (e.g. realtime, offline, manual, websocket)
  • graph — an audio graph
  • node — an audio graph node
  • extension — an extension package

subtype

Required. A string that identifies the specific variant within the type. For nodes this is the fully-qualified node type name (e.g. Switchboard.AudioPlayer, Superpowered.Reverb); for engines it is the engine type name; for extensions it is the extension name.

configuration

Optional map of construction-time parameters, keyed by parameter name. Values may be of any JSON type. The schema for each entry is defined by the object's static type descriptor.

properties

Optional map of runtime properties, keyed by property name. Values may be of any JSON type. The schema for each entry is defined by the object's static type descriptor.

Example

{
"id": "node1",
"uri": "switchboard.engine1.graph1.node1",
"type": "node",
"subtype": "Switchboard.AudioPlayer",
"configuration": {
"audioFilePath": "@system/example.wav"
},
"properties": {
"loopEnabled": true
}
}

Full JSON Schema

Download switchboard-object.json