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
| Field | Required | Type | Purpose |
|---|---|---|---|
id | no | string | Identifier of the object within its parent scope. |
uri | no | string | Fully-qualified path to the object (e.g. switchboard.engine1.graph1.node1). |
type | yes | string | Kind of object (switchboard, engine, graph, node, extension). |
subtype | yes | string | Specific variant within the kind (e.g. Switchboard.AudioPlayer). |
configuration | no | object | Construction-time parameters, keyed by parameter name. |
properties | no | object | Runtime 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 singletonengine— an audio engine (e.g. realtime, offline, manual, websocket)graph— an audio graphnode— an audio graph nodeextension— 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
}
}