{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "tax_year": {
      "type": "integer",
      "minimum": 1900,
      "maximum": 2200
    },
    "filing_channel": {
      "type": "string",
      "enum": [
        "FIRE",
        "IRIS_PORTAL",
        "IRIS_A2A",
        "THIRD_PARTY"
      ]
    },
    "form_types": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "1099-NEC",
          "1099-MISC",
          "1099-K",
          "W-2",
          "W-3"
        ]
      },
      "minItems": 1,
      "maxItems": 5,
      "uniqueItems": true
    },
    "volume_by_form": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "1099-NEC": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "1099-MISC": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "1099-K": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "W-2": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "W-3": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        }
      },
      "required": []
    },
    "tcc_status": {
      "type": "string",
      "enum": [
        "absent",
        "pending",
        "active",
        "unknown"
      ]
    },
    "readiness_flags": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "portal_tcc_confirmed": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "a2a_tcc_confirmed": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "portal_access_ready": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "portal_batch_plan_ready": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "fire_test_required": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "ir_application_change_required": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "schema_package_acquired": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "corrections_required": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "third_party_iris_support_confirmed": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        }
      },
      "required": []
    },
    "software_vendor_support": {
      "type": "string",
      "enum": [
        "yes",
        "no",
        "unknown"
      ]
    },
    "api_client_ready": {
      "type": "string",
      "enum": [
        "yes",
        "no",
        "unknown"
      ]
    },
    "ats_status": {
      "type": "string",
      "enum": [
        "passed",
        "pending",
        "unknown"
      ]
    },
    "schema_version": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 24,
          "pattern": "^(?:TY2026-)?v?[0-9]{1,2}\\.[0-9]{1,2}(?:\\.[0-9]{1,2})?$"
        },
        {
          "type": "null"
        }
      ]
    },
    "correction_years": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1900,
        "maximum": 2200
      },
      "minItems": 0,
      "maxItems": 10,
      "uniqueItems": true
    }
  },
  "required": [
    "tax_year",
    "filing_channel",
    "form_types",
    "volume_by_form",
    "tcc_status",
    "readiness_flags"
  ],
  "allOf": [
    {
      "if": {
        "properties": {
          "form_types": {
            "type": "array",
            "contains": {
              "const": "1099-NEC"
            }
          }
        }
      },
      "then": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "1099-NEC": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000000
              }
            },
            "required": [
              "1099-NEC"
            ]
          }
        }
      },
      "else": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "1099-NEC": false
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "form_types": {
            "type": "array",
            "contains": {
              "const": "1099-MISC"
            }
          }
        }
      },
      "then": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "1099-MISC": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000000
              }
            },
            "required": [
              "1099-MISC"
            ]
          }
        }
      },
      "else": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "1099-MISC": false
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "form_types": {
            "type": "array",
            "contains": {
              "const": "1099-K"
            }
          }
        }
      },
      "then": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "1099-K": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000000
              }
            },
            "required": [
              "1099-K"
            ]
          }
        }
      },
      "else": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "1099-K": false
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "form_types": {
            "type": "array",
            "contains": {
              "const": "W-2"
            }
          }
        }
      },
      "then": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "W-2": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000000
              }
            },
            "required": [
              "W-2"
            ]
          }
        }
      },
      "else": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "W-2": false
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "form_types": {
            "type": "array",
            "contains": {
              "const": "W-3"
            }
          }
        }
      },
      "then": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "W-3": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000000
              }
            },
            "required": [
              "W-3"
            ]
          }
        }
      },
      "else": {
        "properties": {
          "volume_by_form": {
            "type": "object",
            "properties": {
              "W-3": false
            }
          }
        }
      }
    }
  ]
}
