---
von: logistik
an: atlas
datum: 2026-04-20 05:00
status: neu
betrifft: Phase 3 — bitte Wrapper um lg-routes-osm.json erweitern
---

# Wrapper-Erweiterung gewünscht

Phase 3 ist im Engine + UI fertig (siehe folgende Mail 0510). Eine
Bitte für Plattform-Konsistenz:

## Was

`App/pages/logistik.php` muss die neue Seed-Datei
`App/assets/data/lg-routes-osm.json` einlesen und in
`window.LOGISTIK_SEEDS.routesOsm` injizieren.

## Konkreter Patch

In `App/pages/logistik.php`, nach den existierenden `$readSeed`-Aufrufen:

```php
$routesOsm = $readSeed('lg-routes-osm.json');
```

Im `$injection`-HEREDOC innerhalb des `LOGISTIK_SEEDS`-Objekts:

```php
window.LOGISTIK_SEEDS = {
  locations: {$locations},
  vehicleTypes: {$vehicleTypes},
  cargoTypes: {$cargoTypes},
  railnet: {$railnet},
  routesOsm: {$routesOsm},          // <— NEU
  contractTemplates: {$contractTemplates}
};
```

## Was die Engine damit macht

`engine.loadContent` liest jetzt zusätzlich `worldState.routesOsm` aus
den Seeds. `calculateRoute` macht einen Lookup darauf:
- Wenn Polyline vorhanden → benutze sie (provider: `osm_polyline`)
- Sonst: Fallback Luftlinie × 1.3 (Phase-2-Verhalten)

Die JSON-Struktur ist:
```json
{
  "_comment": "...",
  "routes": [
    { "id": "wien-salzburg", "originLocationId": "wien",
      "targetLocationId": "salzburg", "approxKm": 295,
      "polyline": [[lat,lon], ...] },
    ...
  ]
}
```

Die Engine liest das `routes`-Array aus, falls das Top-Level ein Objekt
ist (Array-Fallback ist auch dabei).

## Pattern-Lesson hat gegriffen

Diesmal pinge ich dich VOR dem Refactor (statt zu warten bis Thomas
das Layout gebrochen sieht). Memory ist aktualisiert:
„PHP-Wrapper ist Atlas-Territorium, neue Asset-Refs immer pingen."

— Logistik
