{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://devs69.dev/sdetkit/schemas/top-tier-kpi-weekly.v1.json",
  "title": "Top-tier weekly KPI snapshot",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "week_ending",
    "program_status",
    "kpis"
  ],
  "properties": {
    "schema_version": {
      "const": "1.0.0"
    },
    "week_ending": {
      "type": "string",
      "format": "date"
    },
    "program_status": {
      "type": "string",
      "enum": ["green", "amber", "red"]
    },
    "kpis": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "first_time_success_onboarding_rate",
        "median_release_decision_time",
        "failed_release_gate_frequency",
        "rollback_rate",
        "mean_time_to_triage_first_failure",
        "docs_to_adoption_conversion"
      ],
      "properties": {
        "first_time_success_onboarding_rate": {"$ref": "#/$defs/metric"},
        "median_release_decision_time": {"$ref": "#/$defs/metric"},
        "failed_release_gate_frequency": {"$ref": "#/$defs/metric"},
        "rollback_rate": {"$ref": "#/$defs/metric"},
        "mean_time_to_triage_first_failure": {"$ref": "#/$defs/metric"},
        "docs_to_adoption_conversion": {"$ref": "#/$defs/metric"}
      }
    }
  },
  "$defs": {
    "metric": {
      "type": "object",
      "additionalProperties": false,
      "required": ["value", "unit", "sample_size", "quality", "source"],
      "properties": {
        "value": {
          "type": ["number", "string", "null"],
          "description": "Metric value; use null for unavailable and add context in quality/source."
        },
        "unit": {
          "type": "string",
          "examples": ["percent", "count", "minutes", "n/a"]
        },
        "sample_size": {
          "type": ["integer", "null"],
          "minimum": 0
        },
        "quality": {
          "type": "string",
          "enum": ["seed", "provisional", "stable"]
        },
        "source": {
          "type": "string"
        }
      }
    }
  }
}
