{
  "$schema": "https://breakpilot.app/schemas/policy-set-v1.json",
  "version": "1.1.0",
  "description": "Policy Sets fuer alle deutschen Bundeslaender - Abitur 2025 + Zeugnisse",
  "last_updated": "2025-01-09",

  "defaults": {
    "zk_visibility_mode": "full",
    "eh_visibility_mode": "shared",
    "allow_teacher_uploaded_eh": true,
    "allow_land_uploaded_eh": true,
    "require_rights_confirmation_on_upload": true,
    "require_dual_control_for_official_eh_update": false,
    "third_correction_threshold": 4,
    "final_signoff_role": "fachvorsitz",
    "quote_verbatim_allowed": false,
    "export_template_id": "default"
  },

  "zeugnis_defaults": {
    "require_klassenlehrer_approval": true,
    "require_schulleitung_signoff": true,
    "allow_sekretariat_edit_after_approval": false,
    "konferenz_protokoll_required": true,
    "bemerkungen_require_review": true,
    "fehlzeiten_auto_import": true,
    "kopfnoten_enabled": false,
    "versetzung_auto_calculate": true,
    "export_template_id": "zeugnis_default"
  },

  "policies": {
    "DEFAULT-2025": {
      "bundesland": "DEFAULT",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Fallback Policy fuer alle nicht spezifizierten Konfigurationen",
      "inherits": null,
      "overrides": {}
    },

    "BW-2025-ABITUR": {
      "bundesland": "baden-wuerttemberg",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Baden-Wuerttemberg Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "baden-wuerttemberg-abitur",
        "flags": {
          "pruefungsamt_integration": false,
          "notes": "Zentrale Pruefungsaufgaben vom Kultusministerium"
        }
      }
    },

    "BY-2025-ABITUR": {
      "bundesland": "bayern",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Bayern Abitur 2025 - Semi-blinde Zweitkorrektur",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "zk_visibility_mode": "semi",
        "export_template_id": "bayern-abitur",
        "flags": {
          "isb_integration": false,
          "notes": "ZK sieht Annotationen, aber nicht die vorgeschlagene Note des EK"
        }
      }
    },

    "BE-2025-ABITUR": {
      "bundesland": "berlin",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Berlin Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "berlin-abitur",
        "flags": {
          "senbjf_integration": false
        }
      }
    },

    "BB-2025-ABITUR": {
      "bundesland": "brandenburg",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Brandenburg Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "brandenburg-abitur"
      }
    },

    "HB-2025-ABITUR": {
      "bundesland": "bremen",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Bremen Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "bremen-abitur"
      }
    },

    "HH-2025-ABITUR": {
      "bundesland": "hamburg",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Hamburg Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "hamburg-abitur",
        "flags": {
          "bsb_integration": false
        }
      }
    },

    "HE-2025-ABITUR": {
      "bundesland": "hessen",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Hessen Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "hessen-abitur",
        "flags": {
          "hkm_integration": false
        }
      }
    },

    "MV-2025-ABITUR": {
      "bundesland": "mecklenburg-vorpommern",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Mecklenburg-Vorpommern Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "mecklenburg-vorpommern-abitur"
      }
    },

    "NI-2025-ABITUR": {
      "bundesland": "niedersachsen",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Niedersachsen Abitur 2025 - Hauptpilot",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "niedersachsen-abitur",
        "flags": {
          "mk_integration": true,
          "is_pilot_land": true,
          "notes": "Niedersachsen ist Hauptpilot fuer Breakpilot"
        }
      }
    },

    "NW-2025-ABITUR": {
      "bundesland": "nordrhein-westfalen",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Nordrhein-Westfalen Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "nrw-abitur",
        "flags": {
          "msb_integration": false,
          "notes": "Groesstes Bundesland nach Schuelerzahlen"
        }
      }
    },

    "RP-2025-ABITUR": {
      "bundesland": "rheinland-pfalz",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Rheinland-Pfalz Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "rheinland-pfalz-abitur"
      }
    },

    "SL-2025-ABITUR": {
      "bundesland": "saarland",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Saarland Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "saarland-abitur"
      }
    },

    "SN-2025-ABITUR": {
      "bundesland": "sachsen",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Sachsen Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "sachsen-abitur",
        "flags": {
          "smk_integration": false
        }
      }
    },

    "ST-2025-ABITUR": {
      "bundesland": "sachsen-anhalt",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Sachsen-Anhalt Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "sachsen-anhalt-abitur"
      }
    },

    "SH-2025-ABITUR": {
      "bundesland": "schleswig-holstein",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Schleswig-Holstein Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "schleswig-holstein-abitur"
      }
    },

    "TH-2025-ABITUR": {
      "bundesland": "thueringen",
      "jahr": 2025,
      "fach": null,
      "verfahren": "abitur",
      "description": "Thueringen Abitur 2025",
      "inherits": "DEFAULT-2025",
      "overrides": {
        "export_template_id": "thueringen-abitur"
      }
    }
  },

  "role_permission_matrix": {
    "description": "Standard-Berechtigungsmatrix fuer alle Rollen. Kann durch Policies ueberschrieben werden.",

    "erstkorrektor": {
      "exam_package": ["read", "update", "share_key", "lock"],
      "student_work": ["read", "update"],
      "eh_document": ["read", "upload", "update"],
      "rubric": ["read", "update"],
      "annotation": ["create", "read", "update", "delete"],
      "evaluation": ["create", "read", "update"],
      "report": ["create", "read", "update"],
      "grade_decision": ["create", "read", "update"],
      "export": ["create", "read", "download"],
      "audit_log": ["read"]
    },

    "zweitkorrektor": {
      "exam_package": ["read"],
      "student_work": ["read", "update"],
      "eh_document": ["read"],
      "rubric": ["read"],
      "annotation": ["create", "read", "update"],
      "evaluation": ["create", "read", "update"],
      "report": ["create", "read", "update"],
      "grade_decision": ["create", "read", "update"],
      "export": ["read", "download"],
      "audit_log": ["read"]
    },

    "drittkorrektor": {
      "exam_package": ["read"],
      "student_work": ["read", "update"],
      "eh_document": ["read"],
      "rubric": ["read"],
      "annotation": ["create", "read", "update"],
      "evaluation": ["create", "read", "update"],
      "report": ["create", "read", "update"],
      "grade_decision": ["create", "read", "update"],
      "audit_log": ["read"]
    },

    "fachvorsitz": {
      "tenant": ["read"],
      "namespace": ["read", "update"],
      "exam_package": ["read", "update", "lock", "unlock", "sign_off"],
      "student_work": ["read", "update"],
      "eh_document": ["read", "upload", "update"],
      "rubric": ["read", "update"],
      "annotation": ["read", "update"],
      "evaluation": ["read", "update"],
      "report": ["read", "update"],
      "grade_decision": ["read", "update", "sign_off"],
      "export": ["create", "read", "download"],
      "audit_log": ["read"]
    },

    "pruefungsvorsitz": {
      "tenant": ["read"],
      "namespace": ["read", "create"],
      "exam_package": ["read", "sign_off"],
      "student_work": ["read"],
      "eh_document": ["read"],
      "grade_decision": ["read", "sign_off"],
      "export": ["create", "read", "download"],
      "audit_log": ["read"]
    },

    "schul_admin": {
      "tenant": ["read", "update"],
      "namespace": ["create", "read", "update", "delete"],
      "exam_package": ["create", "read", "delete", "assign_role"],
      "eh_document": ["read", "upload", "delete"],
      "audit_log": ["read"]
    },

    "land_admin": {
      "tenant": ["read"],
      "eh_document": ["read", "upload", "update", "delete", "publish_official"],
      "audit_log": ["read"]
    },

    "auditor": {
      "audit_log": ["read"],
      "exam_package": ["read"]
    },

    "operator": {
      "tenant": ["read"],
      "namespace": ["read"],
      "exam_package": ["read"],
      "audit_log": ["read"]
    },

    "teacher_assistant": {
      "student_work": ["read"],
      "annotation": ["create", "read"],
      "eh_document": ["read"]
    },

    "exam_author": {
      "eh_document": ["create", "read", "update", "delete"],
      "rubric": ["create", "read", "update", "delete"]
    },

    "fachlehrer": {
      "fachnote": ["create", "read", "update"],
      "schueler_daten": ["read"],
      "zeugnis_entwurf": ["read"],
      "bemerkung": ["create", "read", "update"],
      "audit_log": ["read"]
    },

    "klassenlehrer": {
      "zeugnis": ["create", "read", "update"],
      "zeugnis_entwurf": ["create", "read", "update", "delete"],
      "zeugnis_vorlage": ["read"],
      "schueler_daten": ["read", "update"],
      "fachnote": ["read", "update"],
      "kopfnote": ["create", "read", "update"],
      "fehlzeiten": ["read", "update"],
      "bemerkung": ["create", "read", "update", "delete"],
      "versetzung": ["read", "update"],
      "audit_log": ["read"]
    },

    "stufenleitung": {
      "zeugnis": ["read", "update"],
      "zeugnis_entwurf": ["read", "update"],
      "schueler_daten": ["read"],
      "fachnote": ["read"],
      "kopfnote": ["read", "update"],
      "fehlzeiten": ["read"],
      "bemerkung": ["read", "update"],
      "versetzung": ["read", "update", "approve"],
      "konferenz_beschluss": ["read", "create"],
      "audit_log": ["read"]
    },

    "zeugnisbeauftragter": {
      "zeugnis": ["read", "update", "approve"],
      "zeugnis_entwurf": ["read", "update"],
      "zeugnis_vorlage": ["create", "read", "update", "delete"],
      "schueler_daten": ["read"],
      "fachnote": ["read"],
      "kopfnote": ["read"],
      "fehlzeiten": ["read", "update"],
      "bemerkung": ["read"],
      "versetzung": ["read"],
      "konferenz_beschluss": ["read"],
      "audit_log": ["read"]
    },

    "schulleitung": {
      "zeugnis": ["read", "sign_off"],
      "zeugnis_entwurf": ["read"],
      "zeugnis_vorlage": ["read", "approve"],
      "schueler_daten": ["read"],
      "fachnote": ["read"],
      "kopfnote": ["read"],
      "fehlzeiten": ["read"],
      "bemerkung": ["read"],
      "versetzung": ["read", "sign_off"],
      "konferenz_beschluss": ["read", "sign_off"],
      "audit_log": ["read"]
    },

    "sekretariat": {
      "zeugnis": ["read", "export", "print"],
      "schueler_daten": ["read", "update"],
      "fehlzeiten": ["create", "read", "update"],
      "audit_log": ["read"]
    }
  },

  "visibility_rules": {
    "blind": {
      "description": "ZK sieht keine EK-Outputs (Note, Gutachten)",
      "zk_can_see_ek_annotations": false,
      "zk_can_see_ek_evaluation": false,
      "zk_can_see_ek_report": false,
      "zk_can_see_ek_grade": false
    },
    "semi": {
      "description": "ZK sieht Annotationen, aber keine Note/Gutachten",
      "zk_can_see_ek_annotations": true,
      "zk_can_see_ek_evaluation": false,
      "zk_can_see_ek_report": false,
      "zk_can_see_ek_grade": false
    },
    "full": {
      "description": "ZK sieht alles vom EK",
      "zk_can_see_ek_annotations": true,
      "zk_can_see_ek_evaluation": true,
      "zk_can_see_ek_report": true,
      "zk_can_see_ek_grade": true
    }
  },

  "key_share_scopes": {
    "full": {
      "description": "Voller Zugriff auf alle verschluesselten Inhalte",
      "permissions": ["read_original", "read_eh", "read_ek_outputs", "read_zk_outputs", "write_annotations"]
    },
    "original_only": {
      "description": "Nur Zugriff auf Original (Schuelerarbeit)",
      "permissions": ["read_original"]
    },
    "eh_only": {
      "description": "Nur Zugriff auf Erwartungshorizont",
      "permissions": ["read_eh"]
    },
    "outputs_only": {
      "description": "Nur Zugriff auf Korrekturergebnisse",
      "permissions": ["read_ek_outputs", "read_zk_outputs"]
    },
    "blind_zk": {
      "description": "Zugriff fuer blinde Zweitkorrektur",
      "permissions": ["read_original", "read_eh", "write_annotations"]
    }
  },

  "workflows": {
    "standard_correction": {
      "description": "Standard-Korrekturablauf",
      "steps": [
        {
          "name": "upload",
          "actor": "erstkorrektor",
          "actions": ["upload_student_work", "upload_eh"]
        },
        {
          "name": "first_correction",
          "actor": "erstkorrektor",
          "actions": ["annotate", "evaluate", "create_report", "set_grade"]
        },
        {
          "name": "share_to_zk",
          "actor": "erstkorrektor",
          "actions": ["share_key", "assign_role"]
        },
        {
          "name": "second_correction",
          "actor": "zweitkorrektor",
          "actions": ["annotate", "evaluate", "create_report", "set_grade"]
        },
        {
          "name": "grade_agreement",
          "actors": ["erstkorrektor", "zweitkorrektor"],
          "actions": ["agree_final_grade"]
        },
        {
          "name": "third_correction",
          "condition": "grade_deviation >= third_correction_threshold",
          "actor": "drittkorrektor",
          "actions": ["annotate", "evaluate", "create_report", "set_final_grade"]
        },
        {
          "name": "sign_off",
          "actor": "fachvorsitz",
          "actions": ["review", "sign_off"]
        },
        {
          "name": "final_approval",
          "actor": "pruefungsvorsitz",
          "actions": ["final_sign_off", "export"]
        }
      ]
    },

    "zeugnis_halbjahr": {
      "description": "Workflow fuer Halbjahreszeugnis",
      "verfahren": "halbjahreszeugnis",
      "steps": [
        {
          "name": "noten_eingabe",
          "actor": "fachlehrer",
          "actions": ["create_fachnote", "update_fachnote"],
          "deadline_days": -14,
          "description": "Fachlehrer tragen Noten ein"
        },
        {
          "name": "entwurf_erstellen",
          "actor": "klassenlehrer",
          "actions": ["create_zeugnis_entwurf", "add_bemerkung", "add_kopfnote", "update_fehlzeiten"],
          "deadline_days": -7,
          "description": "Klassenlehrer erstellt Zeugnisentwurf"
        },
        {
          "name": "entwurf_pruefen",
          "actor": "zeugnisbeauftragter",
          "actions": ["review_zeugnis", "update_zeugnis", "approve_zeugnis"],
          "deadline_days": -5,
          "description": "Zeugnisbeauftragter prueft formale Korrektheit"
        },
        {
          "name": "schulleitung_signoff",
          "actor": "schulleitung",
          "actions": ["review_zeugnis", "sign_off_zeugnis"],
          "deadline_days": -3,
          "description": "Schulleitung unterschreibt"
        },
        {
          "name": "druck_ausgabe",
          "actor": "sekretariat",
          "actions": ["print_zeugnis", "export_zeugnis"],
          "deadline_days": 0,
          "description": "Sekretariat druckt und gibt aus"
        }
      ]
    },

    "zeugnis_jahresende": {
      "description": "Workflow fuer Jahreszeugnis mit Versetzungsentscheidung",
      "verfahren": "jahreszeugnis",
      "steps": [
        {
          "name": "noten_eingabe",
          "actor": "fachlehrer",
          "actions": ["create_fachnote", "update_fachnote"],
          "deadline_days": -21,
          "description": "Fachlehrer tragen Jahresnoten ein"
        },
        {
          "name": "versetzung_vorbereiten",
          "actor": "klassenlehrer",
          "actions": ["calculate_versetzung", "prepare_konferenz"],
          "deadline_days": -14,
          "description": "Klassenlehrer bereitet Versetzungsentscheidung vor"
        },
        {
          "name": "zeugniskonferenz",
          "actor": "stufenleitung",
          "actions": ["create_konferenz_beschluss", "approve_versetzung"],
          "deadline_days": -10,
          "description": "Zeugniskonferenz tagt und entscheidet"
        },
        {
          "name": "entwurf_erstellen",
          "actor": "klassenlehrer",
          "actions": ["create_zeugnis_entwurf", "add_bemerkung", "add_kopfnote", "update_fehlzeiten", "set_versetzung"],
          "deadline_days": -7,
          "description": "Klassenlehrer erstellt finalen Zeugnisentwurf"
        },
        {
          "name": "entwurf_pruefen",
          "actor": "zeugnisbeauftragter",
          "actions": ["review_zeugnis", "update_zeugnis", "approve_zeugnis"],
          "deadline_days": -5,
          "description": "Zeugnisbeauftragter prueft formale Korrektheit"
        },
        {
          "name": "schulleitung_signoff",
          "actor": "schulleitung",
          "actions": ["review_zeugnis", "sign_off_versetzung", "sign_off_zeugnis"],
          "deadline_days": -3,
          "description": "Schulleitung unterschreibt Zeugnis und Versetzung"
        },
        {
          "name": "druck_ausgabe",
          "actor": "sekretariat",
          "actions": ["print_zeugnis", "export_zeugnis", "archive_zeugnis"],
          "deadline_days": 0,
          "description": "Sekretariat druckt, archiviert und gibt aus"
        }
      ]
    },

    "zeugnis_abschluss": {
      "description": "Workflow fuer Abschlusszeugnis (Abitur, MSA, etc.)",
      "verfahren": "abschlusszeugnis",
      "steps": [
        {
          "name": "pruefungsnoten_eintragen",
          "actor": "fachlehrer",
          "actions": ["create_fachnote", "update_fachnote"],
          "deadline_days": -14,
          "description": "Pruefungsnoten werden eingetragen"
        },
        {
          "name": "gesamtqualifikation",
          "actor": "stufenleitung",
          "actions": ["calculate_gesamtnote", "verify_zulassung"],
          "deadline_days": -10,
          "description": "Berechnung der Gesamtqualifikation"
        },
        {
          "name": "pruefungsausschuss",
          "actor": "pruefungsvorsitz",
          "actions": ["create_konferenz_beschluss", "approve_abschluss"],
          "deadline_days": -7,
          "description": "Pruefungsausschuss bestaetigt Abschluss"
        },
        {
          "name": "zeugnis_erstellen",
          "actor": "zeugnisbeauftragter",
          "actions": ["create_zeugnis", "add_abschluss_bemerkung"],
          "deadline_days": -5,
          "description": "Abschlusszeugnis wird erstellt"
        },
        {
          "name": "schulleitung_signoff",
          "actor": "schulleitung",
          "actions": ["review_zeugnis", "sign_off_zeugnis"],
          "deadline_days": -3,
          "description": "Schulleitung unterschreibt"
        },
        {
          "name": "aushändigung",
          "actor": "sekretariat",
          "actions": ["print_zeugnis", "create_beglaubigte_kopie", "archive_zeugnis"],
          "deadline_days": 0,
          "description": "Feierliche Uebergabe und Archivierung"
        }
      ]
    },

    "zeugnis_abgang": {
      "description": "Workflow fuer Abgangszeugnis bei Schulwechsel",
      "verfahren": "abgangszeugnis",
      "steps": [
        {
          "name": "aktuelle_noten",
          "actor": "fachlehrer",
          "actions": ["create_fachnote"],
          "deadline_days": -3,
          "description": "Aktuelle Noten werden ermittelt"
        },
        {
          "name": "zeugnis_erstellen",
          "actor": "klassenlehrer",
          "actions": ["create_zeugnis_entwurf", "add_bemerkung"],
          "deadline_days": -2,
          "description": "Abgangszeugnis wird erstellt"
        },
        {
          "name": "schnell_pruefung",
          "actor": "zeugnisbeauftragter",
          "actions": ["review_zeugnis", "approve_zeugnis"],
          "deadline_days": -1,
          "description": "Verkuerzte Pruefung"
        },
        {
          "name": "signoff_ausgabe",
          "actor": "schulleitung",
          "actions": ["sign_off_zeugnis", "export_zeugnis"],
          "deadline_days": 0,
          "description": "Unterschrift und sofortige Ausgabe"
        }
      ]
    }
  },

  "verfahren_types": {
    "description": "Unterstuetzte Verfahrenstypen",
    "exam": {
      "abitur": {
        "label": "Abiturpruefung",
        "workflow": "standard_correction"
      },
      "vorabitur": {
        "label": "Vorabiturklausur",
        "workflow": "standard_correction"
      },
      "klausur": {
        "label": "Regulaere Klausur",
        "workflow": "standard_correction"
      }
    },
    "certificate": {
      "halbjahreszeugnis": {
        "label": "Halbjahreszeugnis",
        "workflow": "zeugnis_halbjahr"
      },
      "jahreszeugnis": {
        "label": "Jahreszeugnis",
        "workflow": "zeugnis_jahresende"
      },
      "abschlusszeugnis": {
        "label": "Abschlusszeugnis (Abitur, MSA)",
        "workflow": "zeugnis_abschluss"
      },
      "abgangszeugnis": {
        "label": "Abgangszeugnis",
        "workflow": "zeugnis_abgang"
      }
    }
  }
}
