{
  "functions": [
    {
      "description": "Test function for allocation plugin - returns a simple calculation",
      "id": "TEST",
      "name": "TEST",
      "parameters": [
        {
          "description": "A number to multiply",
          "name": "value",
          "type": "number"
        }
      ],
      "result": {
        "type": "number"
      }
    },
    {
      "description": "Query function that batches requests and waits for API response",
      "id": "QUERY",
      "name": "QUERY",
      "parameters": [
        {
          "description": "Query identifier",
          "name": "queryId",
          "type": "string"
        },
        {
          "description": "Query parameters",
          "name": "params",
          "type": "any",
          "optional": true
        }
      ],
      "result": {
        "type": "any"
      },
      "options": {
        "requiresAddress": true
      }
    },
    {
      "description": "Streaming function that receives real-time updates via websocket",
      "id": "STREAM",
      "name": "STREAM",
      "parameters": [
        {
          "description": "Stream identifier",
          "name": "streamId",
          "type": "string"
        }
      ],
      "result": {
        "type": "any",
        "dimensionality": "scalar"
      },
      "options": {
        "stream": true,
        "requiresAddress": true
      }
    }
  ]
}
