{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/electrical.power.agent.input.json",
  "title": "Electric power — agent input",
  "type": "object",
  "$defs": {
    "legacyA": {
      "type": "number",
      "description": "Legacy share-URL alias (V on V×I, R on I²R, E on energy). Prefer named fields."
    },
    "legacyB": {
      "type": "number",
      "description": "Legacy share-URL alias (I on V×I/I²R, Δt on energy). Prefer named fields."
    },
    "V": {
      "type": "number",
      "minimum": 0,
      "description": "Voltage (V); L-L RMS when three-phase"
    },
    "I": {
      "type": "number",
      "minimum": 0,
      "description": "Current (A)"
    },
    "R": {
      "type": "number",
      "minimum": 0,
      "description": "Resistance (Ω) on I²R path"
    },
    "E": {
      "type": "number",
      "minimum": 0,
      "description": "Energy (J) on energy path"
    },
    "dt": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Time interval Δt (s); must be > 0"
    },
    "power_factor": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Total power factor λ in [0, 1]. Omitted defaults to 1. PF=0 is valid (P=0)."
    },
    "phase": {
      "type": "string",
      "enum": [
        "single",
        "three"
      ],
      "description": "Used with power-vi / vi; three = balanced L-L"
    }
  },
  "oneOf": [
    {
      "title": "vi_dc",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "vi_dc",
          "description": "DC real power P = V × I"
        },
        "V": {
          "$ref": "#/$defs/V"
        },
        "I": {
          "$ref": "#/$defs/I"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "V",
            "I"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    },
    {
      "title": "vi_ac_single",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "vi_ac_single",
          "description": "Single-phase AC real power P = V × I × PF"
        },
        "V": {
          "$ref": "#/$defs/V"
        },
        "I": {
          "$ref": "#/$defs/I"
        },
        "power_factor": {
          "$ref": "#/$defs/power_factor"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "V",
            "I"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    },
    {
      "title": "vi_ac_three_phase_ll",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "vi_ac_three_phase_ll",
          "description": "Balanced three-phase L-L real power P = √3 × V × I × PF"
        },
        "V": {
          "$ref": "#/$defs/V"
        },
        "I": {
          "$ref": "#/$defs/I"
        },
        "power_factor": {
          "$ref": "#/$defs/power_factor"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "V",
            "I"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    },
    {
      "title": "i2r",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "i2r",
          "description": "Resistive dissipation P = I²R"
        },
        "I": {
          "$ref": "#/$defs/I"
        },
        "R": {
          "$ref": "#/$defs/R"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "I",
            "R"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    },
    {
      "title": "energy_average",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "energy_average",
          "description": "Average power P = E / Δt"
        },
        "E": {
          "$ref": "#/$defs/E"
        },
        "dt": {
          "$ref": "#/$defs/dt"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "E",
            "dt"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    },
    {
      "title": "power-vi",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "power-vi",
          "description": "UI/REST V×I path; use vi_dc / vi_ac_single / vi_ac_three_phase_ll when possible"
        },
        "V": {
          "$ref": "#/$defs/V"
        },
        "I": {
          "$ref": "#/$defs/I"
        },
        "phase": {
          "$ref": "#/$defs/phase"
        },
        "power_factor": {
          "$ref": "#/$defs/power_factor"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "V",
            "I"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    },
    {
      "title": "vi",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "vi",
          "description": "Alias of power-vi"
        },
        "V": {
          "$ref": "#/$defs/V"
        },
        "I": {
          "$ref": "#/$defs/I"
        },
        "phase": {
          "$ref": "#/$defs/phase"
        },
        "power_factor": {
          "$ref": "#/$defs/power_factor"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "V",
            "I"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    },
    {
      "title": "power-ir",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "power-ir",
          "description": "UI/REST I²R path; prefer i2r"
        },
        "I": {
          "$ref": "#/$defs/I"
        },
        "R": {
          "$ref": "#/$defs/R"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "I",
            "R"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    },
    {
      "title": "power-energy",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "power-energy",
          "description": "UI/REST energy path; prefer energy_average"
        },
        "E": {
          "$ref": "#/$defs/E"
        },
        "dt": {
          "$ref": "#/$defs/dt"
        },
        "a": {
          "$ref": "#/$defs/legacyA"
        },
        "b": {
          "$ref": "#/$defs/legacyB"
        }
      },
      "anyOf": [
        {
          "required": [
            "E",
            "dt"
          ]
        },
        {
          "required": [
            "a",
            "b"
          ]
        }
      ]
    }
  ],
  "description": "Real power in watts from V×I×PF (DC / 1φ / balanced 3φ L-L), from I²R, or average power E/Δt. PF=0 is valid (P=0); blank PF defaults to 1. Δt=0 is INVALID_TIME_INTERVAL.. Mode-discriminated agent contract. Named fields are canonical; a/b are legacy share-URL aliases. (calculation_version 1.3.0)"
}
