--- 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