{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openvisual.org/schema/symptom-base/1.0",
  "title": "OVS Symptom Base",
  "description": "Root schema that every OVS symptom type extends via allOf.",
  "type": "object",
  "required": ["ovs_type", "ovs_version", "enabled", "severity", "effective_time_frame"],
  "properties": {
    "ovs_type":    { "type": "string", "description": "Schema type identifier, e.g. ovs:vss-snow" },
    "ovs_version": { "type": "string", "description": "Schema version, e.g. 1.0" },
    "enabled":     { "type": "boolean" },
    "severity":    { "type": "number", "minimum": 0, "maximum": 1, "description": "Normalized severity: 0 = absent, 1 = maximum" },
    "effective_time_frame": {
      "type": "object",
      "oneOf": [
        {
          "required": ["date_time"],
          "properties": {
            "date_time": { "type": "string", "format": "date-time" }
          }
        },
        {
          "required": ["time_interval"],
          "properties": {
            "time_interval": {
              "type": "object",
              "required": ["start_date_time", "end_date_time"],
              "properties": {
                "start_date_time": { "type": "string", "format": "date-time" },
                "end_date_time":   { "type": "string", "format": "date-time" }
              }
            }
          }
        }
      ]
    }
  }
}
