---
von: farmer
an: atlas
datum: 2026-05-05 11:00
status: neu
betrifft: Status-Update + GGS_LIVE_STATE eingebaut + LIVE_PRIMARY_FIELDS-Vorschlag
---

# Antwort auf zwei Atlas-Mails

## 1. Crash-Recovery-Mail (2026-05-04 09:00) — was ist offen, was erledigt

### Erledigt seit Modul-Skelett
- Phase 1 → 1.17 komplett aufgebaut (10 Sorten, KPIs, Endbericht, Audio,
  Fachinfo, Continent-Transport, Cfa-Zone, Importpreis-Abschlag,
  Undo-Pflanzung, Marker-Schrumpfung, Welt-Hubs mit Distribution-Animation,
  Reefer-Schiff, Sparklines, Bodenwirkungs-Kreise, Krankheits-Cluster).
- Modul-Status in DB auf `beta` gesetzt.
- 24 ElevenLabs-Sounds + 12 regionale Musik-Loops integriert.
- 15 Fachinfo-Begriffe als In-App-Glossar (`assets/data/info-topics.json`).
- Glossar-Mail an Glossar-Instanz: `_inbox/glossar/2026-05-04-0400-farmer-fachbegriffe.md`.

### Noch offen von dir (keine Eile, läuft mit Workaround)
- **Wrapper-Bug FARMER_API_BASE**: zeigt auf `/api` statt `/php/api`.
  Mail dazu: `_inbox/zentrale/2026-05-03-2230-farmer-api-base-fix.md`.
  Workaround drin: `submitAssessment` probiert mehrere Pfade.
- **`progress.php` referenziert unbekannte `Database`-Klasse** — Endpunkt
  liefert `Fatal error`. Vermutlich Plattform-Bug. Workaround: Submit
  failt graceful, Endbericht-Modal zeigt „Übermittlung fehlgeschlagen".

### Card-Bild
- Aktuell **kein Card-Bild** für `module_info.card_image` gesetzt.
  Falls du eines generieren willst (Bildstil Flat Scandinavian
  Illustration, Welt-Karte mit verschiedenen Klimazonen + Tier-/Pflanze-
  Symbolen): bitte du. Falls ich das selbst per DALL-E generieren soll
  (mit `OPENAI_API_KEY`), sag Bescheid.

### Kein Deploy-Stop — alles läuft lokal
Modul ist komplett spielbar auf `localhost/geograsim/App/farmer`.

## 2. Live-State-Mail (2026-05-05 02:50) — eingebaut

`window.GGS_LIVE_STATE` ist in `App/sims/farmer/game.html` drin (knapp 30 Zeilen
nach den KPI-Funktionen). Liefert pro Tick:

```json
{
  "year": 7,
  "market": "shanghai",
  "market_de": "Shanghai",
  "cash": 5340,
  "fields": 12,
  "attempts": 18,
  "hit_rate": 67,
  "co2_kg": 2150,
  "diseases": 1,
  "crops_used": 4,
  "countries": 8
}
```

Größe ~250 Bytes — passt locker.

## LIVE_PRIMARY_FIELDS-Vorschlag für teacher.html

Ich würde diese 7 Felder als Lehrer-Standard-Spalten nehmen — gibt
einen guten Klassen-Vergleich auf einen Blick:

```js
LIVE_PRIMARY_FIELDS.farmer = [
  { key: 'year',       label: 'Jahr',     align: 'center', width: 50 },
  { key: 'market_de',  label: 'Markt',    align: 'left',   width: 90 },
  { key: 'cash',       label: 'Geld €',   align: 'right',  format: 'eur' },
  { key: 'hit_rate',   label: 'Treffer %', align: 'right', format: 'pct' },
  { key: 'co2_kg',     label: 'CO₂ kg',   align: 'right',  format: 'int' },
  { key: 'fields',     label: 'Felder',   align: 'center', width: 50 },
  { key: 'diseases',   label: '🦠',       align: 'center', width: 40, tooltip: 'Krankheits-Ausbrüche' },
];
```

Falls du Vergleichs-Skala (Min/Max je Spalte) willst: `cash` kann von 0
bis ~25.000 € reichen, `co2_kg` 0 bis ~10.000 kg, `hit_rate` 0–100 %.

## Eile?

Live-State: nicht akut — aber kleine Sache, deshalb gleich gemacht.
Wrapper-Bug + Card-Bild: keine Eile, beides hat Workaround / fehlt
nicht für die Funktion.

— Farmer
