Teil 1 — Schueler-Lizenz-Gate (gilt fuer alle Klassen-Schueler ohne gueltige
Lizenz = zugewiesen, nicht storniert, nicht abgelaufen):
- Server-Gate zentral im Front-Controller (index.php + php/lib/license_gate.php):
eingeloggte Klassen-Schueler ohne Lizenz sehen bei JEDER Sim-Route statt der
Simulation eine Hinweis-Seite "Deine Lehrperson muss dir noch eine gueltige
Lizenz zuweisen". Schnell-Ausstieg fuer Nicht-Schueler/Nicht-Sim (kein Cookie
-> keine DB-Abfrage). Autodidakt ohne Klasse: nicht lizenzpflichtig.
- modules.php?student=1 liefert 'licensed'; Schueler-Cockpit (schueler.html)
zeigt oben die Meldung und sperrt die Start-Buttons.
Teil 2 — Lehrer-Cockpit:
- Rote Warnleiste ganz oben, wenn Schueler:innen ohne gueltige Lizenz in der
Klasse sind (+ Link "Jetzt zuweisen"). licenses?class_id=X liefert dazu die
Liste 'unlicensed'.
- Lizenzen-Lasche: neue Sektion "Ohne gueltige Lizenz" mit Einzel- und
Sammel-Zuweisung (auto_assign) — sonst fuehrt die Warnung ins Leere.
Kunden-Vereinfachung (Feedback): keine Auto-Erkennung/Dedup mehr (Ansprech-
partner koennen wechseln). Kunde = Freitext "Name/Verlag/Schule" + Mailadresse,
je Bestellung gespeichert. Editierbares Kundennummer-Feld + Autocomplete entfernt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Bau-Ablehnung erklaert jetzt immer auch die Bauregeln des Gebaeudes
(Toast: Grund + Beschreibung, 7 s).
- Lehrer-Schalter fuer den Vorlese-Modus: class_modules.audio_info
(Migration, Default AN) + modules-API set_audio_info + Toggle auf der
Modul-Karte im Cockpit (Vorlesen an/aus) + Wrapper injiziert
TT_FEATURES.audioInfo + Sim blendet den Umschalter aus und erzwingt
Lese-Modus, wenn gesperrt.
- Bus zeigt bei Rueckfahrt sein Heck: Heckscheibe + rote Ruecklichter,
Tuer/Spiegel richtungsabhaengig.
- Bikepark-Flowtrails: 3 Stufen hangAUFwaerts (gleiche Richtung wie
Lift-Pisten).
- Info-Button an jedem Bauwerk im Baumenue: erklaert Wirkung, Kosten,
Lage-Regeln und Lehrplan-Wissen VOR dem Bau.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Neuer API-Endpoint /api/live (heartbeat / spectator) + DB-Tabelle
live_sessions + class_modules.paused-Spalte
- Plattform-Live-Client (assets/js/live-client.js): Heartbeat,
Pause-Overlay, Spectator-Mode bei ?view=teacher
- ggs_inject_live() in _scripts.php als Helper, in alle 11 Sim-Wrapper
integriert
- Lehrer-Cockpit: tabellarische Klassen-Live-Ansicht pro Sim,
Pause-Toggle, blinkender Tab-Indikator wenn aktive Sessions
- Submit-Bug erschlagen: progress.php hat jetzt submit_assessment-
und reflection-Action; saves.php akzeptiert beide Key-Konventionen;
alle Direkt-Pfad-API-Files mit require_once-Bootstrap
- Avatar-Default: zufaelliger DALL-E-Avatar fuer neue Schueler:innen
- Admin-Styleguide-Seite mit Bildstil, Farb-Tokens, Layout, iPad-Pattern
- Klima 2D + 3D: GGS_LIVE_STATE-Hook, Klima 2D zusaetzlich skipResume
fuer Klassenaufgaben-Reset
- Test-Lehrer Jakob + 3 Schueler:innen lokal + auf Live angelegt
- Rundbriefe an alle Sim-Instanzen + Submit-Briefe an sonnensystem,
busfahrt, energiemanager + Glossar-Anfrage zu Grundriess
- Status-Uebergabe in _inbox/zentrale/_status.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>