3. Look up the live vocabulary

The guide teaches what a device call means. The catalog tells us which devices exist.

Retrieve the lobby light:

Request
{"tool":"pilotage_catalog","arguments":{"language":"buildingflow/1","verb":"get","id":"light.lobby"}}
Response
{
  "entry": {
    "id": "light.lobby",
    "kind": "light",
    "name": "Lobby lights",
    "description": "Lighting circuit: Lobby lights. Actions: turn_on(); turn_off(); set_brightness(percent: number).",
    "input_schema": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "turn_on",
            "turn_off",
            "set_brightness"
          ]
        },
        "with": {
          "type": "object"
        }
      },
      "required": [
        "action"
      ]
    },
    "output_schema": null,
    "risk": "write",
    "risk_hints": {
      "readOnly": false,
      "destructive": false,
      "openWorld": false
    },
    "tags": [
      "lighting",
      "lobby"
    ],
    "languages": [
      "buildingflow/1"
    ]
  },
  "catalog_version": "cv_590fefad56a7a504"
}

Now retrieve the dock lock:

Request
{"tool":"pilotage_catalog","arguments":{"language":"buildingflow/1","verb":"get","id":"lock.dock_door"}}
Response
{
  "entry": {
    "id": "lock.dock_door",
    "kind": "lock",
    "name": "Loading-dock door",
    "description": "Badge-controlled lock: Loading-dock door. Actions: lock(); unlock().",
    "input_schema": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "lock",
            "unlock"
          ]
        },
        "with": {
          "type": "object"
        }
      },
      "required": [
        "action"
      ]
    },
    "output_schema": null,
    "risk": "destructive",
    "risk_hints": {
      "readOnly": false,
      "destructive": true,
      "openWorld": false
    },
    "tags": [
      "access",
      "dock"
    ],
    "languages": [
      "buildingflow/1"
    ]
  },
  "catalog_version": "cv_590fefad56a7a504"
}

The names and actions now come from the live server. The token identifies the snapshot used for authoring.

What this taught

Guides are grammar. The catalog is vocabulary. catalog_version connects that vocabulary to later validation and execution.

See The catalog and catalog_version and Part II ยง5.4.