{
  "$defs": {
    "RawPumpingFlow": {
      "additionalProperties": false,
      "description": "Intermediate type for the nested flow bounds sub-object.",
      "properties": {
        "max_m3s": {
          "description": "Maximum pumped flow [m³/s].",
          "format": "double",
          "type": "number"
        },
        "min_m3s": {
          "description": "Minimum pumped flow [m³/s].",
          "format": "double",
          "type": "number"
        }
      },
      "required": [
        "min_m3s",
        "max_m3s"
      ],
      "type": "object"
    },
    "RawPumpingStation": {
      "additionalProperties": false,
      "description": "Intermediate type for a single pumping station entry.",
      "properties": {
        "bus_id": {
          "description": "Bus from which electrical power is consumed.",
          "format": "int32",
          "type": "integer"
        },
        "consumption_mw_per_m3s": {
          "description": "Power consumption rate per unit of pumped flow [MW/(m³/s)].",
          "format": "double",
          "type": "number"
        },
        "destination_hydro_id": {
          "description": "Hydro plant into whose reservoir water is injected.",
          "format": "int32",
          "type": "integer"
        },
        "entry_stage_id": {
          "default": null,
          "description": "Stage index when the station enters service. Absent or null = always exists.",
          "format": "int32",
          "type": [
            "integer",
            "null"
          ]
        },
        "exit_stage_id": {
          "default": null,
          "description": "Stage index when the station is decommissioned. Absent or null = never.",
          "format": "int32",
          "type": [
            "integer",
            "null"
          ]
        },
        "flow": {
          "$ref": "#/$defs/RawPumpingFlow",
          "description": "Nested flow bounds object."
        },
        "id": {
          "description": "Station identifier. Must be unique within the file.",
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "description": "Human-readable station name.",
          "type": "string"
        },
        "source_hydro_id": {
          "description": "Hydro plant from whose reservoir water is extracted.",
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "id",
        "name",
        "bus_id",
        "source_hydro_id",
        "destination_hydro_id",
        "consumption_mw_per_m3s",
        "flow"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Top-level intermediate type for `pumping_stations.json` (serde only, not re-exported).",
  "properties": {
    "$schema": {
      "description": "`$schema` field — informational, not validated.",
      "type": [
        "string",
        "null"
      ]
    },
    "pumping_stations": {
      "description": "Array of pumping station entries.",
      "items": {
        "$ref": "#/$defs/RawPumpingStation"
      },
      "type": "array"
    }
  },
  "required": [
    "pumping_stations"
  ],
  "title": "RawPumpingFile",
  "type": "object"
}