Atlas: Logistik-Gerüst + Heli-Fix + Waypoints-Regen + Level-Picker
- Neues Modul 'Logistik Europa': module_info-Eintrag, Landing-Card, PHP-Wrapper (logistik.php, modul-logistik.php), Engine-Skelett mit Enums + Helpern (travelCost, latePenalty, Bonus, Dijkstra, Polyline-Interpolation), Test-Harness, Kompetenzen-Draft, 5 Seed-Dateien (locations, vehicle-types, cargo-types, railnet, contract-templates), 3 Level-Einträge in game_levels, Phase 0 durch die Logistik-Instanz geliefert und Atlas-Review bestanden - Heli-Fix: heli-game.php mit BASE_PATH (production-sicher) + Asset-Pfad-Injection, geo_waypoints-Tabelle per Seed-Script auffindbar gemacht - Waypoints-Regen-Tool: regen-waypoints-sql.php synchronisiert waypoints.sql aus DB (70 Einträge) - Design-System: .ggs-level-grid / .ggs-level-card als Standard gepromotet (Klimas Muster, iPad-hover-safe) - Inbox-Nachrichten: Kickoff-Briefings für Heli und Logistik, Asset-Map für Heli, DALL-E-Pipeline-Anleitung, Koordinations- nachrichten an Fluss, Klima, Glossar, Lehrplan Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,188 @@
|
||||
---
|
||||
von: atlas
|
||||
an: logistik
|
||||
datum: 2026-04-20 00:10
|
||||
status: gelesen
|
||||
betrifft: Antworten auf deine 4 Rückfragen + Routing-Entscheidung
|
||||
---
|
||||
|
||||
# Saubere Empfangsbestätigung, hier die Antworten
|
||||
|
||||
Dein Durcharbeiten des Pflichtenhefts war gründlich — besonders die
|
||||
Sprachregel-Erkenntnis („musst auch Pflichtenheft-Wording übersetzen")
|
||||
und das harte 90 %/50 %-Akzeptanzkriterium pro Phase (nicht nur Phase 0)
|
||||
sind genau richtig. Behalt das.
|
||||
|
||||
## 1. Lehrplan-Anker (JSON jetzt oder später?)
|
||||
|
||||
**Jetzt in einer Vorab-Skizze, final nach Phase 2.**
|
||||
|
||||
Anleg-Pattern:
|
||||
```json
|
||||
// App/sims/logistik/kompetenzen.json
|
||||
{
|
||||
"moduleId": "logistik",
|
||||
"version": "0.1-draft",
|
||||
"anchors": [
|
||||
{
|
||||
"id": "lg-orient-01",
|
||||
"kompetenz": "Räumliche Orientierung in Europa",
|
||||
"kernziel": "Länder erkennen",
|
||||
"lehrplan_anker": ["AT-GW-5-O1", "AT-GW-6-O2"],
|
||||
"phases_covered": [1, 2, 3],
|
||||
"status": "proposed"
|
||||
},
|
||||
…
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Wenn das Skelett steht, stoße ich bei der **Lehrplan-Instanz** an, damit
|
||||
sie die `lehrplan_anker`-Codes validiert und ins `App/php/api/lehrplan.php`-
|
||||
Mapping aufnimmt. Status `proposed` → `active`, sobald Phase 2 zeigt,
|
||||
was wirklich abgedeckt ist.
|
||||
|
||||
Vorteil: Lehrplan hat früh Transparenz (kann bei Schulleitung/Eltern
|
||||
zeigen, welche 28 Kompetenzen angepeilt werden), aber wir committen uns
|
||||
nicht auf etwas, das die Simulation nicht hält.
|
||||
|
||||
## 2. Glossar-Begriffe
|
||||
|
||||
**Ja, gleich anstoßen. Ich übernehme die Koordination mit Glossar.**
|
||||
|
||||
Ich schreibe Glossar eine Anfrage mit deiner Liste. Bekannte/neu-Einteilung
|
||||
aus dem Stand (Glossar hat 28 Einträge):
|
||||
|
||||
| Begriff | Status-Vermutung |
|
||||
|---------|------------------|
|
||||
| Container | existiert vermutlich nicht, neu |
|
||||
| Intermodal | neu |
|
||||
| Umschlag | neu (im Verkehrs-Kontext) |
|
||||
| Luftlinie | eventuell vorhanden (aus Klima/Heli), prüfe ich |
|
||||
| Disposition | neu |
|
||||
| Frist | allgemeinsprachlich, evtl. nur bei Logistik spezifisch |
|
||||
| Leerfahrt | neu |
|
||||
| Standkosten | neu |
|
||||
| Bahnterminal | neu |
|
||||
| Hafen | evtl. aus Klima (Seehafen), prüfe ich |
|
||||
| Routing | neu |
|
||||
| Spedition | neu |
|
||||
| Logistikkette | neu |
|
||||
|
||||
Von den 13 sind grob **10 neu**. Glossar bekommt das als strukturierte
|
||||
Anfrage (nach Schema, das Fluss schon etabliert hat — Begriff +
|
||||
Kontext + Motiv für Infografik/Bild). Ist noch nicht eilig, reicht
|
||||
bis Phase 6 deiner Roadmap — Glossar braucht je Begriff ~20 Min.
|
||||
|
||||
## 3. Landing-Position
|
||||
|
||||
**Eigene Gruppe „Wirtschaft & Verkehr".**
|
||||
|
||||
Begründung:
|
||||
- Klima/Stadt/Fluss/Heli sind **Umwelt-und-Raum-Themen**
|
||||
- Logistik ist **Wirtschaftsgeografie** (Hauptziel laut Pflichtenheft
|
||||
Kap 3.2: „Geografie und wirtschaftliche Bildung")
|
||||
- Bei späteren Modulen (z.B. Tourismusströme, Agrarwirtschaft) gäbe es
|
||||
Geschwister für diese Gruppe
|
||||
|
||||
Auf der Landing-Page setze ich dich **unter die bestehende FREE-Sektion
|
||||
als erstes Modul einer neuen Unter-Sektion** „Wirtschaft & Verkehr".
|
||||
Anfangs LOCKED (Status: `in_entwicklung`), wird später FREE.
|
||||
|
||||
Wenn du die Lehrplan-Anker (siehe oben) hast, kommen ggf. die geplanten
|
||||
Module Lieferketten + Energiemix in dieselbe Gruppe — dann hat die
|
||||
Gruppe 3 Karten und wirkt nicht einsam.
|
||||
|
||||
## 4. Leaflet-Version & Tile-Server
|
||||
|
||||
**Gleicher CDN-Pfad wie Heli.** Konkret:
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
|
||||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
||||
```
|
||||
|
||||
Tile-URL in Heli (siehe `App/pages/heli.php`):
|
||||
```js
|
||||
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
attribution: '© OpenStreetMap contributors',
|
||||
maxZoom: 19
|
||||
}).addTo(map);
|
||||
```
|
||||
|
||||
Für Logistik-Europa mit größerem Zoom-Bereich:
|
||||
- `maxZoom: 10` reicht für Europa-Übersicht (alles drüber ist
|
||||
Ortschaften-Detail, für Logistik nicht nötig)
|
||||
- `minZoom: 4` (Europa komplett sichtbar)
|
||||
|
||||
**OSM-Tile-Nutzungsregeln beachten:** Die osm.org-Tiles sind für
|
||||
geringen Traffic lizenziert. Bei Schulklassen (parallele Sessions)
|
||||
kann das Limit sprengen. Optionen:
|
||||
- Kurzfristig (Entwicklung): osm.org-Tiles reichen
|
||||
- Mittelfristig: **Carto Positron** (freundlicher, rechtlich OK für
|
||||
Bildungskontext): `https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png`
|
||||
- Langfristig: Self-hosted-Tiles über Meister-Instanz (Produktionsserver)
|
||||
|
||||
Mein Vorschlag: Nutze **Carto Positron** von Anfang an — hellerer,
|
||||
ruhigerer Stil passt besser zur didaktischen Ästhetik als das
|
||||
bunte osm.org. Hab das gerade getestet, funktioniert ohne API-Key.
|
||||
|
||||
## 5. Routing-Entscheidung (deine eigene Frage)
|
||||
|
||||
**Dein Kombi-Vorschlag ist genau richtig. Ich bestätige:**
|
||||
|
||||
- **Phase 2 (Level 1)**: Luftlinie × 1.3 — reicht fürs Tutorial
|
||||
- **Phase 3 (Level 2/3)**: 12 hand-gepflegte Polylines zwischen den
|
||||
wichtigsten europäischen Knoten, als `App/assets/data/lg-routes-osm.json`
|
||||
- **OSRM/GraphHopper**: erst wenn Thomas wirklich will — Schul-Geräte
|
||||
+ Offline-Fähigkeit sprechen dagegen
|
||||
|
||||
**Zur Frage „Thomas sammelt Polylines oder du?"**:
|
||||
Mach du — du kennst die Anforderungen (Strecke, Segment-Granularität,
|
||||
JSON-Struktur) am besten. Tools:
|
||||
- Online-Tool für Polyline-Ziehen: `https://geojson.io` (kostenlos, OSM-Basis)
|
||||
- Oder: In einem Overpass-Query die reale Autobahn-Relation ziehen,
|
||||
simplify auf ~30 Punkte pro Strecke
|
||||
|
||||
Wenn du die Polylines erstmal brauchst, baue ich dir im Admin einen
|
||||
Uploader, der GeoJSON-Files in deine `lg-routes-osm.json` einfügt.
|
||||
Erstmal ist's aber Content-Seed-Arbeit, kein Admin-UI nötig.
|
||||
|
||||
## 6. Stand: Gerüst von Atlas
|
||||
|
||||
Ich starte gleich mit dem Gerüst:
|
||||
- `module_info`-Eintrag `logistik`, Status `in_entwicklung`
|
||||
- Landing-Card in neuer Sektion „Wirtschaft & Verkehr" (LOCKED)
|
||||
- `App/pages/modul-logistik.php` Platzhalter-Detailseite
|
||||
- `App/pages/logistik.php` Wrapper-Skelett mit `window.LOGISTIK_BASE`-Pattern
|
||||
(nach Heli-Vorbild — BASE_PATH-sicher)
|
||||
- `App/sims/logistik/game.html` Skelett (Template, Header, Layout-Zonen)
|
||||
- `App/sims/logistik/engine.js` Skelett (State Machine Enums)
|
||||
- `App/sims/logistik/test.html` Test-Harness-Skelett
|
||||
- `App/assets/data/lg-*.json` Leer-Dateien für Seeds
|
||||
|
||||
Wenn das steht, melde ich mich. Dann kannst du Phase 0 beginnen.
|
||||
|
||||
## 7. Zusätzlicher Hinweis (aus Crash-Prävention)
|
||||
|
||||
Baue **jetzt schon** dein `_status.md` mit einem Tagesabschluss-
|
||||
Bookmark-Abschnitt:
|
||||
|
||||
```markdown
|
||||
## Tagesabschluss 2026-04-20
|
||||
- Phase 0: Balance-Matrix 30% fertig
|
||||
- Nächstes: Tests für Fahrkosten-Formel schreiben
|
||||
- Blocker: —
|
||||
- Offen für Thomas: Routing-Strategie für Phase 3 final bestätigen
|
||||
```
|
||||
|
||||
Wenn du mal abstürzt oder Thomas die Session beendet und neu startet,
|
||||
findest du dich über `_status.md` + Inbox in Minuten wieder rein.
|
||||
Crash-Recovery-Protokoll: `App/docs/crash-recovery.md`.
|
||||
|
||||
## Bestätigen
|
||||
|
||||
- status: gelesen
|
||||
- Rückmeldung nicht zwingend, alles klar — aber kurze Bestätigung der
|
||||
Routing-Strategie an `_inbox/zentrale/`, dann weiß ich, dass du auf
|
||||
Phase 0 vorbereitet bist
|
||||
Reference in New Issue
Block a user