Files
geograsim/.dontDeploy/briefing-wal-fable5.md
T
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

483 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Briefing · Wal-Modul „Die große Wanderung"
**Für:** Claude Fable 5 (externe Sim-Instanz)
**Auftrag-Datum:** 2026-06-14
**Auftraggeber:** Thomas (Plattform-Owner) + Atlas (Plattform-Instanz)
---
## 0. Worum es geht
Du baust ein neues GeoGraSim-Simulationsmodul für die Lernplattform **geograsim.at**. Sim-ID: **`wal`**. Titel: **„Die große Wanderung"**. Du folgst dem Buckelwal *Megaptera novaeangliae* auf seiner ~6.000 km Migration von Alaska nach Hawaii — als Mutter-Kuh, die in den hawaiianischen Brutgebieten ihr Kalb zur Welt bringen wird.
Zielgruppe: Sek I (1116 Jahre, AT/CH/DE/LI). Dauer ein Durchgang: ca. 35 min. Lehrpersonen setzen es ein in Fächern **Geografie und wirtschaftliche Bildung**, **Biologie / Naturwissenschaft**, **Politische Bildung** und im **Querschnitt BNE** (Bildung für Nachhaltige Entwicklung).
Die Plattform stellt: Wrapper (existiert: `App/pages/wal.php`), DB-Eintrag (existiert: `module_info`), Plattform-Header, Glossar-Tooltip-Library, Quick-Intro-Library, Live-Cockpit-Anbindung, Submit-Endpoint, Persistenz-Pattern, Lehrplan-Anbindung, Design-System.
**Pflicht-Lektüre vor Start:**
1. [`App/docs/sim-spec-2026-06-12.md`](../App/docs/sim-spec-2026-06-12.md) — aktuelle Plattform-Conventions (Window-Globals, Submit, Header-Standard)
2. [`App/docs/module-interface.md`](../App/docs/module-interface.md) — Sprach-Konventionen (Lernarbeit statt Spiel — **kritisch**), iPad-Pattern, Leichte Sprache, Persistenz-Pflicht
3. Diese Datei — Wal-Spezifika und Konzept
---
## 1. Ausgangsmaterial — Thomas' Skizzen
Zwei HTML-Files liegen in `c:\xampp\htdocs\geograsim\.humanInput\wal\` als **Konzept-Skizze**:
- **`wal-simulator-v2(3).html`** — die narrative Rahmensimulation mit Leaflet-Karte und Choice-Mechanik (4 Etappen, 11 Begegnungen, Energy/Health/Stress, Endet mit Geburt in Maui). **Das ist die Basis.**
- **`wal-frachtroute(4).html`** — ein 3D-Action-Minispiel, das die Containerschiff-Begegnung detailliert ausspielt. **Wir bauen das in 2D nach.**
Du darfst und sollst diese Files **als Inhaltsquelle plündern** — Texte, Fakten, Fact-Boxes, Stage-Definitionen sind didaktisch gut und fachlich verifiziert. Plattform-Integration und Welt-Varianten kommen NEU hinzu.
---
## 2. Konzept-Erweiterung — Welt-Varianten (Pflicht)
Statt einer einzigen Reise gibt es **drei Welt-Varianten** entlang derselben Pazifik-Route. Lehrperson kann eine vorgeben (`window.WAL_FORCED_ERA = 1850|1990|2026`), sonst wählt Schüler:in im Sim-Intro.
### Variante 1850 — Vor dem Schutz
- Walfänger-Stationen auf den Aleuten und in Lahaina (Hawaii). Harpunenboote als Antagonisten.
- Krillschwärme dicht, Heringe massenhaft. Wassertemperatur stabil.
- Kein Plastik, kein Sonar, kaum Containerschiffe (Dampfschiff-Frühphase).
- Population global: ~125.000 Buckelwale.
- Begegnungen statt Frachter/Plastik/Sonar: **Harpunenboot · Walfang-Station · Verlorene Walgruppen · Eismeer-Sturm**.
### Variante 1990 — Erholung beginnt
- Walfangmoratorium 4 Jahre alt (seit 1986). Population ~10.00015.000.
- Begegnungen mit anderen Buckelwalen seltener — „Einsamkeit" als didaktisches Element.
- Erste Containerschifffahrt, aber dünn.
- Marine-Sonar gibt's, Geisternetze ja, Plastik wenig.
- Erholungsstory erlebbar — andere Wale gehören zum „seltenen Glück".
### Variante 2026 — Heute
- Population ~80.000, fast erholt.
- Dichter Schiffsverkehr, Mikroplastik, Klimaerwärmung verschiebt Krill polwärts.
- Schutzgebiete + IMO-Routen helfen.
- = das `wal-simulator-v2(3).html` wie es jetzt ist (mit Plattform-Integration und 2D-Minispiel).
**Didaktischer Mehrwert:** Lehrperson lässt Klasse aufteilen — Gruppe A 1850, B 1990, C 2026. Vergleichen in der Reflexion. Sehen: **wir kommen aus einer schlimmen Zeit, wir hatten Erfolg mit Schutz**. BNE-Erfolgsstory ohne 2050-Spekulation.
### Sprache 1850
Darf dramatisch sein, aber Sek-I-tauglich. **Kein Splatter, keine Tier-Quälszenen.** Pattern:
> „Am Horizont, Schwarz auf Grau, ein Walfänger-Mast. Du hörst das Geräusch ihrer Ruder — schwächer als heutige Frachter, aber gezielt. Sie suchen dich."
Konsequenzen wie heute: Stats-Effekte + Fact-Box mit historischem Kontext. Kein Tod auf Bildschirm; Game-Over heißt „Verlorene Reise" wie in 2026 auch.
---
## 3. Technik-Vorgaben
### 3.1 Stack
- **Vanilla HTML/JS/CSS.** Kein Build-Step, kein React, kein TypeScript.
- **2D, nicht 3D.** Begründung: Tiefenachse ist die spannende Dimension (Tauchen unter Schiffen, Krill in der Tiefe) — die zeigt 2D klarer. iPad-Touch ist 2D natürlicher. Three.js-Bundle/WebGL-Abhängigkeiten entfallen. Flat-Scandinavian-Plattform-Ästhetik passt 2D besser.
- **Leaflet** ist OK für die Welt-Karte (siehe wal-simulator-v2 — verwendet das bereits).
- **Canvas 2D** für die Action-Minispiele (Schiffsquerung, Sonar-Ausweichen, evtl. Bubble-Net-Timing).
- **localStorage** für Autosave (Pflicht — siehe module-interface.md §7b).
### 3.2 Plattform-Header (Pflicht — Standard)
```html
<header class="ggs-header">
<a href="/schueler" class="ggs-header-logo">
<img src="/assets/img/bildLogo.png" alt="" class="ggs-header-logo-icon">
<img src="/assets/img/textlogo_geograsim.svg" alt="GeoGraSim" class="ggs-header-logo-text">
</a>
<div class="ggs-header-separator"></div>
<span class="ggs-header-module">Die große Wanderung</span>
<span class="ggs-header-badge" id="era-badge">2026</span>
<div class="ggs-header-spacer"></div>
<div class="ggs-header-actions">
<button class="ggs-btn-ghost" id="btn-info"
title="Anleitung nochmal zeigen"
onclick="if(window.GGS_TUTORIAL&&typeof window.GGS_TUTORIAL.replay==='function')window.GGS_TUTORIAL.replay();"></button>
<a class="ggs-btn-ghost" id="ggs-lehrplan-link" href="#" target="_blank" title="Lehrplan-Bezug">📚</a>
<button class="ggs-btn-ghost" id="btn-mute" title="Ton aus/an">🔊</button>
<button class="ggs-btn-ghost" id="btn-reset" title="Fortschritt zurücksetzen">🔄</button>
<a href="/schueler" class="ggs-btn-ghost" title="Zurück zum Cockpit">🏠</a>
</div>
</header>
```
Stylesheet einbinden: `<link rel="stylesheet" href="/assets/css/design-system.css">`.
### 3.3 Plattform-Globals (was vom Wrapper kommt)
```js
window.WAL_BASE // '/sims/wal/' — Basispfad für deine Assets
window.WAL_SESSION_MODE // 'free' | 'teacher_started'
window.WAL_FORCED_LEVEL // 1|2|3 wenn teacher_started, sonst null
window.WAL_FORCED_ERA // 1850 | 1990 | 2026 | null
window.WAL_SESSION_ID // string oder null
window.WAL_API_BASE // '/php/api'
window.STUDENT_EASY // true wenn Leichte Sprache aktiv
```
**Verhalten:**
- Wenn `WAL_FORCED_ERA` gesetzt → Sim startet direkt in dieser Welt, kein Era-Picker.
- Wenn `null` → Era-Picker als erstes Screen-Element (3 Karten: 1850 / 1990 / 2026).
- Wenn `STUDENT_EASY === true` → vereinfachte Sprache überall (siehe module-interface.md §4b).
### 3.4 Plattform-Globals (was du setzen musst)
```js
// 1) Live-Snapshot fürs Lehrer-Cockpit (alle 4s wird das gepollt)
window.GGS_LIVE_STATE = function () {
if (!gameReady) return null;
return {
simId: 'wal',
era: 1850|1990|2026,
stage: 1|2|3|4, // aktuelle Etappe
stageName: 'Frederick Sound', // Anzeigename
day: 42, // Tage seit Aufbruch
energy: 75,
health: 90,
stress: 30,
hasCalf: false,
progressPct: 45, // 0-100 (Etappe + Index)
health_status: 'good'|'ok'|'struggle', // Cockpit-Status-Punkt
};
};
// 2) Tutorial-Replay-Hook (für -Header-Button)
window.GGS_TUTORIAL = {
simId: 'wal',
title: '🐋 Die große Wanderung',
replay: function () { /* deine startTutorial() */ },
};
```
### 3.5 Submit am Reise-Ende (Pflicht)
```js
fetch(window.WAL_API_BASE + '/progress.php', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
credentials: 'same-origin',
body: JSON.stringify({
sim_id: 'wal',
action: 'submit_assessment',
data: {
level: eraToLevel(era), // 1850=1, 1990=2, 2026=3
stars: calcStars(), // 1-5
score: calcScore(), // 0-100
duration_ms: (window.__GGS_LIVE__ && window.__GGS_LIVE__.activeMs) || 0,
completed: true,
results: {
era: 1850|1990|2026,
days_total: state.day,
outcome: 'arrival_with_calf'|'arrival_no_calf'|'starvation'|'injury'|'whaling',
energy_end: state.energy,
health_end: state.health,
stress_peak: state.stressPeak,
stages_completed: state.stage,
encounters_total: state.encountersDone,
choices_log: state.choicesLog, // pro Begegnung: {stage, event_id, choice_label}
facts_seen: state.factsRead, // wieviele Fakt-Boxen angezeigt
},
},
}),
});
```
**Wichtig:** `duration_ms` aus `window.__GGS_LIVE__.activeMs` lesen (NICHT eigene Wall-Clock). Sonst zählt Idle mit.
### 3.6 Glossar-Tooltip (in den Begegnungs-Texten verlinken)
Lib einbinden:
```html
<script src="/assets/js/glossar-tooltip.js" defer></script>
<script>
window.addEventListener('DOMContentLoaded', () => {
GlossarTooltip.init({apiBase:'/php/api', moduleId:'wal'});
});
</script>
```
In den Begegnungs-Texten verwendest du:
```html
<span class="ggs-g" data-glossar="bubble-net">Bubble-Net</span>
```
Atlas liefert die Begriffe nach an die Glossar-Instanz. Vorschlag-Liste in §6.
### 3.7 Quick-Intro NICHT verwenden
Wir wollen ein **vollwertiges Tutorial** mit 4-5 Schritten + Bildern (Welt-Variante erklären, Choice-Mechanik, Stats erklären, Minispiele ankündigen). Quick-Intro wäre zu dünn für diese Sim.
### 3.8 Persistenz (Pflicht)
`localStorage`-Key: `ggs-save-wal-{era}` (z.B. `ggs-save-wal-1850`).
- Speichern nach jeder Begegnung + bei Era-Switch.
- Beim Reload: lädt den aktuellen Stand. Reset-Button (🔄) löscht und startet neu (mit Bestätigung).
- Pro Era ein separater Save (Schüler:in kann zwischen Welten wechseln, ohne Stand zu verlieren — relevant für Vergleichs-Reflexion).
Siehe module-interface.md §7b für Vollbeispiel.
### 3.9 iPad-Pattern (Pflicht)
- Touch-Ziele 36-40 px (Header-Buttons sind das schon).
- Choice-Buttons mind. 48 px hoch.
- `font-size: 16px` für Texteingaben (sonst zoomt Safari).
- Canvas-Minispiele mit `touch-action: none`.
- Kein Hover-only — alles per Tap erreichbar.
---
## 4. Inhaltsstruktur (basierend auf Thomas' Vorlage)
### 4.1 Etappen (alle drei Welt-Varianten)
| Etappe | Name | Saison |
|---|---|---|
| 1 | Frederick Sound · Alaska | September |
| 2 | Offener Nordpazifik | Oktober |
| 3 | Subtropischer Übergang | November |
| 4 | Hawaiianische Gewässer | Dezember |
Pro Etappe 2-4 Begegnungen. Endet immer mit Maui + (in 1850 vielleicht abweichend wegen Walfangstation Lahaina) Geburt des Kalbs.
### 4.2 Begegnungs-Matrix nach Welt-Variante
Aus dem Originalkonzept übernehmen + ergänzen:
#### Etappe 1 (Frederick Sound)
- **1850:** Bubble-Net (mit großer Gruppe — Population groß) · Letzte Begegnung Sommer-Gruppe
- **1990:** Bubble-Net (mit *kleiner* Gruppe — Population dünn) · Aufbruch *allein* (Reflexion: „Wo sind die anderen?")
- **2026:** Bubble-Net wie heute · Letzte Begegnung wie heute (das aktuelle Skript)
#### Etappe 2 (Offener Nordpazifik)
- **1850:** **Walfänger-Brigg** (sich annähernde Walfänger statt Frachter) · **Eisberg-Treibhindernis** statt Geisternetz · Sturm · Orcas
- **1990:** **Frachtroute dünn** (1-2 Schiffe pro Tag, ausweichbar) · Geisternetze JA (Hochzeit der Treibnetz-Fischerei) · Sturm · Orcas
- **2026:** Frachtroute dicht (heute) · Geisternetz · Sturm · Orcas
#### Etappe 3 (Subtropischer Übergang)
- **1850:** **Wal-Pod-Begegnung** (große Gruppe — bewahrtes Phänomen) · Sturm-Nachläufer · Kuroshio-Ausläufer
- **1990:** Marine-Sonar (Kalter Krieg!) · Treibmüll-Anfänge (statt voller Müllstrudel) · Kuroshio
- **2026:** Marine-Sonar · Pazifischer Müllstrudel · Kuroshio (das aktuelle Skript)
#### Etappe 4 (Hawaiianische Gewässer)
- **1850:** **Walfang-Station Lahaina am Horizont** · Geburt im versteckten Kanal
- **1990:** Erste Brutgebiete vor Maui (mit Walbeobachtungsbooten als neues Phänomen) · Geburt
- **2026:** Erste Brutgebiete (mit etablierter Walbeobachtung + Schiffsverkehr) · Geburt
### 4.3 Action-Minispiel Frachtroute (2D)
Inspiration: `wal-frachtroute(4).html`**aber in 2D**.
**Mechanik:**
- Seitenansicht: Wasseroberfläche oben, Tiefe unten bis ~150 m.
- Wal-Mutter (große Silhouette) + Wal-Kalb (kleiner, folgt nach).
- Schiffe ziehen von rechts nach links durch den oberen Bereich. Tiefgang 12-15 m sichtbar.
- Player steuert vertikal (↑↓) und horizontal (←→ — leichte Strömung).
- 2 Atem-Bars (Mutter, Kalb) — Auftauchen füllt, Tauchen leert. Kalb leert schneller.
- Progress-Bar oben: Querung der Route (0→100 %).
- Sonnenstrahlen-Effekte zur Tiefe (Vol-Light-Style, einfache lineare Gradienten).
**Verlier-Bedingungen** (wie im Original): Kollision Mutter, Kollision Kalb, Mutter ertrinkt (Atem 0), Kalb ertrinkt.
**Win-Bedingung:** Querung 100 % erreichen.
Die Variante:
- **1850:** Ersetzt durch **Walfänger-Brigg-Begegnung** — kein Tauchspiel, Choice-basiert (sicher umgehen vs. nahe ran), KEIN Minispiel.
- **1990:** Mini-Action wie 2026, aber nur 1-2 Schiffe statt Dauer-Strom.
- **2026:** Voll-Action wie wal-frachtroute, aber 2D.
---
## 5. Cockpit-Sichtbarkeit & Benchmark — was Atlas brauchen wird
Du baust die Sim. Atlas verkabelt teacher.html + Benchmark.php sobald deine results-Felder definiert sind. **Liefere uns:**
### 5.1 LIVE_PRIMARY_FIELDS-Vorschlag
```js
'wal': [
{k:'health_status', label:'Status', align:'center', fmt: v => LIVE_VALUE_LABELS.health[v]},
{k:'era', label:'Welt', align:'center'},
{k:'stage', label:'Etappe'},
{k:'stageName', label:'Ort', align:'left'},
{k:'day', label:'Tag'},
{k:'progressPct', label:'Reise', fmt: v => _liveBar(v, 0, 100, 'mid')},
{k:'energy', label:'⚡ Energie', fmt: v => _liveBar(v, 0, 100, 'high')},
{k:'health', label:'❤️ Gesund.', fmt: v => _liveBar(v, 0, 100, 'high')},
{k:'stress', label:'😖 Stress', fmt: v => _liveBar(v, 0, 100, 'low')},
{k:'hasCalf', label:'🐳 Kalb', align:'center', fmt: v => v ? '✓' : '—'},
],
```
### 5.2 Benchmark-Formel-Vorschlag
```php
private static function scoreWal(array $r): ?int {
$era = (int)($r['era'] ?? 0);
$days = (int)($r['days_total'] ?? 0);
$outcome = $r['outcome'] ?? null;
$energy = (int)($r['energy_end'] ?? 0);
$health = (int)($r['health_end'] ?? 0);
$stressP = (int)($r['stress_peak'] ?? 0);
if (!$outcome) return null;
// Outcome-Basis
$base = match($outcome) {
'arrival_with_calf' => 70,
'arrival_no_calf' => 50,
'whaling' => 0,
'starvation' => 0,
'injury' => 0,
default => 0,
};
// Health- und Energy-Bonus (saubere Wahl)
$bonus = round($health * 0.12) + round($energy * 0.08);
// Stress-Malus (lange Belastung)
$malus = round($stressP * 0.05);
// Zeit-Malus (Zielreise ~90 Tage)
$timePenalty = max(0, ($days - 90)) * 0.3;
return max(0, min(100, (int)round($base + $bonus - $malus - $timePenalty)));
}
```
Begründung: Outcome dominiert (Kalb-Geburt = Hauptlernziel), Health/Energy als Wahlqualität, Stress-Malus für „durch-die-Hölle"-Routen.
---
## 6. Glossar-Begriffe — Atlas reicht das nach an die Glossar-Instanz
Bitte verwende in den Begegnungs-Texten Tooltips für diese Begriffe:
| Slug | Begriff | Wo verwendet |
|---|---|---|
| `bubble-net` | Bubble-Net-Feeding | Etappe 1 Begegnung 1 |
| `migration-orientierung` | Magnetfeld-Sinn / Orientierung | Etappe 2 Intro |
| `frachtroute` | Frachtroute (Pazifik-Hauptrouten) | Etappe 2 Frachter |
| `verkehrstrennungsgebiet` | IMO-Schifffahrtsroute | Etappe 2 Wins-Faktbox |
| `geisternetz` | Verloren gegangenes Fischereinetz | Etappe 2 Müll |
| `bycatch` | Beifang | Etappe 2 Geisternetz |
| `kuroshio-strom` | Kuroshio (warme Pazifikströmung) | Etappe 3 Kuroshio |
| `marine-sonar` | Militärisches Sonar | Etappe 3 Sonar |
| `mikroplastik` | Plastik-Anreicherung im Ozean | Etappe 3 Müll |
| `pazifischer-gyre` | Pazifischer Subtropen-Wirbel | Etappe 3 Müll |
| `walfang-moratorium` | IWC-Moratorium 1986 | Etappe 4 Faktbox + 1990-Intro |
| `iwc` | International Whaling Commission | wo Moratorium erwähnt |
| `walfaengerei-1850` | Walfangindustrie 19. Jh. | 1850-Etappen |
| `brutgebiet` | Hawaii Humpback Marine Sanctuary | Etappe 4 |
| `klimazone-subtropisch` | Subtropische Zone | Etappe 3 Intro |
| `wal-gesang` | Buckelwal-Gesang | Etappe 4 |
| `speck-blubber` | Speck als Energiereserve | Etappe 1 Intro |
| `echolot-tier` | Echo-Orientierung bei Walen | Etappe 2 Frachter Hintergrund |
| `bne` | Bildung für Nachhaltige Entwicklung | Endscreen |
| `lahaina` | Walfang-Station Maui 19. Jh. | 1850 Etappe 4 |
20 Begriffe. Atlas reicht das an die Glossar-Instanz weiter — du kannst die Slugs schon verwenden, Tooltip greift dann auf Fallback zurück bis die DB-Einträge da sind.
---
## 7. Lehrplan-Anker — Atlas reicht das nach an die Lehrplan-Instanz
Wir empfehlen pro Land 8-12 Anker. Vorerst nutzt du `module_kompetenz_map` mit folgenden bekannten Kompetenzen aus dem System:
- **AT GW Sek I:** Kompetenz 1.x (Klimazonen/Wassersysteme), 2.x (globale Stoffströme), 4.x (Belastungsgrenzen), 5.x (Mensch-Natur-Konflikte)
- **CH RZG Sek I:** RZG.3.x (Mensch-Natur-Systeme), RZG.4.x (globale Handelsketten)
- **DE Sek I:** Klimawandel, Welthandel, Globale Tier-Mensch-Konflikte
- **LI:** analog zu DE Berlin/Brandenburg-Pattern
Atlas liefert nach — du musst dazu nichts tun, außer im Modul-Header das 📚-Lehrplan-Link platzieren (das ist im Header-Standard bereits drin).
---
## 8. Dateien, die du anlegen sollst
```
App/sims/wal/
├── game.html ← Hauptdatei (du baust)
├── engine.js ← optional, Sim-Logik separat (empfohlen ab ~500 LoC)
├── assets/
│ ├── img/
│ │ ├── card-wal.png ← schon angefragt, kommt von Atlas
│ │ ├── era-1850.webp ← Onboarding/Era-Picker
│ │ ├── era-1990.webp
│ │ ├── era-2026.webp
│ │ ├── stage1-alaska.webp ← Etappen-Intro-Bilder
│ │ ├── stage2-nordpazifik.webp
│ │ ├── stage3-subtropisch.webp
│ │ └── stage4-hawaii.webp
│ └── audio/ ← optional, Walgesang (NOAA Public Domain)
│ └── humpback-song.mp3 ← falls du Audio-Element nutzt
```
**Bildstil:** Flat Scandinavian (siehe sim-spec-2026-06-12.md §6). DALL-E-Prompt-Block:
```
Flat scandinavian illustration, geometric shapes, soft warm color palette
(#1f4b37 forest, #4a7c4e moss, #e8c547 honey, #e8e4d8 sand background,
#b04a3e coral accent sparingly). No people, no text, no photo-realism.
Clean educational style for children 10-14, Sek I.
[hier deine Szene-Beschreibung]. Square 1024x1024.
```
WebP, max 200 KB pro Bild. Atlas hilft bei Bildgenerierung wenn du DALL-E-Briefings schickst.
---
## 9. Was Atlas am Ende übernimmt (du musst nicht)
1. `LIVE_PRIMARY_FIELDS['wal']` in [`App/teacher.html`](../App/teacher.html) einbauen (deine Vorlage aus §5.1)
2. `Benchmark::scoreWal()` in [`App/php/lib/Benchmark.php`](../App/php/lib/Benchmark.php) integrieren (deine Formel aus §5.2)
3. Glossar-Begriffe an Glossar-Instanz weiterreichen (deine Liste aus §6)
4. Lehrplan-Anker an Lehrplan-Instanz weiterreichen (Atlas-Vorschlag aus §7)
5. Playwright-Test in `.dontDeploy/playwright/tests/stufe1-smoke/`
6. Deploy
7. Status auf `aktiv` schalten nach Test-Welle
---
## 10. Done-Definition
Du gibst zurück:
- [ ] `App/sims/wal/game.html` (+ optional `engine.js`)
- [ ] Sim-eigene Assets in `App/sims/wal/assets/`
- [ ] Eine kurze README im Sim-Ordner: was du implementiert hast, was offen ist
- [ ] Aktualisierte LIVE_PRIMARY_FIELDS-Liste (falls deine results-Felder anders heißen)
- [ ] Aktualisierte Benchmark-Formel (falls deine results-Felder anders heißen)
- [ ] Aktualisierte Glossar-Begriff-Liste (falls du Begriffe ergänzt oder umbenennst)
Die Sim muss:
- [ ] Alle 3 Welt-Varianten spielbar liefern
- [ ] Bei `WAL_FORCED_ERA` direkt in dieser Welt starten
- [ ] Bei `WAL_FORCED_ERA=null` Era-Picker zeigen
- [ ] `GGS_LIVE_STATE` mit allen Feldern aus §3.4 liefern
- [ ] `GGS_TUTORIAL.replay()` registrieren
- [ ] Submit am Reise-Ende abgeben
- [ ] localStorage-Autosave pro Era
- [ ] iPad-funktional sein
- [ ] Sprache: NIEMALS „spielen/Spiel/Spieler". Immer „bearbeiten/Simulation/Lernende". Sek-I-Du-Form.
- [ ] Leichte-Sprache-Variante respektieren wenn `STUDENT_EASY=true`
---
## 11. Wenn du Fragen hast
Bei Plattform-Fragen: Atlas (Plattform-Instanz). Bei inhaltlich-didaktischen Fragen: Thomas. Bei Glossar oder Lehrplan: jeweilige Instanzen (siehe sim-spec-2026-06-12.md §14).
Die Plattform-Standards in sim-spec-2026-06-12.md sind Pflicht — Abweichungen bitte vorher abklären, nicht eigenmächtig „abkürzen". Wenn dir Conventions fehlen oder unklar sind, frag — wir ergänzen die Spec.
**Erfolg: ein didaktisch starkes, fachlich korrektes, iPad-funktionales, persistentes Wal-Migrations-Modul mit drei vergleichbaren Welt-Varianten, das in eine 35-Minuten-Schulstunde passt.**
Viel Erfolg!
— Atlas