{
  "general": {
    "name": {
      "default": "Unnamed Node",
      "rules": { "type": "string", "description": "Human-readable name for this node." }
    },
    "id": {
      "default": null,
      "rules": { "type": "string", "nullable": true, "description": "Unique node identifier (set at runtime)." }
    },
    "unit": {
      "default": "unitless",
      "rules": { "type": "string", "description": "Default measurement unit." }
    },
    "logging": {
      "logLevel": {
        "default": "info",
        "rules": {
          "type": "enum",
          "values": [
            { "value": "debug", "description": "Verbose diagnostic messages." },
            { "value": "info", "description": "General informational messages." },
            { "value": "warn", "description": "Warning messages." },
            { "value": "error", "description": "Error level messages only." }
          ]
        }
      },
      "enabled": {
        "default": true,
        "rules": { "type": "boolean", "description": "Enable or disable logging." }
      }
    }
  },
  "functionality": {
    "softwareType": {
      "default": "unknown",
      "rules": { "type": "string", "description": "Software type identifier for parent-child registration." }
    },
    "role": {
      "default": "Generic EVOLV node",
      "rules": { "type": "string", "description": "Describes the functional role of this node." }
    },
    "positionVsParent": {
      "default": "atEquipment",
      "rules": {
        "type": "enum",
        "values": [
          { "value": "upstream", "description": "Upstream of parent equipment." },
          { "value": "atEquipment", "description": "At equipment level." },
          { "value": "downstream", "description": "Downstream of parent equipment." }
        ]
      }
    }
  },
  "asset": {
    "uuid": {
      "default": null,
      "rules": { "type": "string", "nullable": true, "description": "Asset UUID from asset management system." }
    },
    "tagCode": {
      "default": null,
      "rules": { "type": "string", "nullable": true, "description": "Asset tag code." }
    },
    "supplier": {
      "default": "Unknown",
      "rules": { "type": "string", "description": "Equipment supplier." }
    },
    "category": {
      "default": "sensor",
      "rules": { "type": "string", "description": "Asset category." }
    },
    "type": {
      "default": "Unknown",
      "rules": { "type": "string", "description": "Asset type." }
    },
    "model": {
      "default": "Unknown",
      "rules": { "type": "string", "description": "Equipment model." }
    },
    "unit": {
      "default": "unitless",
      "rules": { "type": "string", "description": "Asset measurement unit." }
    }
  }
}
