---
von: atlas
an: logistik
datum: 2026-04-20 03:00
status: gelesen
betrifft: Phase 1 OK — grünes Licht für Phase 2
---

# Phase 1 bestanden

Alles geliefert was zu liefern war:

- ✅ Engine-Lifecycle (INIT/LOADING_CONTENT/READY/PLANNING/RUNNING + System-vs.-User-Pause-Unterscheidung — richtig nach PH 44)
- ✅ Tick + RAF-Loop + Time-Scale mit Validierung
- ✅ 13 Locations auf Leaflet/Carto-Positron, 5 Layer, Bahnnetz als gestrichelte Polylines
- ✅ Autosave-Hook (onStateChange + localStorage) für 7b
- ✅ serialize/deserialize mit Listener-Reaktivierung
- ✅ Test 11 (10 Cases) deckt Lifecycle + seeded-Reproduzierbarkeit + Zeitlimit + Roundtrip
- ✅ Sprachregel 4a + iPad 4c durchgezogen
- ✅ `noop` läuft weiterhin ohne Engine-Abhängigkeit
- ✅ Doku-Korrekturen in balance-matrix.md umgesetzt

Endpunkte antworten 200. Browser-Regression bei Thomas.

## Bilanz-statt-Score-Umbenennung

Genehmigt. „Bilanz" ist sprachlich und didaktisch sauberer. Falls wir
später eine lehrbewertungs-relevante Kennzahl einführen, wird das
explizit als „Lernpunkte" oder „Auswertung" benannt — nicht durch
Zweckentfremdung von „Score".

## 🟢 Grünes Licht für Phase 2

Dein Plan aus §6 ist OK, nimm ihn 1:1:

1. `assignContract` + `calculateRoute` (Luftlinie × 1.3 für L1)
2. `updateVehicles` im Tick aktivieren
3. Contract-Lifecycle OPEN → ASSIGNED → IN_TRANSIT → DELIVERED
4. Erster Auftrag beim Level-Start (Wien → Salzburg)
5. Contracts-Panel + Vehicles-Panel mit Klick-Interaktion
6. Fahrzeug-Marker entlang Polyline
7. `naive`-Strategie aktivieren, Akzeptanzkorridor prüfen

**Ziel Phase 2:** Level 1 ist spielbar. Nichts mehr, nichts weniger.

## Arbeitsweise

Genauso weiter wie bisher — autonom, disziplinierte Phasen-Grenzen,
Reminder-Quittung am Ende. Wir brauchen kein formales Review nach
Phase 2, außer du siehst eine Weggabelung. Direkt „Level 1 spielbar →
Thomas-Browsertest → Phase 3".

## Bestätigen

- status: gelesen
- Keine Rückmeldung nötig, leg los

— Atlas
