{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/math.transform.z.input.json",
  "title": "Z transform — input",
  "type": "object",
  "properties": {
    "z": {
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^\\s*[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?\\s*$"
            }
          ],
          "description": "Finite decimal; nonzero text underflow rejected before binary64 conversion."
        },
        {
          "type": "string",
          "pattern": "^\\s*$"
        }
      ]
    },
    "n": {
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 64
            },
            {
              "type": "string",
              "pattern": "^\\s*[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?\\s*$"
            }
          ],
          "description": "Causal integer0–64; decimal strings validated for exact integer value by engine."
        },
        {
          "type": "string",
          "pattern": "^\\s*$"
        }
      ]
    },
    "a": {
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^\\s*[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?\\s*$"
            }
          ],
          "description": "Finite decimal; nonzero text underflow rejected before binary64 conversion."
        },
        {
          "type": "string",
          "pattern": "^\\s*$"
        }
      ],
      "description": "Absent or blank uses default (a=.5, omega=1); null is invalid."
    },
    "omega": {
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^\\s*[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?\\s*$"
            }
          ],
          "description": "Finite decimal; nonzero text underflow rejected before binary64 conversion."
        },
        {
          "type": "string",
          "pattern": "^\\s*$"
        }
      ],
      "description": "Absent or blank uses default (a=.5, omega=1); null is invalid."
    },
    "w": {
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^\\s*[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?\\s*$"
            }
          ],
          "description": "Finite decimal; nonzero text underflow rejected before binary64 conversion."
        },
        {
          "type": "string",
          "pattern": "^\\s*$"
        }
      ],
      "description": "Absent or blank uses default (a=.5, omega=1); null is invalid."
    },
    "mode": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Named table token; case/space/hyphen normalized; aliases must agree. z|forward|z_transform|ztransform|analysis|z_domain; inverse|inverse_z|iz|iztransform|n_domain|synthesis"
    },
    "method": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Named table token; case/space/hyphen normalized; aliases must agree. z|forward|z_transform|ztransform|analysis|z_domain; inverse|inverse_z|iz|iztransform|n_domain|synthesis"
    },
    "f": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Named table token; case/space/hyphen normalized; aliases must agree. geom|step|ramp|n_geom|sin|cos|geom_sin|geom_cos and published aliases"
    },
    "pair": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Named table token; case/space/hyphen normalized; aliases must agree. geom|step|ramp|n_geom|sin|cos|geom_sin|geom_cos and published aliases"
    },
    "sequence": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Named table token; case/space/hyphen normalized; aliases must agree. geom|step|ramp|n_geom|sin|cos|geom_sin|geom_cos and published aliases"
    }
  },
  "additionalProperties": false,
  "allOf": [
    {
      "if": {
        "anyOf": [
          {
            "required": [
              "mode"
            ],
            "properties": {
              "mode": {
                "pattern": "^\\s*(?:[Ii][Nn][Vv][Ee][Rr][Ss][Ee](?:[-_\\s]+[Zz])?|[Ii][Zz](?:[Tt][Rr][Aa][Nn][Ss][Ff][Oo][Rr][Mm])?|[Nn][-_\\s]+[Dd][Oo][Mm][Aa][Ii][Nn]|[Ss][Yy][Nn][Tt][Hh][Ee][Ss][Ii][Ss])\\s*$"
              }
            }
          },
          {
            "required": [
              "method"
            ],
            "properties": {
              "method": {
                "pattern": "^\\s*(?:[Ii][Nn][Vv][Ee][Rr][Ss][Ee](?:[-_\\s]+[Zz])?|[Ii][Zz](?:[Tt][Rr][Aa][Nn][Ss][Ff][Oo][Rr][Mm])?|[Nn][-_\\s]+[Dd][Oo][Mm][Aa][Ii][Nn]|[Ss][Yy][Nn][Tt][Hh][Ee][Ss][Ii][Ss])\\s*$"
              }
            }
          }
        ]
      },
      "then": {
        "required": [
          "n"
        ],
        "properties": {
          "n": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 64
              },
              {
                "type": "string",
                "pattern": "^\\s*[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?\\s*$"
              }
            ],
            "description": "Causal integer0–64; decimal strings validated for exact integer value by engine."
          }
        }
      },
      "else": {
        "required": [
          "z"
        ],
        "properties": {
          "z": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^\\s*[+\\-−–—]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+\\-]?\\d+)?\\s*$"
              }
            ],
            "description": "Finite decimal; nonzero text underflow rejected before binary64 conversion."
          }
        }
      }
    }
  ],
  "description": "Unilateral real causal table. Active z/n required; inverse integer n0–64; forward |z| above conservative ROC radius. Inactive blank coordinate omitted by normalization. Omitted mode/f defaults z/geom. Secondary engine validation enforces numeric finiteness, token/domain/integer/alias agreement. (calculation_version 1.0.5)"
}
