<?php
/**
 * Content-Architektur: Schema + Initialdaten
 * ------------------------------------------
 * Legt die Tabellen an, die die oeffentlichen Modul-Detailseiten und die
 * Lehrplan-Uebersicht befuellen:
 *
 *   - module_info          (Metadaten pro Simulation)
 *   - kompetenzen          (didaktische Kompetenzbereiche)
 *   - kompetenz_modules    (N:M Kompetenz <-> Modul [+ optional Level])
 *   - lehrplan_anchors     (Lehrplan-Anker AT/DE/CH/LI je Kompetenz)
 *
 * Idempotent: CREATE TABLE IF NOT EXISTS + INSERT ... ON DUPLICATE KEY UPDATE.
 * Umlautsicher: PHP/PDO + utf8mb4 (NICHT via mysql.exe aufrufen!).
 *
 * Aufruf:  c:\xampp\php\php.exe App/php/seed_content_architecture.php
 */

require_once __DIR__ . '/config/app.php';
require_once __DIR__ . '/config/db.php';

$db = getDB();

echo "=== Content-Architektur Seed ===\n";

// ------------------------------------------------------------------
// 0. Country-Spalten (Landeinstellung-Kaskade) idempotent ergaenzen
// ------------------------------------------------------------------
// Auflösung: students.country? (optional) → classes → teachers → Cookie → AT
// Schreibend nutzt nur Profil-Admin; Lese-Resolver in App/php/lib/Country.php
$countryTargets = [
    'teachers'         => 'country CHAR(2) NULL DEFAULT NULL AFTER email',
    'classes'          => 'country CHAR(2) NULL DEFAULT NULL',
    'student_sessions' => 'country CHAR(2) NULL DEFAULT NULL',
];
foreach ($countryTargets as $tbl => $def) {
    try {
        $exists = $db->query("SHOW COLUMNS FROM `$tbl` LIKE 'country'")->fetch();
        if (!$exists) {
            $db->exec("ALTER TABLE `$tbl` ADD COLUMN $def");
            echo "  $tbl: Spalte country ergaenzt\n";
        }
    } catch (Throwable $e) {
        echo "  $tbl: Hinweis — " . $e->getMessage() . "\n";
    }
}


// ------------------------------------------------------------------
// 1. Tabellen
// ------------------------------------------------------------------

$db->exec("
CREATE TABLE IF NOT EXISTS module_info (
  module_id     VARCHAR(16)  NOT NULL PRIMARY KEY,
  title         VARCHAR(128) NOT NULL,
  subtitle      VARCHAR(255) NULL,
  short_desc    TEXT         NULL,
  long_desc     MEDIUMTEXT   NULL,
  learning_goals MEDIUMTEXT  NULL,          -- JSON-Array mit Lernziel-Strings
  short_desc_easy     TEXT       NULL,      -- Leichte-Sprache-Variante (Fallback: short_desc)
  long_desc_easy      MEDIUMTEXT NULL,      -- Leichte-Sprache-Variante
  learning_goals_easy MEDIUMTEXT NULL,      -- JSON-Array Leichte-Sprache
  duration_min  INT UNSIGNED NULL,
  age_min       TINYINT UNSIGNED NULL,
  age_max       TINYINT UNSIGNED NULL,
  icon          VARCHAR(16)  NULL,
  card_image    VARCHAR(255) NULL,
  page_url      VARCHAR(128) NULL,          -- Link zur Detailseite (z.B. 'modul-klima')
  play_url      VARCHAR(128) NULL,          -- Link zum Spielen (z.B. 'klima-2d')
  status        ENUM('aktiv','beta','geplant','archiv') NOT NULL DEFAULT 'beta',
  sort_order    INT DEFAULT 0,
  created_at    TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at    TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
");
// Easy-Spalten nachtraeglich hinzufuegen (idempotent)
foreach (['short_desc_easy TEXT', 'long_desc_easy MEDIUMTEXT', 'learning_goals_easy MEDIUMTEXT'] as $colDef) {
    [$col] = explode(' ', $colDef, 2);
    $exists = $db->query("SHOW COLUMNS FROM module_info LIKE '$col'")->fetch();
    if (!$exists) {
        $db->exec("ALTER TABLE module_info ADD COLUMN $colDef NULL AFTER learning_goals");
        echo "  module_info: Spalte $col nachtraeglich ergaenzt\n";
    }
}
echo "  module_info ... OK\n";

$db->exec("
CREATE TABLE IF NOT EXISTS kompetenzen (
  id          INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  key_slug    VARCHAR(64)  NOT NULL UNIQUE,
  title       VARCHAR(128) NOT NULL,
  description MEDIUMTEXT   NULL,
  category    VARCHAR(32)  NULL,       -- 'klima' | 'raum' | 'gesellschaft' | 'natur'
  age_min     TINYINT UNSIGNED NULL,
  age_max     TINYINT UNSIGNED NULL,
  sort_order  INT DEFAULT 0,
  created_at  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
");
echo "  kompetenzen ... OK\n";

// level=0 => gilt fuer alle Level des Moduls; 1/2/3 => nur dieses Level
$db->exec("
CREATE TABLE IF NOT EXISTS kompetenz_modules (
  kompetenz_id INT UNSIGNED NOT NULL,
  module_id    VARCHAR(16)  NOT NULL,
  level        TINYINT UNSIGNED NOT NULL DEFAULT 0,
  strength     ENUM('primaer','sekundaer') NOT NULL DEFAULT 'primaer',
  PRIMARY KEY (kompetenz_id, module_id, level),
  KEY (module_id),
  CONSTRAINT fk_km_kompetenz FOREIGN KEY (kompetenz_id) REFERENCES kompetenzen(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
");
echo "  kompetenz_modules ... OK\n";

$db->exec("
CREATE TABLE IF NOT EXISTS lehrplan_anchors (
  id            INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  kompetenz_id  INT UNSIGNED NOT NULL,
  country       CHAR(2)      NOT NULL,                -- AT / DE / CH / LI
  region        VARCHAR(64)  NULL,                    -- Bundesland / Kanton
  school_type   VARCHAR(48)  NULL,                    -- 'MS', 'AHS-U', 'Gym Sek I', 'VS'
  grade         VARCHAR(32)  NULL,                    -- 'Kl. 8', '7.-8. Schulstufe'
  subject       VARCHAR(64)  NULL,                    -- 'GW', 'GL', 'NMG', 'RZG'
  title         VARCHAR(255) NOT NULL,
  reference     VARCHAR(255) NULL,                    -- Offizielle Referenz (Textform)
  reference_url VARCHAR(512) NULL,                    -- Direkt-Link zum aktuellen Lehrplan
  quote         TEXT         NULL,                    -- Zitat
  sort_order    INT DEFAULT 0,
  created_at    TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY (kompetenz_id),
  KEY (country, school_type),
  CONSTRAINT fk_la_kompetenz FOREIGN KEY (kompetenz_id) REFERENCES kompetenzen(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
");

// reference_url nachtraeglich hinzufuegen, falls die Tabelle bereits ohne Spalte existiert
$hasRefUrl = $db->query("SHOW COLUMNS FROM lehrplan_anchors LIKE 'reference_url'")->fetch();
if (!$hasRefUrl) {
    $db->exec("ALTER TABLE lehrplan_anchors ADD COLUMN reference_url VARCHAR(512) NULL AFTER reference");
    echo "  lehrplan_anchors: Spalte reference_url nachtraeglich ergaenzt\n";
}

// anchor_type: 'fach' | 'uebergreifendes_thema' | 'anderes_fach'
// 'fach'                 = Kern-Fachbezug (GW, Erdkunde, Geographie, RZG)
// 'uebergreifendes_thema'= Querschnittsthema laut Lehrplan (z.B. Umweltbildung, Politische Bildung)
// 'anderes_fach'         = Anknuepfungspunkt in weiterem Fach (Bio, Chemie, Physik, Mathe, GSP)
$hasAnchorType = $db->query("SHOW COLUMNS FROM lehrplan_anchors LIKE 'anchor_type'")->fetch();
if (!$hasAnchorType) {
    $db->exec("ALTER TABLE lehrplan_anchors ADD COLUMN anchor_type VARCHAR(32) NOT NULL DEFAULT 'fach' AFTER country");
    $db->exec("ALTER TABLE lehrplan_anchors ADD KEY idx_anchor_type (anchor_type)");
    echo "  lehrplan_anchors: Spalte anchor_type ergaenzt\n";
}
echo "  lehrplan_anchors ... OK\n\n";


// ------------------------------------------------------------------
// 2. module_info — 8 Module
// ------------------------------------------------------------------

// Easy-Texte fuer Leichte Sprache (Merkregel: kurze Saetze, aktiv, einfache Worte)
$EASY = [
    'klima' => [
        'short' => 'Du spielst die Bürgermeisterin einer Stadt auf einer Insel. Die Stadt wird vom Klimawandel bedroht. Du triffst Entscheidungen. Du baust Solaranlagen und Deiche.',
        'long'  => "Das Spiel dauert 30 Jahre.\nJedes Jahr triffst du eine Entscheidung.\nDu kannst Windräder oder Solaranlagen bauen.\nSo sinkt der CO₂-Ausstoss.\nDu kannst Deiche bauen.\nSo schützt du die Küste.\nDu musst auch auf das Geld achten.\nDu siehst jedes Jahr, wie es der Stadt geht.",
        'goals' => '["Du lernst, was der Klimawandel ist.","Du lernst, wie Wind und Sonne Strom machen.","Du lernst, was ein Deich macht.","Du lernst, wie man zwischen Umwelt und Geld entscheidet."]',
    ],
    'fluss' => [
        'short' => 'Du passt auf einen Fluss auf. Der Fluss kann Hochwasser bekommen. Du triffst Entscheidungen. Du baust Dämme oder lässt dem Fluss Platz.',
        'long'  => "Du bist für einen Fluss zuständig.\nMenschen wohnen am Fluss.\nManchmal gibt es Hochwasser.\nDu kannst Dämme bauen.\nDu kannst dem Fluss auch mehr Platz geben.\nBeides schützt die Menschen.\nAber beides kostet Geld.\nDu siehst: Was passiert bei einem Hochwasser?",
        'goals' => '["Du lernst, wie Hochwasser entsteht.","Du lernst, was ein Damm macht.","Du lernst, was eine Retentionsfläche ist.","Du lernst, wie man Menschen am Fluss schützt."]',
    ],
    'heli' => [
        'short' => 'Du fliegst einen Rettungshubschrauber. Du musst Menschen in den Bergen retten. Du liest Karten und Koordinaten. Du findest den Einsatzort.',
        'long'  => "Du bist Pilotin eines Rettungshubschraubers.\nMenschen in den Bergen brauchen Hilfe.\nDer Einsatzort ist als Koordinate angegeben.\nDu liest die Karte.\nDu findest den Ort.\nDu fliegst dorthin.\nEs wird schwerer mit jedem Level.\nDu hörst eine Stimme, die dir hilft.",
        'goals' => '["Du lernst, was Koordinaten sind.","Du lernst, Karten zu lesen.","Du lernst etwas über die Berge in Österreich.","Du übst schnelle Entscheidungen."]',
    ],
    'stadt' => [
        'short' => 'Du planst eine Stadt. Du legst fest, wo Häuser sind. Du planst Strassen. Die Menschen in der Stadt sagen dir, was ihnen wichtig ist.',
        'long'  => "Du bist die Stadtplanerin.\nDie Stadt wächst.\nDu legst fest, wo Häuser stehen.\nDu legst fest, wo Parks sind.\nDu planst die Strassen.\nDie Leute ziehen hin, wenn es ihnen gefällt.\nDu siehst: Was passiert, wenn alles dicht bebaut ist?\nWas passiert, wenn alles sehr weit auseinander liegt?",
        'goals' => '["Du lernst, wie eine Stadt wächst.","Du lernst, was verdichtet oder zersiedelt heisst.","Du lernst, wie wichtig Verkehr ist.","Du lernst, was ein Park in einer Stadt macht."]',
    ],
    // regenwald/erdbeben/energiemix/lieferketten sind geplant — keine Easy-Texte noetig
];

$modules = [
    // aktiv
    ['klima',  'Klimawächter', 'Klima retten, Küste schützen.',
     'Als Klimawächter:in lenkst du eine Insel durch drei Jahrzehnte Klimawandel. Dein Ziel: CO₂ senken, Küste schützen, Wohlstand halten.',
     'Du baust Windparks, Solaranlagen und Deiche, reagierst auf Sturmfluten und Hitzewellen und balancierst das Budget gegen den steigenden Meeresspiegel. Zwei Varianten — 2D-Karte (Schuleinsatz) und 3D-Welt (Erkundung) — zeigen dieselbe Logik aus unterschiedlichen Perspektiven.',
     '["Ursachen und Folgen des menschengemachten Klimawandels verstehen","Wirkung von Klimaschutzmaßnahmen (Wind, Solar, Deich, Aufforstung) abwägen","Zielkonflikt Ökonomie vs. Ökologie erleben","Einheiten wie CO₂, ppm, Watt, Megawatt handhaben"]',
     35, 10, 16, '🌍', 'card-climate.png', 'modul-klima', 'klima-2d', 'aktiv', 10],

    ['fluss', 'Flussmanagement', 'Hochwasser verstehen, Fluss naturnah führen.',
     'Du bist für einen Flussabschnitt verantwortlich — Dämme, Retention, Auen. Jedes Hochwasser zeigt, ob deine Entscheidungen halten.',
     'Die Simulation verbindet Hydrologie, Raumplanung und Katastrophenschutz. Du lernst den Zielkonflikt zwischen Siedlungsschutz, Landwirtschaft und naturnahem Flussverlauf kennen — und wie Retentionsflächen und Renaturierung wirken.',
     '["Entstehung und Verlauf von Hochwasser nachvollziehen","Unterschied zwischen technischem und ökologischem Hochwasserschutz","Retention, Einzugsgebiet, Renaturierung als Fachbegriffe anwenden","Raumplanung entlang von Gewässern begründen"]',
     30, 10, 16, '🏞️', 'card-fluss.png', 'modul-fluss', 'fluss', 'aktiv', 20],

    ['heli', 'Heli-Navigation', 'Bergrettung auf Koordinaten — Kartenlesen unter Zeitdruck.',
     'Du fliegst einen Rettungshelikopter zu 60 Einsatzorten im Alpenraum. Koordinaten, Höhenstufen und Wetterlagen musst du in Bewegung richtig lesen.',
     'Die Navigation trainiert Kartenkompetenz in einem echten räumlichen Kontext: Längengrad / Breitengrad, Gradnetz, Höhenlinien, Distanzen, Einsatzplanung. Sechs Phasen mit zunehmender Schwierigkeit und vertonter Dispatcher-Stimme.',
     '["Koordinatensysteme (geografische Länge und Breite) anwenden","Höhenstufen und Topografie in den Alpen interpretieren","Entfernungen und Richtungen auf Karten schätzen","Zeit-Weg-Entscheidungen unter Zeitdruck treffen"]',
     40, 10, 16, '🚁', 'card-heli.png', 'modul-heli', 'heli', 'aktiv', 30],

    ['stadt', 'Stadt & Raumplanung', 'Zonen, Verkehr, Bürgerwünsche — deine Stadt wächst.',
     'Du planst das Wachstum einer Stadt: Wohnen, Gewerbe, Grün, Verkehr. Bürger:innen ziehen zu — oder weg, je nach Mix.',
     'Zentrale Stadtplanungs-Kategorien werden erlebbar: Verdichtung vs. Zersiedelung, Nahversorgung, Verkehrsanbindung, Flächenverbrauch. Der Editor erlaubt freies Gestalten, das Spielmodul zeigt die Folgen.',
     '["Flächennutzung und Zonierung als Planungsinstrument kennen","Verdichtung und Zersiedelung vergleichen","Verkehrs- und Versorgungsinfrastruktur planen","Zielkonflikt zwischen Bauland, Grünraum und Verkehr lösen"]',
     30, 10, 16, '🏙️', 'card-city.png', 'modul-stadt', 'stadt', 'aktiv', 40],

    // geplant / beta
    ['regenwald', 'Regenwald-Expedition', 'Artenvielfalt und Rodung — zwei Kräfte im Gleichgewicht.',
     'Du erkundest einen tropischen Regenwald, dokumentierst Arten und erlebst den Druck der Rodung.',
     'Die Simulation wird gerade überarbeitet. Sie wird Biodiversität, Entwaldung und den Zusammenhang zwischen globalem Konsum und tropischen Ökosystemen behandeln.',
     '["Artenreichtum als globales Gut begreifen","Ursachen und Folgen der Entwaldung einordnen","Zusammenhang Konsum — Lieferkette — Regenwald erkennen"]',
     25, 10, 16, '🌳', 'card-globe.png', 'modul-regenwald', 'regenwald', 'geplant', 50],

    ['erdbeben', 'Erdbeben', 'Plattentektonik live — Magnitude, Epizentrum, Schaden.',
     'Du verfolgst Erdbeben, deutest Seismogramme und erkennst Risikozonen.',
     'Die Simulation zeigt Plattengrenzen, Subduktion und Magnitudenskala. Derzeit in Entwicklung.',
     '["Entstehung von Erdbeben erklären","Magnitude und Intensität unterscheiden","Risikokarten lesen"]',
     25, 10, 16, '🌋', 'card-tectonic.png', 'modul-erdbeben', 'erdbeben', 'geplant', 60],

    ['energiemix', 'Energiemix', 'Erneuerbar vs. fossil — was hält das Netz stabil?',
     'Du stellst den Energiemix eines Landes zusammen. Sonne, Wind, Wasser, Gas, Kohle — wann kommt der Blackout?',
     'Derzeit in Entwicklung. Fokus auf Grundlast, Volatilität, Speicher und Importabhängigkeit.',
     '["Energiequellen nach Eigenschaften vergleichen","Grundlast, Spitzenlast, Speicher verstehen","Kosten, Emissionen und Versorgungssicherheit abwägen"]',
     25, 10, 16, '⚡', 'card-energy.png', 'modul-energiemix', 'energiemix', 'geplant', 70],

    ['lieferketten', 'Lieferketten', 'Vom Kakaoacker bis in deine Schokolade.',
     'Du folgst Rohstoffen und Waren um die Welt und siehst Arbeitsbedingungen, CO₂-Fußabdruck und Fairness.',
     'Derzeit in Entwicklung. Globalisierung, Abhängigkeiten, Ethik im Konsum.',
     '["Globale Lieferketten nachzeichnen","Zwischen fair, öko und billig unterscheiden","CO₂-Fußabdruck von Produkten einschätzen"]',
     20, 10, 16, '🚢', 'card-globe.png', 'modul-lieferketten', 'lieferketten', 'geplant', 80],
];

$stmt = $db->prepare("
INSERT INTO module_info
  (module_id, title, subtitle, short_desc, long_desc, learning_goals,
   short_desc_easy, long_desc_easy, learning_goals_easy,
   duration_min, age_min, age_max, icon, card_image, page_url, play_url,
   status, sort_order)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
ON DUPLICATE KEY UPDATE
  title=VALUES(title), subtitle=VALUES(subtitle), short_desc=VALUES(short_desc),
  long_desc=VALUES(long_desc), learning_goals=VALUES(learning_goals),
  short_desc_easy=VALUES(short_desc_easy), long_desc_easy=VALUES(long_desc_easy),
  learning_goals_easy=VALUES(learning_goals_easy),
  duration_min=VALUES(duration_min), age_min=VALUES(age_min), age_max=VALUES(age_max),
  icon=VALUES(icon), card_image=VALUES(card_image), page_url=VALUES(page_url),
  play_url=VALUES(play_url), status=VALUES(status), sort_order=VALUES(sort_order)
");
$easyCount = 0;
foreach ($modules as $m) {
    // Easy-Varianten aus $EASY einschieben (nach learning_goals)
    $id = $m[0];
    $easy = $EASY[$id] ?? null;
    $row = array_merge(
        array_slice($m, 0, 6),                                   // module_id..learning_goals
        [$easy['short'] ?? null, $easy['long'] ?? null, $easy['goals'] ?? null],
        array_slice($m, 6)                                       // duration_min..sort_order
    );
    $stmt->execute($row);
    if ($easy) $easyCount++;
}
echo "  module_info  ... " . count($modules) . " Zeilen upserted (" . $easyCount . " mit Easy-Texten)\n";


// ------------------------------------------------------------------
// 3. Kompetenzen — 4 Startbereiche
// ------------------------------------------------------------------

$kompetenzen = [
    ['klimawandel', 'Klimawandel verstehen und gestalten', 'klima', 10, 16, 10,
     'Ursachen und Folgen des menschengemachten Klimawandels erkennen, Maßnahmen zur Minderung und Anpassung vergleichen und eigene Handlungsmöglichkeiten einschätzen. Umfasst Energiewende, Treibhauseffekt, Klimaschutzziele und Küstenanpassung.'],

    ['naturgefahren-hochwasser', 'Naturgefahren und Hochwasserschutz', 'natur', 10, 16, 20,
     'Entstehung und Verlauf von Hochwasser nachvollziehen, technische und ökologische Schutzmaßnahmen abwägen, den Zusammenhang zwischen Bodennutzung und Abflussverhalten erkennen und Raumplanung entlang von Gewässern begründen.'],

    ['karten-navigation-alpen', 'Kartenkompetenz und alpine Geografie', 'raum', 10, 16, 30,
     'Koordinatensysteme, Höhenstufen und Topografie im Alpenraum lesen und anwenden. Distanzen und Richtungen abschätzen, Einsatz- und Routenplanung durchführen, physische Vielfalt der Gebirgsräume einordnen.'],

    ['stadtplanung-raum', 'Stadtplanung und Raumordnung', 'raum', 10, 16, 40,
     'Flächennutzung als Planungsinstrument verstehen, Verdichtung und Zersiedelung vergleichen, Verkehrs- und Versorgungsinfrastruktur planen und Zielkonflikte zwischen Bauland, Grünraum und Verkehr abwägen.'],
];

$stmt = $db->prepare("
INSERT INTO kompetenzen (key_slug, title, category, age_min, age_max, sort_order, description)
VALUES (?,?,?,?,?,?,?)
ON DUPLICATE KEY UPDATE
  title=VALUES(title), category=VALUES(category), age_min=VALUES(age_min),
  age_max=VALUES(age_max), sort_order=VALUES(sort_order), description=VALUES(description)
");
foreach ($kompetenzen as $k) { $stmt->execute($k); }
echo "  kompetenzen  ... " . count($kompetenzen) . " Zeilen upserted\n";

// Map slug -> id für die Folgetabellen
$kmap = [];
foreach ($db->query("SELECT id, key_slug FROM kompetenzen") as $r) {
    $kmap[$r['key_slug']] = (int)$r['id'];
}


// ------------------------------------------------------------------
// 4. kompetenz_modules — Zuordnung
// ------------------------------------------------------------------

$kompetenzModules = [
    // slug,                      module,   level, strength
    ['klimawandel',               'klima',         0, 'primaer'],
    ['klimawandel',               'energiemix',    0, 'sekundaer'],
    ['klimawandel',               'lieferketten',  0, 'sekundaer'],
    ['naturgefahren-hochwasser',  'fluss',         0, 'primaer'],
    ['naturgefahren-hochwasser',  'erdbeben',      0, 'sekundaer'],
    ['karten-navigation-alpen',   'heli',          0, 'primaer'],
    ['stadtplanung-raum',         'stadt',         0, 'primaer'],
    ['stadtplanung-raum',         'fluss',         0, 'sekundaer'],
];

$db->exec("DELETE FROM kompetenz_modules");   // komplett neu schreiben (idempotent)
$stmt = $db->prepare("
INSERT INTO kompetenz_modules (kompetenz_id, module_id, level, strength) VALUES (?,?,?,?)
");
foreach ($kompetenzModules as [$slug,$mod,$lvl,$str]) {
    if (!isset($kmap[$slug])) { echo "  WARN: kompetenz '$slug' fehlt\n"; continue; }
    $stmt->execute([$kmap[$slug], $mod, $lvl, $str]);
}
echo "  kompetenz_modules ... " . count($kompetenzModules) . " Zuordnungen\n";


// ------------------------------------------------------------------
// 5. lehrplan_anchors — 3–5 pro Kompetenz aus AT / DE / CH / LI
// ------------------------------------------------------------------

// --- Offizielle Lehrplan-URLs (Stand April 2026, verifiziert via Recherche) ---
// Konstanten, damit die Anker-Liste lesbar bleibt.
$URL_AT_MS        = 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20007850';
$URL_AT_AHS       = 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10008568';
$URL_CH_LP21_RZG  = 'https://v-fe.lehrplan.ch/index.php?code=b%7C6%7C4';
$URL_LI_LILE_RZG  = 'https://fl.lehrplan.ch/index.php?code=b%7C6%7C4';
$URL_LI_LILE_HOME = 'https://www.lile.li/';
$URL_DE_BE_BB     = 'https://bildungsserver.berlin-brandenburg.de/unterricht/rahmenlehrplaene';
$URL_DE_BY_GY9    = 'https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/9/geographie';
$URL_DE_BY_GY7    = 'https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/7/geographie';
$URL_DE_NRW_GY    = 'https://lehrplannavigator.nrw.de/sekundarstufe-i/kernlehrplaene-fuer-das-gymnasium-aufsteigend-ab-20192020';
$URL_DE_BW_KLIMA  = 'https://www.bildungsplaene-bw.de/bildungsplan,Lde/Startseite/BP2016BW_ALLG/BP2016BW_ALLG_SEK1_GEO_IK_7-8-9_02_03';
$URL_DE_BW_HOCHW  = 'https://www.bildungsplaene-bw.de/,Lde/Startseite/BP2016BW_ALLG/BP2016BW_ALLG_SEK1_GEO_IK_5-6_01_02';
$URL_DE_HE_SEK1   = 'https://kultus.hessen.de/unterricht/kerncurricula-und-lehrplaene/kerncurricula/sekundarstufe-i-kerncurricula';
$URL_DE_NI_GYM    = 'https://cuvo.nibis.de/cuvo.php?p=download&upload=61';
$URL_DE_SN_GYM    = 'https://www.schulportal.sachsen.de/lplandb/lehrplan/74';
$URL_DE_RP_SEK1   = 'https://static.bildung-rp.de/lehrplaene/gesellschaftswissenschaften/Ek_G_Sk_Sek_I__LP_2021_.pdf';
$URL_DE_HH_GYM    = 'https://www.hamburg.de/resource/blob/123438/90e4cf7b25114e17d1ac1f5c19c7b4f2/geographie-gym-seki-data.pdf';
$URL_DE_DGFG      = 'https://geographie.de/publikationen/';
// Zusaetzliche CH-URLs (Fachbereiche im Lehrplan 21)
$URL_CH_LP21_NT   = 'https://v-fe.lehrplan.ch/index.php?code=b%7C7%7C4';   // Natur und Technik
$URL_CH_LP21_MA   = 'https://v-fe.lehrplan.ch/index.php?code=b%7C1%7C4';   // Mathematik
$URL_CH_LP21_MI   = 'https://v-fe.lehrplan.ch/index.php?code=b%7C10%7C4';  // Medien und Informatik
$URL_CH_LP21_ERG  = 'https://v-fe.lehrplan.ch/index.php?code=b%7C8%7C4';   // Ethik, Religionen, Gemeinschaft
$URL_CH_LP21_WAH  = 'https://v-fe.lehrplan.ch/index.php?code=b%7C12%7C4';  // Wirtschaft, Arbeit, Haushalt
$URL_CH_LP21_BNE  = 'https://v-fe.lehrplan.ch/index.php?code=e%7C200%7C1'; // BNE uebergreifend
$URL_CH_LP21_ROOT = 'https://v-fe.lehrplan.ch/';
// Zusaetzliche LI-URLs
$URL_LI_LILE_NT   = 'https://fl.lehrplan.ch/index.php?code=b%7C7%7C4';
$URL_LI_LILE_MA   = 'https://fl.lehrplan.ch/index.php?code=b%7C1%7C4';

$anchors = [
    // Tuple: slug, anchor_type, country, region, school_type, grade, subject, title, reference, reference_url, quote
    //   anchor_type: 'fach' | 'uebergreifendes_thema' | 'anderes_fach'

    // --- Klimawandel ---------------------------------------------------
    // === AT — Fachbezug (GW) ===
    ['klimawandel', 'fach', 'AT', null, 'MS / AHS-U', '1. Klasse (Sek I)', 'GW',
     'Grundlagen des Klimawandels — nachhaltige Ernährung',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 1.9 / 1.10',
     $URL_AT_MS,
     'Grundlegende Phänomene und Prozesse beschreiben, die für das Verständnis des Klimawandels und seiner gesellschaftlichen, wirtschaftlichen und ökologischen Folgen wichtig sind; den Einfluss des Klimawandels auf die Erzeugung von ausreichenden und gesunden Nahrungsmitteln an Fallbeispielen erörtern.'],

    ['klimawandel', 'fach', 'AT', null, 'MS / AHS-U', '2. Klasse (Sek I)', 'GW',
     'Nachhaltiger Umgang mit Energie und Ressourcen',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 2.1 / 2.3',
     $URL_AT_MS,
     'Die Nutzung erneuerbarer und nicht erneuerbarer Energieträger vergleichen und aus den Blickwinkeln von Klimawandel und Nachhaltigkeit reflektieren; den verantwortungsvollen Umgang mit den natürlichen Ressourcen wie Wasser, Luft oder Boden erörtern.'],

    ['klimawandel', 'fach', 'AT', null, 'MS / AHS-U', '4. Klasse (Sek I)', 'GW',
     'Mensch und Natursysteme — Belastungsgrenzen der Erde',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 4.2 / 4.3 / 4.10',
     $URL_AT_MS,
     'Folgen der Überschreitung von Belastungsgrenzen der Erde, des Klimawandels oder des Artensterbens auf das Leben und Wirtschaften erörtern; nachhaltige wirtschaftliche Aktivitäten in der globalisierten Welt vor dem Hintergrund von Klimawandel, Ressourcenknappheit, Flucht und Migration diskutieren.'],

    ['klimawandel', 'DE', 'Berlin / Brandenburg', 'Sek I', 'Jg. 9–10', 'Geographie',
     'Klimawandel als globale Herausforderung',
     'Rahmenlehrplan Teil C Geografie (Berlin/Brandenburg)',
     $URL_DE_BE_BB,
     'Die Schülerinnen und Schüler erklären Ursachen und Folgen des globalen Klimawandels und bewerten Maßnahmen der Klimaanpassung und des Klimaschutzes.'],

    ['klimawandel', 'DE', 'Bayern', 'Gymnasium', 'Jg. 9', 'Geographie',
     'Der Mensch im Ökosystem Erde — anthropogener Klimawandel',
     'LehrplanPLUS Bayern, Gymnasium Geographie 9',
     $URL_DE_BY_GY9,
     'Die Schülerinnen und Schüler beurteilen Ursachen und Folgen des anthropogen verstärkten Treibhauseffekts und erläutern internationale Klimaschutzabkommen.'],

    ['klimawandel', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'RZG (Räume, Zeiten, Gesellschaften)',
     'RZG.3.2 — Natürliche und vom Menschen veränderte Systeme analysieren',
     'Lehrplan 21, Fachbereich RZG',
     $URL_CH_LP21_RZG,
     'Die Schülerinnen und Schüler können Auswirkungen des Klimawandels auf natürliche und menschliche Systeme erklären und mögliche Handlungsoptionen abwägen.'],

    ['klimawandel', 'LI', null, 'Sek I', '7.–9. Schulstufe', 'RZG',
     'Klimawandel — globale und lokale Perspektive',
     'Liechtensteiner Lehrplan (LiLe) — RZG',
     $URL_LI_LILE_RZG,
     'Die Lernenden verstehen den anthropogenen Klimawandel und reflektieren Handlungsoptionen auf persönlicher, nationaler und globaler Ebene.'],

    ['klimawandel', 'DE', 'Hessen', 'Gymnasium / Realschule', 'Jg. 9–10', 'Erdkunde',
     'Globale Klimaveränderungen — Ursachen und Folgen',
     'Hessisches Kerncurriculum Sekundarstufe I — Erdkunde',
     $URL_DE_HE_SEK1,
     'Die Lernenden analysieren Klimaveränderungen, ordnen anthropogene Einflussfaktoren ein und bewerten Maßnahmen zur Minderung und Anpassung auf lokaler und globaler Ebene.'],

    ['klimawandel', 'DE', 'Niedersachsen', 'Gymnasium (Sek I)', 'Jg. 9–10', 'Erdkunde',
     'Klimawandel und nachhaltige Entwicklung',
     'Niedersächsisches Kerncurriculum Gymnasium Sek I — Erdkunde',
     $URL_DE_NI_GYM,
     'Die Schülerinnen und Schüler erörtern Ursachen und Folgen des Klimawandels und beurteilen Handlungsoptionen im Rahmen einer Bildung für nachhaltige Entwicklung (BNE).'],

    ['klimawandel', 'DE', null, 'Mittlerer Schulabschluss', 'Jg. 10', 'Geographie (national)',
     'Bildungsstandards Geographie — Anthropogener Klimawandel',
     'DGfG — Bildungsstandards im Fach Geographie für den Mittleren Schulabschluss (10. Aufl. 2020)',
     $URL_DE_DGFG,
     'Die Bildungsstandards fordern die Analyse des Mensch-Umwelt-Systems und der anthropogenen Einflüsse auf das Klima als Querschnittskompetenz.'],

    // === AT — Übergreifende Themen (fächerübergreifend verpflichtend im LP 2023) ===
    ['klimawandel', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Umweltbildung für nachhaltige Entwicklung',
     'Übergreifendes Thema Nr. 11 — Umweltbildung für nachhaltige Entwicklung',
     'BMBWF Lehrplan Sek I 2023, Allgemeiner Teil, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Umweltbildung für nachhaltige Entwicklung ist in allen Unterrichtsgegenständen der Sek I verbindlich verankert. Im GW-Lehrplan ist Klimawandel über die Kompetenzen 1.5, 1.10, 2.1, 2.3, 4.2 und 4.3 direkt an dieses Querschnittsthema gebunden.'],

    ['klimawandel', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Politische Bildung',
     'Übergreifendes Thema Nr. 7 — Politische Bildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Politische Bildung umfasst u.a. Klimaschutzpolitik, internationale Abkommen und demokratische Entscheidungsprozesse. Im GW-Lehrplan u.a. in den Kompetenzen 3.9 (ökosoziale Marktwirtschaft) und 4.6 (gemeinsame Problemlösungen in der EU) sichtbar.'],

    ['klimawandel', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Wirtschafts-, Finanz- und Verbraucher:innenbildung',
     'Übergreifendes Thema Nr. 13 — Wirtschaftsbildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Der Zusammenhang zwischen nachhaltigem Konsum, ökosozialer Marktwirtschaft und Klimawandel ist Querschnittsauftrag — im GW über die Kompetenzen zu Energieträgern (2.1), Preisbildung (3.8) und globaler Wirtschaft (4.10) verankert.'],

    // === AT — Anknüpfungspunkte in anderen Fächern ===
    ['klimawandel', 'anderes_fach', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Biologie und Umweltbildung',
     'Biologie und Umweltbildung — Ökosysteme, Arten­sterben, Anthropozän',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Biologie und Umweltbildung',
     $URL_AT_MS,
     'Klima­wandel wird im Fach Biologie und Umweltbildung über Ökosysteme, Lebensräume, Artenvielfalt und den Schutz von Boden, Wasser, Luft und Wald sichtbar. Der Namenszusatz „Umweltbildung" macht den Bezug seit 2023 explizit.'],

    ['klimawandel', 'anderes_fach', 'AT', null, 'MS / AHS-U', '3.–4. Klasse', 'Chemie',
     'Chemie — Treibhausgase, Verbrennung fossiler Brennstoffe',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Chemie',
     $URL_AT_MS,
     'Die chemischen Grundlagen von CO₂, Methan und Verbrennungsprozessen werden im Chemieunterricht der 4. Klasse behandelt. Sie liefern die stoffliche Basis für das Verständnis des Treibhauseffekts.'],

    ['klimawandel', 'anderes_fach', 'AT', null, 'MS / AHS-U', '2.–4. Klasse', 'Physik',
     'Physik — Wärmestrahlung, Energieformen, Treibhauseffekt',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Physik',
     $URL_AT_MS,
     'Der Treibhauseffekt ist physikalisch über Strahlung, Wärmetransport und Energiebilanzen erklärbar. Das Fach Physik liefert Einheiten wie Watt, Kilowatt und Kilowattstunde, die für das Verständnis von erneuerbaren Energien zentral sind.'],

    ['klimawandel', 'anderes_fach', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Mathematik',
     'Mathematik — Größen, Daten, Prozent (fächerübergreifendes Rechnen)',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Mathematik',
     $URL_AT_MS,
     'Klimadaten werden gemessen, verglichen und berechnet: ppm, °C, MW, kWh, t CO₂, Prozentanteile im Energiemix. Der Mathematik-Lehrplan liefert mit „Größen" und „Daten" die Werkzeuge, um diese Zahlen einzuordnen.'],

    ['klimawandel', 'anderes_fach', 'AT', null, 'MS / AHS-U', '2.–4. Klasse', 'Geschichte und politische Bildung',
     'Geschichte und politische Bildung — Industrialisierung und Klimapolitik',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Geschichte und politische Bildung',
     $URL_AT_MS,
     'Der menschengemachte Klimawandel lässt sich historisch als Folge der Industrialisierung einordnen. Klimaschutz­politik (Pariser Abkommen, EU-Green-Deal) ist Gegenstand der politischen Bildung ab der 3. Klasse.'],

    // === CH — Übergreifend + andere Fächer ===
    ['klimawandel', 'uebergreifendes_thema', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'BNE — Natürliche Umwelt und Ressourcen',
     'Lehrplan 21 — BNE-Rahmen',
     'Lehrplan 21, BNE (Bildung für Nachhaltige Entwicklung)',
     $URL_CH_LP21_BNE,
     'Klimawandel ist im Lehrplan 21 explizit als BNE-Thema verankert und verbindet RZG, NT, WAH und ERG fächerübergreifend.'],

    ['klimawandel', 'anderes_fach', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Natur und Technik (NT)',
     'Natur und Technik — Treibhauseffekt, Energie, Stoffkreisläufe',
     'Lehrplan 21, Fachbereich Natur und Technik',
     $URL_CH_LP21_NT,
     'Der Fachbereich NT liefert die naturwissenschaftliche Erklärung des Treibhauseffekts, der Energieformen und der Kohlenstoff­kreisläufe.'],

    ['klimawandel', 'anderes_fach', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Wirtschaft, Arbeit, Haushalt (WAH)',
     'Wirtschaft, Arbeit, Haushalt — Energieverbrauch und Konsum',
     'Lehrplan 21, Fachbereich WAH',
     $URL_CH_LP21_WAH,
     'WAH behandelt den persönlichen Energieverbrauch, das Konsumverhalten und die Entscheidungen privater Haushalte — eine zentrale Hebel­ebene im Klimaschutz.'],

    // === LI — Übergreifend ===
    ['klimawandel', 'uebergreifendes_thema', 'LI', null, 'Sek I', '7.–9. Schulstufe', 'BNE — Klimakompetenz',
     'LiLe — BNE-Rahmen',
     'Liechtensteiner Lehrplan (LiLe), BNE-Perspektive Klima',
     $URL_LI_LILE_RZG,
     'Der LiLe orientiert sich am Lehrplan 21 und bindet Klimawandel an die BNE-Perspektive — fächerübergreifend angelegt in RZG, NT, WAH und ERG.'],


    // --- Naturgefahren / Hochwasser -----------------------------------
    // === AT — Fachbezug (GW) ===
    ['naturgefahren-hochwasser', 'fach', 'AT', null, 'MS / AHS-U', '1. Klasse (Sek I)', 'GW',
     'Wechselwirkungen von Naturereignissen und Lebensqualität',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 1.11 / 1.12',
     $URL_AT_MS,
     'Wechselwirkungen von Naturereignissen, Lebensqualität und Wirtschaften der Menschen anhand von Fallbeispielen beschreiben und erörtern; unterschiedliche Betroffenheit von Menschen und Gesellschaften durch Naturgefahren bewerten und Möglichkeiten solidarischen Handelns erörtern.'],

    ['naturgefahren-hochwasser', 'fach', 'AT', null, 'MS / AHS-U', '4. Klasse (Sek I)', 'GW',
     'Belastungsgrenzen der Erde — Hochwasser im Anthropozän',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 4.1 / 4.2',
     $URL_AT_MS,
     'Ausmaß des menschlichen Einflusses auf Natursysteme an Beispielen wie Land- und Ressourcennutzung beschreiben; Folgen der Überschreitung von Belastungsgrenzen der Erde auf das Leben und Wirtschaften erörtern — Hochwasser als unmittelbare Folge veränderter Flächennutzung.'],

    ['naturgefahren-hochwasser', 'DE', 'Baden-Württemberg', 'Sek I', 'Jg. 5–6', 'Geographie',
     'Hochwasser als naturräumlicher Prozess — Gestaltung der Erdoberfläche',
     'Bildungsplan BW 2016, Geographie Sek I, IK 5/6, Kap. 3.1.1.2',
     $URL_DE_BW_HOCHW,
     'Die Schülerinnen und Schüler analysieren Entstehung und Verlauf von Hochwasserereignissen und bewerten technische sowie naturnahe Schutzkonzepte.'],

    ['naturgefahren-hochwasser', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'RZG',
     'RZG.1.3 — Naturereignisse und deren Auswirkungen',
     'Lehrplan 21, Fachbereich RZG',
     $URL_CH_LP21_RZG,
     'Die Schülerinnen und Schüler können die Entstehung von Naturereignissen (u.a. Hochwasser) erklären und daraus Schutz- und Verhaltensregeln ableiten.'],

    ['naturgefahren-hochwasser', 'LI', null, 'Sek I', '7.–9. Schulstufe', 'RZG',
     'Hochwasser am Alpenrhein',
     'Liechtensteiner Lehrplan (LiLe) — Lebensraum Rhein',
     $URL_LI_LILE_RZG,
     'Die Lernenden erfassen Hochwasser als Naturgefahr im Rheintal und reflektieren die Bedeutung von Schutzdämmen und Retentionsräumen.'],

    ['naturgefahren-hochwasser', 'DE', 'Rheinland-Pfalz', 'Gymnasium / Realschule plus', 'Jg. 7–10', 'Erdkunde',
     'Leben mit Naturgefahren — Hochwasser an Rhein und Mosel',
     'Lehrplan Gesellschaftswissenschaften Sek I (2021), Rheinland-Pfalz',
     $URL_DE_RP_SEK1,
     'Die Lernenden beschreiben Ursachen und Verlauf von Hochwasserereignissen an grossen mitteleuropäischen Flüssen und bewerten Schutzstrategien.'],

    ['naturgefahren-hochwasser', 'DE', 'Sachsen', 'Gymnasium', 'Jg. 8–9', 'Geographie',
     'Naturrisiken in Deutschland — Hochwasser und Muren',
     'Lehrplan Gymnasium Geographie 2004/2019 (Sachsen)',
     $URL_DE_SN_GYM,
     'Die Schülerinnen und Schüler analysieren regionale Naturrisiken in Sachsen und Mitteleuropa und diskutieren technische und natürliche Schutzkonzepte.'],

    ['naturgefahren-hochwasser', 'DE', 'Hessen', 'Gymnasium / Realschule', 'Jg. 7–8', 'Erdkunde',
     'Naturräumliche Prozesse — Extremwetter und Hochwasser',
     'Hessisches Kerncurriculum Sekundarstufe I — Erdkunde',
     $URL_DE_HE_SEK1,
     'Die Lernenden erklären Entstehung und Verlauf von Hochwasser als naturräumlichen Prozess und bewerten technische wie naturnahe Schutzmaßnahmen.'],

    // === AT — Übergreifende Themen ===
    ['naturgefahren-hochwasser', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Umweltbildung für nachhaltige Entwicklung',
     'Übergreifendes Thema Nr. 11 — Umweltbildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Hochwasser, Bodennutzung und Ökosysteme verbinden sich in der Umweltbildung zum Verständnis nachhaltiger Raumnutzung. Im GW-Lehrplan verankert in Kompetenz 2.3 (natürliche Ressourcen) und 4.1/4.3 (Natursysteme).'],

    ['naturgefahren-hochwasser', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Gesundheitsförderung',
     'Übergreifendes Thema Nr. 3 — Gesundheitsförderung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Katastrophenvorsorge und Verhaltensregeln bei Naturgefahren gehören zur Gesundheits­bildung. Die Kompetenz zum Selbstschutz und zur Gemeinschaftshilfe wird in diesem Querschnittsthema didaktisch adressiert.'],

    ['naturgefahren-hochwasser', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Politische Bildung',
     'Übergreifendes Thema Nr. 7 — Politische Bildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Raumordnung, Hochwasserschutz und die Finanzierung von Schutzbauten sind politische Entscheidungen. Das Thema „unterschiedliche Betroffenheit" (Kompetenz 1.12) ist eng mit demokratischer Teilhabe und Solidarität verbunden.'],

    // === AT — Andere Fächer ===
    ['naturgefahren-hochwasser', 'anderes_fach', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Biologie und Umweltbildung',
     'Biologie und Umweltbildung — Ökosystem Fluss und Aue',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Biologie und Umweltbildung',
     $URL_AT_MS,
     'Das Fach behandelt den Lebensraum Fluss, Auwälder, Renaturierung und die Rolle von Überschwemmungen im natürlichen Kreislauf. Ökologische Grundlagen ergänzen den GW-Blick auf Hochwasserschutz.'],

    ['naturgefahren-hochwasser', 'anderes_fach', 'AT', null, 'MS / AHS-U', '2.–4. Klasse', 'Physik',
     'Physik — Wasserdruck, Strömung und Energie',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Physik',
     $URL_AT_MS,
     'Hochwasser wird physikalisch durch Strömungsgeschwindigkeit, Wasserdruck und Energieabgabe beschreibbar. Diese Grundlagen erklären, warum Dämme brechen oder warum Retentionsräume Spitzenabflüsse reduzieren.'],

    ['naturgefahren-hochwasser', 'anderes_fach', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Mathematik',
     'Mathematik — Pegelstände, Statistik, Wahrscheinlichkeit',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Mathematik',
     $URL_AT_MS,
     'Hochwasser­ereignisse werden mit Jahrhundert-Wahrscheinlichkeiten (HQ100), Pegelkurven und statistischen Datenreihen gemessen. Der Mathematik-Lehrplan liefert die nötigen Werkzeuge zur Dateninterpretation.'],

    ['naturgefahren-hochwasser', 'anderes_fach', 'AT', null, 'MS / AHS-U', '2.–4. Klasse', 'Geschichte und politische Bildung',
     'Geschichte und politische Bildung — Hochwasser­ereignisse Österreichs',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Geschichte und politische Bildung',
     $URL_AT_MS,
     'Die großen Hochwasser­ereignisse (1954, 2002, 2013, 2024) sind historische Wendepunkte der österreichischen Schutzpolitik. Geschichte liefert den Kontext für politische und gesellschaftliche Reaktionen.'],

    // === CH / LI / DE — Übergreifend + andere Fächer ===
    ['naturgefahren-hochwasser', 'uebergreifendes_thema', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'BNE — Natürliche Umwelt und Ressourcen',
     'Lehrplan 21 — BNE-Perspektive „Natürliche Umwelt und Ressourcen"',
     'Lehrplan 21, BNE-Rahmen (Bildung für Nachhaltige Entwicklung)',
     $URL_CH_LP21_BNE,
     'Die BNE-Rahmenperspektive bindet Hochwasser und Naturgefahren an Nachhaltigkeit, Raumnutzung und Risikokompetenz über Fachgrenzen hinweg.'],

    ['naturgefahren-hochwasser', 'anderes_fach', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Natur und Technik (NT)',
     'Natur und Technik — Wasser, Energie, Naturereignisse',
     'Lehrplan 21, Fachbereich Natur und Technik',
     $URL_CH_LP21_NT,
     'NT liefert die naturwissenschaftlichen Grundlagen zu Wasser, Energie und Klimasystem — und damit die Erklärungs­basis, warum Hochwasser entsteht und wie Schutzmaßnahmen physikalisch wirken.'],

    ['naturgefahren-hochwasser', 'anderes_fach', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Mathematik',
     'Mathematik — Daten, Funktionen, Wahrscheinlichkeit',
     'Lehrplan 21, Fachbereich Mathematik',
     $URL_CH_LP21_MA,
     'Mathematik deckt Datenauswertung (Pegel­kurven, Regenmengen, Jährlich­keiten) ab, die in der Risikobeurteilung von Hochwasser eingesetzt werden.'],

    ['naturgefahren-hochwasser', 'uebergreifendes_thema', 'LI', null, 'Sek I', '7.–9. Schulstufe', 'BNE — Rheintal und Schutzbauten',
     'LiLe — BNE-Perspektive Rheintal',
     'Liechtensteiner Lehrplan (LiLe), BNE-Rahmen',
     $URL_LI_LILE_RZG,
     'Der LiLe bindet das Thema Hochwasser am Alpenrhein fächerübergreifend an BNE — inkl. Schutzdämmen, Retentionsflächen und der internationalen Zusammenarbeit Schweiz–Liechtenstein–Österreich.'],

    ['naturgefahren-hochwasser', 'fach', 'DE', null, 'Mittlerer Schulabschluss', 'Jg. 10', 'Geographie (national)',
     'Bildungsstandards Geographie — Naturgefahren und Risikoräume',
     'DGfG — Bildungsstandards im Fach Geographie (10. Aufl. 2020)',
     $URL_DE_DGFG,
     'Die DGfG-Standards fordern das Erkennen, Analysieren und Bewerten von Risikoräumen (Hochwasser, Hang­rutschung, Dürre) als Querschnitts­kompetenz der geographischen Bildung.'],


    // --- Kartenkompetenz / Alpen --------------------------------------
    // === AT — Fachbezug (GW) ===
    ['karten-navigation-alpen', 'fach', 'AT', null, 'MS / AHS-U', '1. Klasse (Sek I)', 'GW',
     'Orientierung auf Maßstabsebenen mit Geomedien',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 1.3 / 1.6',
     $URL_AT_MS,
     'Das persönliche Leben beginnend in der Wohn-/Schulortgemeinde auf verschiedenen Maßstabsebenen mit Hilfe von Geomedien einordnen und darstellen; Fallbeispiele aus Zentren und Peripherien mit Geomedien lokalisieren.'],

    ['karten-navigation-alpen', 'fach', 'AT', null, 'MS / AHS-U', '3. Klasse (Sek I)', 'GW',
     'Zentren und Peripherien Österreichs in Geomedien',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 3.15 / 3.16',
     $URL_AT_MS,
     'Zentren und Peripherien Österreichs abgrenzen, in Geomedien verorten und die Relativität jeder Abgrenzung erläutern; Gestaltung von zentralen und peripheren Lebensräumen mit Hilfe von originalen Begegnungen und Geomedien vergleichen.'],

    ['karten-navigation-alpen', 'DE', 'Nordrhein-Westfalen', 'Gymnasium (G9)', 'Jg. 5–7', 'Erdkunde',
     'Orientierung auf der Erde — Gradnetz und topografische Karten',
     'Kernlehrplan Erdkunde Sek I Gymnasium NRW (ab 2019/20)',
     $URL_DE_NRW_GY,
     'Die Schülerinnen und Schüler lesen und interpretieren thematische Karten, nutzen das Gradnetz zur Lagebestimmung und beschreiben physische Strukturen Mitteleuropas und der Alpen.'],

    ['karten-navigation-alpen', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'RZG',
     'RZG.2.1 — Mit Karten und Atlas arbeiten',
     'Lehrplan 21, Fachbereich RZG',
     $URL_CH_LP21_RZG,
     'Die Schülerinnen und Schüler können sich mithilfe von Karten und weiteren Medien räumlich orientieren und Informationen aus Karten zu Räumen entnehmen.'],

    ['karten-navigation-alpen', 'LI', null, 'Sek I', '7.–9. Schulstufe', 'RZG',
     'Alpen und Alpenvorland — räumliche Gliederung',
     'Liechtensteiner Lehrplan (LiLe)',
     $URL_LI_LILE_HOME,
     'Die Lernenden beschreiben die Höhenstufen und topografischen Besonderheiten der Alpen und orientieren sich mit Karten und Koordinaten im Alpenraum.'],

    ['karten-navigation-alpen', 'DE', 'Niedersachsen', 'Gymnasium (Sek I)', 'Jg. 5–7', 'Erdkunde',
     'Orientierung auf der Erde — Gradnetz und thematische Karten',
     'Niedersächsisches Kerncurriculum Gymnasium Sek I — Erdkunde',
     $URL_DE_NI_GYM,
     'Die Schülerinnen und Schüler orientieren sich mithilfe des Gradnetzes, werten thematische Karten aus und beschreiben physiogeografische Grundstrukturen Europas.'],

    ['karten-navigation-alpen', 'DE', 'Hamburg', 'Gymnasium (Sek I)', 'Jg. 5–10', 'Geographie',
     'Kartenarbeit und topografische Grundkenntnisse',
     'Bildungsplan Gymnasium Sek I — Geographie (Hamburg)',
     $URL_DE_HH_GYM,
     'Die Lernenden nutzen Karten, Gradnetz und digitale Geomedien, um sich räumlich zu orientieren und Lagebeziehungen zu beschreiben.'],

    // === AT — Übergreifende Themen ===
    ['karten-navigation-alpen', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Informatische Bildung',
     'Übergreifendes Thema Nr. 4 — Informatische Bildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'GIS und digitale Geomedien (OpenStreetMap, Atlas-Software, Geocaching) sind Anwendungsbeispiele der Informatischen Bildung. Im GW-Lehrplan über die Kompetenzen 1.3, 1.6 und 3.15 direkt verankert.'],

    ['karten-navigation-alpen', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Medienbildung',
     'Übergreifendes Thema Nr. 6 — Medienbildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Karten sind Medien: Maßstab, Generalisierung und Darstellungswahl prägen das Bild des Raums. Die reflektierte Nutzung von Karten ist ein klassisches Medienbildungs-Lernziel.'],

    ['karten-navigation-alpen', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Verkehrs- und Mobilitätsbildung',
     'Übergreifendes Thema Nr. 12 — Verkehrs- und Mobilitätsbildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Routenplanung, Öffentliche-Verkehrs-Netze und die Orientierung im Raum sind praktische Anwendungsfelder der Mobilitätsbildung. Karten sind dabei das zentrale Werkzeug.'],

    // === AT — Andere Fächer ===
    ['karten-navigation-alpen', 'anderes_fach', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Mathematik',
     'Mathematik — Koordinatensystem, Maßstab, Winkel',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Mathematik',
     $URL_AT_MS,
     'Das zweidimensionale Koordinatensystem, Maßstabs­umrechnung, Winkelberechnung und Flächen gehören zum Mathematik-Kernstoff und sind die Basis für Kartenarbeit und Navigation.'],

    ['karten-navigation-alpen', 'anderes_fach', 'AT', null, 'MS / AHS-U', '2.–4. Klasse', 'Physik',
     'Physik — Projektion, Lot, Erdrotation',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Physik',
     $URL_AT_MS,
     'Kartenprojektionen, die Kugelgestalt der Erde und die Erdrotation sind physikalische Grundlagen der Gradnetz-Orientierung. Auch die Schwerkraft (Lotrichtung) ist für Höhenmessungen relevant.'],

    ['karten-navigation-alpen', 'anderes_fach', 'AT', null, 'MS / AHS-U', '2.–4. Klasse', 'Geschichte und politische Bildung',
     'Geschichte und politische Bildung — historische Karten, Grenzen',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Geschichte und politische Bildung',
     $URL_AT_MS,
     'Historische Karten zeigen, wie sich Räume, Grenzen und Ortsbezeichnungen über die Zeit ändern. Der kritische Umgang mit Kartenquellen ist eine Kernkompetenz der historischen Bildung.'],

    ['karten-navigation-alpen', 'anderes_fach', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Bewegung und Sport',
     'Bewegung und Sport — Orientierungslauf, Wandern',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Bewegung und Sport',
     $URL_AT_MS,
     'Orientierungslauf und Wandern mit Karte und Kompass sind praktische Anwendungen der Kartenkompetenz und Teil des Bewegung-und-Sport-Lehrplans.'],

    // === CH / LI / DE ===
    ['karten-navigation-alpen', 'anderes_fach', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Medien und Informatik (MI)',
     'Medien und Informatik — Digitale Karten und GIS',
     'Lehrplan 21, Fachbereich Medien und Informatik',
     $URL_CH_LP21_MI,
     'Der Fachbereich MI deckt digitale Kartendienste (OpenStreetMap, GIS-Tools) und den reflektierten Umgang mit geographischen Daten explizit ab.'],

    ['karten-navigation-alpen', 'anderes_fach', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Mathematik',
     'Mathematik — Koordinaten und Maßstab',
     'Lehrplan 21, Fachbereich Mathematik',
     $URL_CH_LP21_MA,
     'Koordinaten­systeme, Maßstabs­umrechnungen und Flächen­berechnungen sind Teil des Mathematik-Lehrplans und unterstützen die Arbeit mit topografischen Karten.'],

    ['karten-navigation-alpen', 'uebergreifendes_thema', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Überfachliche Kompetenzen — Methodische',
     'Lehrplan 21 — Methodische Kompetenzen (Informationen nutzen)',
     'Lehrplan 21, Überfachliche Kompetenzen',
     $URL_CH_LP21_ROOT,
     'Das Arbeiten mit Karten, Atlas und digitalen Medien ist als methodische überfachliche Kompetenz im Lehrplan 21 verankert und wirkt fächerübergreifend.'],

    ['karten-navigation-alpen', 'fach', 'DE', null, 'Mittlerer Schulabschluss', 'Jg. 10', 'Geographie (national)',
     'Bildungsstandards Geographie — Räumliche Orientierung',
     'DGfG — Bildungsstandards im Fach Geographie (10. Aufl. 2020)',
     $URL_DE_DGFG,
     'Räumliche Orientierung (Gradnetz, Karten, Atlanten, GIS) ist eine der sechs Kompetenzbereiche der Bildungsstandards Geographie und damit verbindliche Querschnittsvorgabe.'],


    // --- Stadtplanung / Raum ------------------------------------------
    // === AT — Fachbezug (GW) ===
    ['stadtplanung-raum', 'fach', 'AT', null, 'MS / AHS-U', '3. Klasse (Sek I)', 'GW',
     'Raumnutzung und Nutzungskonflikte in Österreich',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 3.15 / 3.16 / 3.17',
     $URL_AT_MS,
     'Zentren und Peripherien Österreichs abgrenzen; Gestaltung zentraler und peripherer Lebensräume vergleichen; mit (Geo-)Medien Raumnutzungen für Wohnen, Arbeit, Verkehr, Freizeitaktivitäten und Tourismus vergleichen sowie Lösungsansätze der Raumplanung bei Nutzungskonflikten erörtern.'],

    ['stadtplanung-raum', 'fach', 'AT', null, 'MS / AHS-U', '4. Klasse (Sek I)', 'GW',
     'Städte und Ballungsräume in einer globalisierten Welt',
     'BMBWF GW-Lehrplan Sek I 2023, Kompetenz 4.7 / 4.8',
     $URL_AT_MS,
     'Verteilung der Bevölkerung und unterschiedliche Bevölkerungsdynamik aus globaler Perspektive analysieren; Entwicklung, Bedeutung und Verteilung von Städten, Ballungsräumen und Peripherien mit (Geo-)Medien beschreiben und vergleichen.'],

    ['stadtplanung-raum', 'DE', 'Bayern', 'Gymnasium', 'Jg. 7', 'Geographie',
     'Stadt- und Raumstrukturen in Europa',
     'LehrplanPLUS Bayern, Gymnasium Geographie 7',
     $URL_DE_BY_GY7,
     'Die Schülerinnen und Schüler beschreiben Prozesse der Stadtentwicklung, erklären Zersiedelung und Verdichtung und bewerten nachhaltige Stadtkonzepte.'],

    ['stadtplanung-raum', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'RZG',
     'RZG.4.2 — Räume gestalten und sich aneignen',
     'Lehrplan 21, Fachbereich RZG',
     $URL_CH_LP21_RZG,
     'Die Schülerinnen und Schüler können Raumnutzungskonflikte erkennen, planerische Entscheidungen nachvollziehen und eigene Gestaltungsideen für städtische Räume entwickeln.'],

    ['stadtplanung-raum', 'LI', null, 'Sek I', '7.–9. Schulstufe', 'RZG',
     'Siedlungsentwicklung in Liechtenstein',
     'Liechtensteiner Lehrplan (LiLe) — RZG',
     $URL_LI_LILE_RZG,
     'Die Lernenden setzen sich mit Zersiedelung und Verdichtung im Rheintal auseinander und diskutieren Konsequenzen für Verkehr, Versorgung und Landschaft.'],

    ['stadtplanung-raum', 'DE', 'Hessen', 'Gymnasium / Realschule', 'Jg. 7–9', 'Erdkunde',
     'Stadt- und Siedlungsstrukturen — Wandel und Planung',
     'Hessisches Kerncurriculum Sekundarstufe I — Erdkunde',
     $URL_DE_HE_SEK1,
     'Die Lernenden beschreiben Prozesse der Stadtentwicklung in Deutschland und Europa und bewerten Konzepte nachhaltiger Raumordnung.'],

    ['stadtplanung-raum', 'DE', 'Hamburg', 'Gymnasium (Sek I)', 'Jg. 7–10', 'Geographie',
     'Hamburg als städtischer Raum — Stadtentwicklung und Nachhaltigkeit',
     'Bildungsplan Gymnasium Sek I — Geographie (Hamburg)',
     $URL_DE_HH_GYM,
     'Hamburg als verpflichtender Raumbezug: Schülerinnen und Schüler analysieren urbane Strukturen, treffen nachhaltige Gestaltungsentscheidungen und diskutieren Flächennutzungskonflikte.'],

    // === AT — Übergreifende Themen ===
    ['stadtplanung-raum', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Politische Bildung',
     'Übergreifendes Thema Nr. 7 — Politische Bildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Stadt­planung, Widmungsverfahren und demokratische Beteiligung (Bürger­initiativen, Gemeinderatsbeschlüsse) sind Kernthemen der Politischen Bildung. Direkt im GW-Lehrplan über Kompetenz 3.17 (Lösungs­ansätze bei Nutzungs­konflikten) verankert.'],

    ['stadtplanung-raum', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Verkehrs- und Mobilitätsbildung',
     'Übergreifendes Thema Nr. 12 — Verkehrs- und Mobilitätsbildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Wie sich Städte in Zukunft mit MIV, ÖPNV, Fuß- und Radverkehr verbinden, ist Querschnittsthema der Mobilitäts­bildung. Eng verknüpft mit den GW-Kompetenzen 3.6 (Standortfaktoren) und 3.17 (Raum­planung).'],

    ['stadtplanung-raum', 'uebergreifendes_thema', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Umweltbildung für nachhaltige Entwicklung',
     'Übergreifendes Thema Nr. 11 — Umweltbildung',
     'BMBWF Lehrplan Sek I 2023, Vierter Teil (Übergreifende Themen)',
     $URL_AT_MS,
     'Verdichtung vs. Zersiedelung, Grünräume und Flächenverbrauch sind BNE-Fragen. Der GW-Lehrplan bindet diese über Kompetenz 4.10 (nachhaltige Aktivitäten) an das Querschnittsthema.'],

    // === AT — Andere Fächer ===
    ['stadtplanung-raum', 'anderes_fach', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Mathematik',
     'Mathematik — Flächenberechnung, Bevölkerungsdichte, Diagramme',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Mathematik',
     $URL_AT_MS,
     'Flächen in Hektar, Bevölkerungsdichte in Einwohner pro km², Diagramme zum Flächenverbrauch — Stadtplanung arbeitet durchgehend mit Größen und Daten, die im Mathematik-Unterricht geübt werden.'],

    ['stadtplanung-raum', 'anderes_fach', 'AT', null, 'MS / AHS-U', '1.–4. Klasse', 'Biologie und Umweltbildung',
     'Biologie und Umweltbildung — Grünraum und Stadtklima',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Biologie und Umweltbildung',
     $URL_AT_MS,
     'Der Fachlehrplan Biologie und Umweltbildung behandelt den Lebensraum Stadt, Stadtklima, Begrünung und die Rolle von Grünflächen für Gesundheit und Biodiversität.'],

    ['stadtplanung-raum', 'anderes_fach', 'AT', null, 'MS / AHS-U', '2.–4. Klasse', 'Geschichte und politische Bildung',
     'Geschichte und politische Bildung — Urbanisierung und Stadtentwicklung',
     'BMBWF Lehrplan Sek I 2023, Fachlehrplan Geschichte und politische Bildung',
     $URL_AT_MS,
     'Die historische Entwicklung europäischer Städte — von der Industrialisierung bis zur suburbanen Zersiedelung — erklärt die heutigen Raumstrukturen und ist Teil des GSP-Lehrplans.'],

    // === CH / LI / DE ===
    ['stadtplanung-raum', 'uebergreifendes_thema', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'BNE — Wirtschaft und Konsum',
     'Lehrplan 21 — BNE-Perspektive „Wirtschaft und Konsum"',
     'Lehrplan 21, BNE-Rahmen',
     $URL_CH_LP21_BNE,
     'Stadtplanung ist im Lehrplan 21 als BNE-Querschnittsthema über „Wirtschaft und Konsum" und „Natürliche Umwelt und Ressourcen" angebunden.'],

    ['stadtplanung-raum', 'anderes_fach', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Wirtschaft, Arbeit, Haushalt (WAH)',
     'Wirtschaft, Arbeit, Haushalt — Flächenmarkt und Wohnen',
     'Lehrplan 21, Fachbereich WAH',
     $URL_CH_LP21_WAH,
     'Der Fachbereich WAH behandelt Wohnen, Haushalt und Konsum — und damit den wirtschaftlichen Aspekt der Stadt­planung und der Flächennutzung.'],

    ['stadtplanung-raum', 'anderes_fach', 'CH', null, 'Sek I (Zyklus 3)', '7.–9. Schuljahr', 'Ethik, Religionen, Gemeinschaft (ERG)',
     'Ethik, Religionen, Gemeinschaft — Zusammenleben in Städten',
     'Lehrplan 21, Fachbereich ERG',
     $URL_CH_LP21_ERG,
     'Das Zusammenleben unterschiedlicher Gruppen in urbanen Räumen (Integration, Vielfalt, Solidarität) ist Gegenstand des ERG-Fachbereichs.'],

    ['stadtplanung-raum', 'uebergreifendes_thema', 'LI', null, 'Sek I', '7.–9. Schulstufe', 'BNE — Raumentwicklung Rheintal',
     'LiLe — BNE-Perspektive Raumentwicklung',
     'Liechtensteiner Lehrplan (LiLe), BNE-Rahmen',
     $URL_LI_LILE_RZG,
     'Die Zersiedelung im Rheintal ist ein prägendes Thema für Liechtenstein — der LiLe bindet es als BNE-Querschnitt an Mobilität, Ressourcenverbrauch und politische Gestaltung.'],

    ['stadtplanung-raum', 'fach', 'DE', null, 'Mittlerer Schulabschluss', 'Jg. 10', 'Geographie (national)',
     'Bildungsstandards Geographie — Urbanisierung und Stadtstrukturen',
     'DGfG — Bildungsstandards im Fach Geographie (10. Aufl. 2020)',
     $URL_DE_DGFG,
     'Die DGfG-Standards fordern das Analysieren und Bewerten von Urbanisierungsprozessen und Stadt­strukturen im globalen Vergleich als Querschnittskompetenz.'],
];

$db->exec("DELETE FROM lehrplan_anchors");   // komplett neu schreiben (idempotent)
$stmt = $db->prepare("
INSERT INTO lehrplan_anchors
  (kompetenz_id, anchor_type, country, region, school_type, grade, subject,
   title, reference, reference_url, quote, sort_order)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
");
$order = 0;
foreach ($anchors as $a) {
    // Tuple kann 10 oder 11 Elemente haben.
    //   10 Elemente  = altes Format ohne anchor_type → default 'fach'
    //   11 Elemente  = neues Format mit anchor_type an Stelle 1
    if (count($a) === 10) {
        array_splice($a, 1, 0, ['fach']);   // 'fach' als Default einsetzen
    }
    [$slug, $anchorType, $country, $region, $schoolType, $grade, $subject,
     $title, $reference, $referenceUrl, $quote] = $a;
    if (!isset($kmap[$slug])) { echo "  WARN: kompetenz '$slug' fehlt\n"; continue; }
    $stmt->execute([
        $kmap[$slug], $anchorType, $country, $region, $schoolType, $grade, $subject,
        $title, $reference, $referenceUrl, $quote, $order++
    ]);
}
echo "  lehrplan_anchors ... " . count($anchors) . " Zeilen (inkl. URLs + Typ)\n";


// ------------------------------------------------------------------
// 6. Bilanz
// ------------------------------------------------------------------

$count = function(string $t) use ($db) {
    return (int) $db->query("SELECT COUNT(*) FROM $t")->fetchColumn();
};

echo "\n=== Bilanz ===\n";
echo "  module_info:        " . $count('module_info') . "\n";
echo "  kompetenzen:        " . $count('kompetenzen') . "\n";
echo "  kompetenz_modules:  " . $count('kompetenz_modules') . "\n";
echo "  lehrplan_anchors:   " . $count('lehrplan_anchors') . "\n";
echo "\nFertig.\n";
