{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/math.complex/1.3.0/input.json",
  "title": "Complex numbers — input",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "mode": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "add(default),sub,mul,div,rect_to_polar,polar_to_rect,conjugate,modulus,power,root,euler; legacy aliases normalized; unknown/empty rejected.",
      "pattern": "^\\s*(?:[aA][dD][dD]|[sS][uU][mM]|\\+|[sS][uU][bB]|[sS][uU][bB][tT][rR][aA][cC][tT]|[mM][iI][nN][uU][sS]|-|[mM][uU][lL]|[mM][uU][lL][tT][iI][pP][lL][yY]|[tT][iI][mM][eE][sS]|\\*|[dD][iI][vV]|[dD][iI][vV][iI][dD][eE]|/|[rR][eE][cC][tT][\\s_-]+[tT][oO][\\s_-]+[pP][oO][lL][aA][rR]|[tT][oO][\\s_-]+[pP][oO][lL][aA][rR]|[pP][oO][lL][aA][rR]|[pP][oO][lL][aA][rR][\\s_-]+[tT][oO][\\s_-]+[rR][eE][cC][tT]|[tT][oO][\\s_-]+[rR][eE][cC][tT]|[rR][eE][cC][tT]|[cC][oO][nN][jJ][uU][gG][aA][tT][eE]|[cC][oO][nN][jJ]|[mM][oO][dD][uU][lL][uU][sS]|[aA][bB][sS]|[mM][aA][gG][nN][iI][tT][uU][dD][eE]|[pP][oO][wW][eE][rR]|[pP][oO][wW]|[zZ][\\s_-]+[pP][oO][wW][\\s_-]+[nN]|[cC][oO][mM][pP][lL][eE][xX][\\s_-]+[pP][oO][wW][eE][rR]|[rR][oO][oO][tT]|[nN][tT][hH][\\s_-]+[rR][oO][oO][tT]|[rR][oO][oO][tT][sS]|[cC][oO][mM][pP][lL][eE][xX][\\s_-]+[rR][oO][oO][tT]|[cC][oO][mM][pP][lL][eE][xX][\\s_-]+[rR][oO][oO][tT][sS]|[dD][eE][\\s_-]+[mM][oO][iI][vV][rR][eE]|[eE][uU][lL][eE][rR]|[eE][uU][lL][eE][rR][\\s_-]+[fF][oO][rR][mM]|[eE][xX][pP][\\s_-]+[iI]|[cC][iI][sS])\\s*$"
    },
    "re": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    },
    "im": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    },
    "re2": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    },
    "im2": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    },
    "r": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    },
    "arg_deg": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024,
      "x-unit": "deg",
      "x-unit-id": "cx:deg",
      "x-quantity-kind": "plane_angle",
      "x-role": "scalar",
      "x-dimension": [
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "x-uuce-unit": {
        "unit_id": "cx:deg",
        "revision": "1.0.0",
        "content_digest": "ebb31e3abee53f3bf57339c87949e1018d141739fba8a07f54c42ebfd219262b",
        "dependency_digest": "eef386126ec6524884c84bab06f2a96996df913376c0ce5ccdaca0e7faf7b9c3",
        "quantity_kind": "plane_angle",
        "dimension": [
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "registry_version": "0.3.0-preview.3",
        "digest_contract": "calculatorx-unit-definition-digests-v2",
        "registry_status": "preview",
        "definition_lifecycle": "candidate",
        "role": "scalar"
      }
    },
    "n": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    },
    "from": {
      "type": "string",
      "pattern": "^\\s*(?:[rR][eE][cC][tT]|[pP][oO][lL][aA][rR])\\s*$"
    },
    "re1": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    },
    "im1": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    },
    "arg": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024,
      "x-unit": "deg",
      "x-unit-id": "cx:deg",
      "x-quantity-kind": "plane_angle",
      "x-role": "scalar",
      "x-dimension": [
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "x-uuce-unit": {
        "unit_id": "cx:deg",
        "revision": "1.0.0",
        "content_digest": "ebb31e3abee53f3bf57339c87949e1018d141739fba8a07f54c42ebfd219262b",
        "dependency_digest": "eef386126ec6524884c84bab06f2a96996df913376c0ce5ccdaca0e7faf7b9c3",
        "quantity_kind": "plane_angle",
        "dimension": [
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "registry_version": "0.3.0-preview.3",
        "digest_contract": "calculatorx-unit-definition-digests-v2",
        "registry_status": "preview",
        "definition_lifecycle": "candidate",
        "role": "scalar"
      }
    },
    "exponent": {
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?$",
      "maxLength": 1024
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "mode": {
            "pattern": "^\\s*(?:[aA][dD][dD]|[sS][uU][mM]|\\+|[sS][uU][bB]|[sS][uU][bB][tT][rR][aA][cC][tT]|[mM][iI][nN][uU][sS]|-|[mM][uU][lL]|[mM][uU][lL][tT][iI][pP][lL][yY]|[tT][iI][mM][eE][sS]|\\*|[dD][iI][vV]|[dD][iI][vV][iI][dD][eE]|/)\\s*$"
          }
        }
      },
      "then": {
        "required": [
          "re2",
          "im2"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "pattern": "^\\s*(?:[pP][oO][wW][eE][rR]|[pP][oO][wW]|[zZ][\\s_-]+[pP][oO][wW][\\s_-]+[nN]|[cC][oO][mM][pP][lL][eE][xX][\\s_-]+[pP][oO][wW][eE][rR]|[rR][oO][oO][tT]|[nN][tT][hH][\\s_-]+[rR][oO][oO][tT]|[rR][oO][oO][tT][sS]|[cC][oO][mM][pP][lL][eE][xX][\\s_-]+[rR][oO][oO][tT]|[cC][oO][mM][pP][lL][eE][xX][\\s_-]+[rR][oO][oO][tT][sS]|[dD][eE][\\s_-]+[mM][oO][iI][vV][rR][eE])\\s*$"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "anyOf": [
          {
            "required": [
              "n"
            ]
          },
          {
            "required": [
              "exponent"
            ]
          }
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "pattern": "^\\s*(?:[pP][oO][lL][aA][rR][\\s_-]+[tT][oO][\\s_-]+[rR][eE][cC][tT]|[tT][oO][\\s_-]+[rR][eE][cC][tT]|[rR][eE][cC][tT])\\s*$"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "r"
        ],
        "anyOf": [
          {
            "required": [
              "arg_deg"
            ]
          },
          {
            "required": [
              "arg"
            ]
          }
        ]
      }
    }
  ],
  "description": "Rectangular and polar complex arithmetic, integer powers, nth roots, and Euler form. Not a CAS. (calculation_version 1.3.0)",
  "x-unit-contract": {
    "protocol": "calculatorx-field-unit-contract-v1",
    "capability_id": "math.complex",
    "registry_version": "0.3.0-preview.3",
    "declaration_scope": "Field/branch declarations only; inactive fields are not asserted to exist. No conversion-engine migration or new numerical certification.",
    "path_format": "Paths relative to inputs or result_detail.value; dot separates properties, * denotes array items, $ denotes a scalar result.",
    "inputs": {
      "arg_deg": {
        "unit": "deg",
        "reference": {
          "unit_id": "cx:deg",
          "revision": "1.0.0",
          "content_digest": "ebb31e3abee53f3bf57339c87949e1018d141739fba8a07f54c42ebfd219262b",
          "dependency_digest": "eef386126ec6524884c84bab06f2a96996df913376c0ce5ccdaca0e7faf7b9c3",
          "quantity_kind": "plane_angle",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "arg": {
        "unit": "deg",
        "reference": {
          "unit_id": "cx:deg",
          "revision": "1.0.0",
          "content_digest": "ebb31e3abee53f3bf57339c87949e1018d141739fba8a07f54c42ebfd219262b",
          "dependency_digest": "eef386126ec6524884c84bab06f2a96996df913376c0ce5ccdaca0e7faf7b9c3",
          "quantity_kind": "plane_angle",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      }
    },
    "outputs": {
      "arg_deg": {
        "unit": "deg",
        "reference": {
          "unit_id": "cx:deg",
          "revision": "1.0.0",
          "content_digest": "ebb31e3abee53f3bf57339c87949e1018d141739fba8a07f54c42ebfd219262b",
          "dependency_digest": "eef386126ec6524884c84bab06f2a96996df913376c0ce5ccdaca0e7faf7b9c3",
          "quantity_kind": "plane_angle",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "roots.*.arg_deg": {
        "unit": "deg",
        "reference": {
          "unit_id": "cx:deg",
          "revision": "1.0.0",
          "content_digest": "ebb31e3abee53f3bf57339c87949e1018d141739fba8a07f54c42ebfd219262b",
          "dependency_digest": "eef386126ec6524884c84bab06f2a96996df913376c0ce5ccdaca0e7faf7b9c3",
          "quantity_kind": "plane_angle",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      }
    },
    "applicability": "Angular fields apply only when present in the selected complex operation; formatted euler/cis strings are not measured fields."
  }
}
