{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/crosstabs-com/json-schema/crosstabs-com-chi-square-response-schema.json",
  "title": "ChiSquareResponse",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/crosstabs-com-openapi.json#/components/schemas/ChiSquareResponse",
  "type": "object",
  "properties": {
    "input": {
      "$ref": "#/$defs/Input"
    },
    "docs": {
      "type": "string",
      "const": "https://www.crosstabs.com/developers"
    },
    "chiSquare": {
      "type": "object",
      "properties": {
        "chiSquare": {
          "type": "number"
        },
        "degreesOfFreedom": {
          "type": "integer"
        },
        "pValue": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "chiSquare",
        "degreesOfFreedom",
        "pValue"
      ]
    },
    "chiSquareYates": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "chiSquare": {
              "type": "number"
            },
            "degreesOfFreedom": {
              "type": "integer"
            },
            "pValue": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          },
          "required": [
            "chiSquare",
            "degreesOfFreedom",
            "pValue"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "gTest": {
      "type": "object",
      "properties": {
        "gStatistic": {
          "type": "number"
        },
        "degreesOfFreedom": {
          "type": "integer"
        },
        "pValue": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "gStatistic",
        "degreesOfFreedom",
        "pValue"
      ]
    },
    "cramersV": {
      "type": "object",
      "properties": {
        "value": {
          "type": "number"
        },
        "label": {
          "type": "string",
          "enum": [
            "negligible",
            "small",
            "medium",
            "large"
          ]
        }
      },
      "required": [
        "value",
        "label"
      ]
    },
    "expected": {
      "type": "object",
      "properties": {
        "min": {
          "type": "number"
        },
        "cellsBelow5": {
          "type": "integer"
        }
      },
      "required": [
        "min",
        "cellsBelow5"
      ]
    },
    "warning": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "input",
    "docs",
    "chiSquare",
    "chiSquareYates",
    "gTest",
    "cramersV",
    "expected",
    "warning"
  ],
  "$defs": {
    "FrequencyMatrix": {
      "type": "array",
      "minItems": 2,
      "maxItems": 12,
      "items": {
        "type": "array",
        "minItems": 2,
        "maxItems": 12,
        "items": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000000
        }
      },
      "description": "Additional runtime constraints: rectangular rows; grand total ≤ 1000000000000; every row and column sum must be positive. Ordinary JSON Schema cannot enforce these cross-cell sums.",
      "x-grand-total-maximum": 1000000000000
    },
    "Input": {
      "type": "object",
      "properties": {
        "table": {
          "$ref": "#/$defs/FrequencyMatrix"
        },
        "n": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000000000000
        },
        "rows": {
          "type": "integer",
          "minimum": 2,
          "maximum": 12
        },
        "cols": {
          "type": "integer",
          "minimum": 2,
          "maximum": 12
        }
      },
      "required": [
        "table",
        "n",
        "rows",
        "cols"
      ]
    }
  }
}