{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/math.scientific_notation/2.0.1/input.json",
  "title": "Scientific notation — input",
  "type": "object",
  "oneOf": [
    {
      "title": "convert",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode",
        "value"
      ],
      "properties": {
        "mode": {
          "const": "convert",
          "description": "Decimal / E / A×10ⁿ → normalized scientific notation"
        },
        "value": {
          "type": [
            "number",
            "string"
          ],
          "description": "Decimal, E-notation, or A×10ⁿ literal. Share-URL alias numInput is not part of this contract.",
          "maxLength": 512
        }
      }
    },
    {
      "title": "engineering",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode",
        "value"
      ],
      "properties": {
        "mode": {
          "const": "engineering",
          "description": "Same parse as convert; primary form uses n ≡ 0 (mod 3)"
        },
        "value": {
          "type": [
            "number",
            "string"
          ],
          "description": "Decimal, E-notation, or A×10ⁿ literal. Share-URL alias numInput is not part of this contract.",
          "maxLength": 512
        }
      }
    },
    {
      "title": "normalize",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode",
        "coef",
        "exp"
      ],
      "properties": {
        "mode": {
          "const": "normalize",
          "description": "Rewrite A×10ⁿ so 1 ≤ |A| < 10 (zero → 0)"
        },
        "coef": {
          "type": [
            "number",
            "string"
          ],
          "description": "Coefficient A. Share-URL alias coefInput is not part of this contract. Decimal token retained until combined conversion; exponent must be an integer within±10000.",
          "maxLength": 512
        },
        "exp": {
          "type": [
            "number",
            "string"
          ],
          "description": "Integer exponent n. Share-URL alias expInput is not part of this contract. Decimal token retained until combined conversion; exponent must be an integer within±10000.",
          "maxLength": 512
        }
      }
    },
    {
      "title": "operate",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mode",
        "op",
        "a",
        "b"
      ],
      "properties": {
        "mode": {
          "const": "operate",
          "description": "±×÷ of two scientific values, then normalize"
        },
        "op": {
          "type": "string",
          "enum": [
            "mul",
            "div",
            "add",
            "sub"
          ]
        },
        "a": {
          "type": [
            "number",
            "string"
          ],
          "description": "Operand A (decimal, E-notation, or A×10ⁿ). Share-URL alias aInput is not part of this contract.",
          "maxLength": 512
        },
        "b": {
          "type": [
            "number",
            "string"
          ],
          "description": "Operand B (decimal, E-notation, or A×10ⁿ). Share-URL alias bInput is not part of this contract.",
          "maxLength": 512
        }
      }
    }
  ],
  "description": "Convert between decimal and scientific/engineering notation; normalize and operate on A×10ⁿ forms. (calculation_version 2.0.1)"
}
