{
  "general": {
    "name": {
      "default": "Diffuser",
      "rules": {
        "type": "string",
        "description": "A human-readable name for this diffuser zone."
      }
    },
    "id": {
      "default": null,
      "rules": {
        "type": "string",
        "nullable": true,
        "description": "Unique identifier for this diffuser node."
      }
    },
    "unit": {
      "default": "Nm3/h",
      "rules": {
        "type": "string",
        "description": "Default airflow unit for this diffuser."
      }
    },
    "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": "diffuser",
      "rules": {
        "type": "string",
        "description": "Software type identifier for parent-child registration."
      }
    },
    "role": {
      "default": "Aeration diffuser",
      "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." }
        ]
      }
    }
  },
  "diffuser": {
    "number": {
      "default": 1,
      "rules": {
        "type": "number",
        "description": "Sequential diffuser zone number."
      }
    },
    "elements": {
      "default": 1,
      "rules": {
        "type": "number",
        "description": "Number of diffuser elements in the zone."
      }
    },
    "density": {
      "default": 2.4,
      "rules": {
        "type": "number",
        "description": "Installed diffuser density per square meter."
      }
    },
    "waterHeight": {
      "default": 0,
      "rules": {
        "type": "number",
        "description": "Water column height above the diffuser."
      }
    },
    "alfaFactor": {
      "default": 0.7,
      "rules": {
        "type": "number",
        "description": "Alpha factor used for oxygen transfer correction."
      }
    },
    "headerPressure": {
      "default": 0,
      "rules": {
        "type": "number",
        "description": "Header gauge pressure above atmospheric (mbar)."
      }
    },
    "localAtmPressure": {
      "default": 1013.25,
      "rules": {
        "type": "number",
        "description": "Local atmospheric pressure (mbar)."
      }
    },
    "waterDensity": {
      "default": 997,
      "rules": {
        "type": "number",
        "description": "Water density used in head-pressure calculation (kg/m3)."
      }
    },
    "zoneVolume": {
      "default": 0,
      "rules": {
        "type": "number",
        "description": "Aeration zone volume used to convert oxygen output to reactor OTR (m3)."
      }
    }
  }
}
