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.
note

This page describes the canonical shape of an object instance. JSON graph configuration documents use a more compact spelling of the same idea: they carry the variant in type rather than subtype, and accept config as well as configuration. See the Graph Configuration Schema for that format.

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