{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "busVersion": "0.3",
  "title": "BUS-1 v0.2 Symbol Role Vocabulary, Tier One",
  "status": "Normative. Roles are hierarchical dotted paths that degrade by truncation (BUS-1 13.4.2). An implementation MUST support every root; support for deeper leaves is RECOMMENDED and never required.",
  "roots": {
    "fan": {
      "family": "airMovement",
      "leaves": [
        "fan.centrifugal",
        "fan.axial",
        "fan.plug",
        "fan.centrifugal.supply",
        "fan.centrifugal.return",
        "fan.centrifugal.exhaust",
        "fan.centrifugal.relief"
      ],
      "note": ""
    },
    "damper": {
      "family": "airMovement",
      "leaves": [
        "damper.modulating",
        "damper.twoPosition",
        "damper.fireSmoke",
        "damper.modulating.outsideAir",
        "damper.modulating.mixed",
        "damper.modulating.bypass"
      ],
      "note": ""
    },
    "louver": {
      "family": "airMovement",
      "leaves": [],
      "note": ""
    },
    "duct": {
      "family": "airMovement",
      "leaves": [
        "duct.segment",
        "duct.segment.supply",
        "duct.segment.return",
        "duct.segment.exhaust",
        "duct.segment.outsideAir"
      ],
      "note": ""
    },
    "plenum": {
      "family": "airMovement",
      "leaves": [],
      "note": ""
    },
    "mixingBox": {
      "family": "airMovement",
      "leaves": [],
      "note": ""
    },
    "diffuser": {
      "family": "airMovement",
      "leaves": [],
      "note": ""
    },
    "grille": {
      "family": "airMovement",
      "leaves": [],
      "note": ""
    },
    "terminal": {
      "family": "airMovement",
      "leaves": [
        "terminal.vav",
        "terminal.vav.reheat",
        "terminal.cav",
        "terminal.fanPowered"
      ],
      "note": ""
    },
    "pump": {
      "family": "wetSide",
      "leaves": [
        "pump.centrifugal",
        "pump.inline",
        "pump.centrifugal.chilledWater",
        "pump.centrifugal.hotWater",
        "pump.centrifugal.condenser"
      ],
      "note": ""
    },
    "valve": {
      "family": "wetSide",
      "leaves": [
        "valve.twoWay",
        "valve.threeWay",
        "valve.modulating",
        "valve.isolation",
        "valve.check"
      ],
      "note": ""
    },
    "coil": {
      "family": "wetSide",
      "leaves": [
        "coil.cooling",
        "coil.heating",
        "coil.preheat",
        "coil.reheat",
        "coil.cooling.chilledWater",
        "coil.cooling.directExpansion"
      ],
      "note": ""
    },
    "pipe": {
      "family": "wetSide",
      "leaves": [
        "pipe.segment"
      ],
      "note": "Medium is carried by the binding or the represented entity."
    },
    "heatExchanger": {
      "family": "wetSide",
      "leaves": [],
      "note": ""
    },
    "tank": {
      "family": "wetSide",
      "leaves": [],
      "note": ""
    },
    "humidifier": {
      "family": "wetSide",
      "leaves": [],
      "note": ""
    },
    "chiller": {
      "family": "plant",
      "leaves": [
        "chiller.centrifugal",
        "chiller.screw",
        "chiller.absorption",
        "chiller.airCooled"
      ],
      "note": ""
    },
    "boiler": {
      "family": "plant",
      "leaves": [
        "boiler.condensing",
        "boiler.steam",
        "boiler.electric"
      ],
      "note": ""
    },
    "coolingTower": {
      "family": "plant",
      "leaves": [
        "coolingTower.openCircuit",
        "coolingTower.closedCircuit"
      ],
      "note": ""
    },
    "compressor": {
      "family": "plant",
      "leaves": [],
      "note": ""
    },
    "filter": {
      "family": "plant",
      "leaves": [
        "filter.panel",
        "filter.bag",
        "filter.hepa"
      ],
      "note": ""
    },
    "breaker": {
      "family": "electrical",
      "leaves": [],
      "note": ""
    },
    "switch": {
      "family": "electrical",
      "leaves": [],
      "note": ""
    },
    "transformer": {
      "family": "electrical",
      "leaves": [],
      "note": ""
    },
    "panel": {
      "family": "electrical",
      "leaves": [],
      "note": ""
    },
    "busway": {
      "family": "electrical",
      "leaves": [],
      "note": ""
    },
    "generator": {
      "family": "electrical",
      "leaves": [],
      "note": ""
    },
    "ups": {
      "family": "electrical",
      "leaves": [],
      "note": ""
    },
    "meter": {
      "family": "electrical",
      "leaves": [
        "meter.electrical",
        "meter.gas",
        "meter.water",
        "meter.thermal"
      ],
      "note": ""
    },
    "controller": {
      "family": "controls",
      "leaves": [],
      "note": ""
    },
    "actuator": {
      "family": "controls",
      "leaves": [],
      "note": ""
    },
    "vfd": {
      "family": "controls",
      "leaves": [],
      "note": ""
    },
    "relay": {
      "family": "controls",
      "leaves": [],
      "note": ""
    },
    "thermostat": {
      "family": "controls",
      "leaves": [],
      "note": ""
    },
    "sensor": {
      "family": "controls",
      "leaves": [
        "sensor.temperature",
        "sensor.pressure",
        "sensor.flow",
        "sensor.humidity",
        "sensor.co2",
        "sensor.occupancy",
        "sensor.current"
      ],
      "note": ""
    },
    "readout": {
      "family": "interface",
      "leaves": [
        "readout.value",
        "readout.text"
      ],
      "note": ""
    },
    "indicator": {
      "family": "interface",
      "leaves": [
        "indicator.status",
        "indicator.alarm"
      ],
      "note": ""
    },
    "gauge": {
      "family": "interface",
      "leaves": [],
      "note": ""
    },
    "trend": {
      "family": "interface",
      "leaves": [],
      "note": ""
    },
    "bar": {
      "family": "interface",
      "leaves": [],
      "note": ""
    },
    "legend": {
      "family": "interface",
      "leaves": [],
      "note": ""
    },
    "control": {
      "family": "interface",
      "leaves": [
        "control.input.numeric",
        "control.input.enum",
        "control.button.toggle",
        "control.button.momentary",
        "control.slider"
      ],
      "note": "A write binding attaches to one of these."
    },
    "label": {
      "family": "interface",
      "leaves": [
        "label.text",
        "label.dimension"
      ],
      "note": ""
    },
    "navigation": {
      "family": "interface",
      "leaves": [
        "navigation.link"
      ],
      "note": ""
    },
    "group": {
      "family": "interface",
      "leaves": [],
      "note": ""
    },
    "space": {
      "family": "architecture",
      "leaves": [
        "space.boundary"
      ],
      "note": ""
    },
    "wall": {
      "family": "architecture",
      "leaves": [],
      "note": ""
    },
    "door": {
      "family": "architecture",
      "leaves": [],
      "note": ""
    },
    "window": {
      "family": "architecture",
      "leaves": [],
      "note": ""
    },
    "core": {
      "family": "architecture",
      "leaves": [],
      "note": ""
    },
    "stair": {
      "family": "architecture",
      "leaves": [],
      "note": ""
    },
    "column": {
      "family": "architecture",
      "leaves": [],
      "note": ""
    }
  },
  "deprecationPolicy": "A term in this vocabulary is never deleted. A term that should no longer be written carries a `deprecation` object — deprecatedIn, replacedBy, reason, mitigation — and a receiver MUST continue to accept it (15.5). No term is deprecated as of v0.3.",
  "deprecationSchema": "https://spec.bustandard.org/v0.3/bus-core.schema.json#/$defs/Deprecation"
}
