{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://playground-ds.no/schemas/okr-set.json",
  "title": "OKR-sett",
  "description": "Et OKR-sett: ett mål (Objective) med 1–6 nøkkelresultater (KR). Brukes av OKR live-writer.",
  "type": "object",
  "required": ["id", "objective", "key_results", "owner", "period"],
  "properties": {
    "id": { "type": "string" },
    "owner": {
      "type": "object",
      "required": ["name", "unit"],
      "properties": {
        "name": { "type": "string" },
        "unit": { "type": "string", "description": "Avdeling/seksjon" },
        "org":  { "type": "string", "description": "Kommune/etat" }
      }
    },
    "period": {
      "type": "object",
      "required": ["kind", "label", "start", "end"],
      "properties": {
        "kind":  { "enum": ["tertial", "kvartal", "halvår", "år"] },
        "label": { "type": "string", "description": "f.eks. 'T2 2026'" },
        "start": { "type": "string", "format": "date" },
        "end":   { "type": "string", "format": "date" }
      }
    },
    "objective": {
      "type": "object",
      "required": ["text"],
      "properties": {
        "text": { "type": "string", "minLength": 10, "maxLength": 240 },
        "rationale": { "type": "string" }
      }
    },
    "key_results": {
      "type": "array", "minItems": 1, "maxItems": 6,
      "items": {
        "type": "object",
        "required": ["id", "text"],
        "properties": {
          "id":   { "type": "string", "pattern": "^KR[0-9]+$" },
          "text": { "type": "string" },
          "metric": {
            "type": "object",
            "properties": {
              "name":     { "type": "string" },
              "unit":     { "type": "string", "description": "%, dager, kr, antall, …" },
              "baseline": { "type": "number" },
              "target":   { "type": "number" },
              "stretch":  { "type": "number" },
              "source":   { "type": "string", "description": "KPI-katalog ref / Tableau-sett / etc." }
            }
          },
          "deadline": { "type": "string", "format": "date" }
        }
      }
    },
    "score": {
      "type": "object",
      "description": "Generert av OKR-writer ved kvalitetsanalyse",
      "properties": {
        "overall":     { "type": "number", "minimum": 0, "maximum": 100 },
        "measurability": { "type": "number" },
        "specificity":   { "type": "number" },
        "ambition":      { "type": "number" },
        "actionability": { "type": "number" }
      }
    },
    "critiques": {
      "type": "array",
      "items": { "$ref": "https://playground-ds.no/schemas/finding.json" }
    },
    "version": { "type": "string", "description": "Semver eller utkast 0.4-stil" },
    "status":  { "enum": ["draft", "in-review", "approved", "active", "closed"], "default": "draft" }
  }
}
