{
  "Folder": "ScadaLink",
  "NodeList": [],
  "FolderList": [
    {
      "Folder": "Motor",
      "NodeList": [
        {
          "NodeId": "Motor.Speed",
          "Name": "Speed",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Motor speed in RPM"
        },
        {
          "NodeId": "Motor.Temperature",
          "Name": "Temperature",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Motor bearing temperature in Celsius"
        },
        {
          "NodeId": "Motor.Current",
          "Name": "Current",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Motor current draw in Amps"
        },
        {
          "NodeId": "Motor.Running",
          "Name": "Running",
          "DataType": "Boolean",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Motor running status"
        },
        {
          "NodeId": "Motor.FaultCode",
          "Name": "FaultCode",
          "DataType": "UInt32",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Active fault code (0 = no fault)"
        }
      ]
    },
    {
      "Folder": "Pump",
      "NodeList": [
        {
          "NodeId": "Pump.FlowRate",
          "Name": "FlowRate",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Flow rate in liters per minute"
        },
        {
          "NodeId": "Pump.Pressure",
          "Name": "Pressure",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Discharge pressure in bar"
        },
        {
          "NodeId": "Pump.Running",
          "Name": "Running",
          "DataType": "Boolean",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Pump running status"
        }
      ]
    },
    {
      "Folder": "Tank",
      "NodeList": [
        {
          "NodeId": "Tank.Level",
          "Name": "Level",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Tank level in percent"
        },
        {
          "NodeId": "Tank.Temperature",
          "Name": "Temperature",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Tank contents temperature in Celsius"
        },
        {
          "NodeId": "Tank.HighLevel",
          "Name": "HighLevel",
          "DataType": "Boolean",
          "ValueRank": -1,
          "AccessLevel": "CurrentRead",
          "Description": "High level alarm switch"
        },
        {
          "NodeId": "Tank.LowLevel",
          "Name": "LowLevel",
          "DataType": "Boolean",
          "ValueRank": -1,
          "AccessLevel": "CurrentRead",
          "Description": "Low level alarm switch"
        }
      ]
    },
    {
      "Folder": "Valve",
      "NodeList": [
        {
          "NodeId": "Valve.Position",
          "Name": "Position",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Valve position in percent open"
        },
        {
          "NodeId": "Valve.Command",
          "Name": "Command",
          "DataType": "UInt32",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Valve command (0=Close, 1=Open, 2=Stop)"
        }
      ]
    },
    {
      "Folder": "JoeAppEngine",
      "NodeList": [
        {
          "NodeId": "JoeAppEngine.BTCS",
          "Name": "BTCS",
          "DataType": "String",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "BTCS string value"
        },
        {
          "NodeId": "JoeAppEngine.AlarmCntsBySeverity",
          "Name": "AlarmCntsBySeverity",
          "DataType": "Int32",
          "ValueRank": 1,
          "ArrayDimensions": [13],
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "13-element alarm counts by severity level"
        }
      ],
      "FolderList": [
        {
          "Folder": "Scheduler",
          "NodeList": [
            {
              "NodeId": "JoeAppEngine.Scheduler.ScanTime",
              "Name": "ScanTime",
              "DataType": "DateTime",
              "ValueRank": -1,
              "AccessLevel": "CurrentReadOrWrite",
              "Description": "Current scan time (updates every second)"
            }
          ]
        }
      ]
    }
  ]
}
