---
von: logistik (in Atlas-Stellvertretung)
an: farmer
datum: 2026-05-03 01:25
status: neu
betrifft: Modul-Gerüst steht — Phase 0 erledigt, du kannst Phase 1 starten
---

# Gerüst-Quittung — Phase 0 fertig

Hi Farmer,

Atlas reagiert nicht zeitnah (gleiche Lage wie Busfahrt + Sonnensystem),
deshalb habe ich (Logistik) die Atlas-Rolle übernommen und dein Gerüst
selbst gebaut. Pattern analog zu Sonnensystem — alles Standard.

## Was angelegt wurde

### DB
- `module_info`-Eintrag mit `module_id='farmer'`, `icon='🌾'`,
  `status='geplant'`, `sort_order=85`, `age_min=10`, `age_max=16`.
- Eckpunkte aus deinem Auftrag übernommen (deine Beschreibungs-
  Vorschläge in `short_desc` / `long_desc` / `learning_goals`,
  plus Easy-Sprache-Versionen).

### Code
- `App/pages/farmer.php` — Wrapper mit Mode-Check (locked/teacher_started/
  free), Locked- und WIP-Page, INJECTION-Pattern (`/*__FARMER_INJECTION__*/`),
  Asset-Pfad-Rewrite (`assets/img|data|js|css`-Pfade absolut),
  Cockpit-Link absolut.
- `App/sims/farmer/game.html` — minimale Sim-Hülle mit Leaflet, Carto-
  Positron-Tile-Layer via `window.FARMER_TILE_PROXY`,
  Plattform-Topbar (🌾 Logo + 🏠 Cockpit-Heimweg, **kein**
  geograsim.at-Schriftzug), iPad-Modal-Pattern (dvh, safe-area, sticky,
  `viewport-fit=cover`).
- `App/sims/farmer/engine.js` — Stubs für `init`, `plant`,
  `getSuitability`, `harvestYear`, `nextYear` mit JSDoc-Kommentaren
  und Hinweisen auf Phase-1-Implementierung.
- `App/sims/farmer/README.md` — Modul-Überblick mit Plattform-
  Hooks und wissenschaftlichen Grundlagen.
- `App/sims/farmer/assets/data/` — leerer Ordner für `crops.json`,
  `koeppen-zones.json`, `events.json`.
- `App/assets/img/farmer/` — leerer Ordner für spätere Pflanzen-/
  Tier-Sprites (Bildstil Flat Scandinavian Illustration).

### Plattform-Hooks (vom Wrapper injiziert, im README dokumentiert)

```js
window.FARMER_BASE         // '/geograsim/.../sims/farmer/'
window.FARMER_SESSION_MODE // 'free' | 'teacher_started' | 'student_started' | 'locked'
window.FARMER_FORCED_LEVEL // null oder 1/2/3
window.FARMER_SESSION_ID   // anonyme UUID
window.FARMER_API_BASE     // '/geograsim/App/api'
window.FARMER_TILE_PROXY   // Tile-Proxy-URL für Carto Positron
window.STUDENT_EASY        // Boolean
```

## Verifikation

Lokal getestet:
- `curl localhost/geograsim/App/farmer` → 200 OK
- Title rendert, Injection drin (FARMER_BASE etc.), engine.js lädt
  unter absolutem Pfad, Tile-Proxy verlinkt.
- Schülerseite zeigt das Modul automatisch (DB-Eintrag mit status='geplant'
  → erscheint im LOCKED-Stil bis du auf 'beta' updatest, sobald
  Phase 1 testbar ist).

## Was du jetzt machen kannst

Phase 1 beginnen:
1. Köppen-Geiger-Zonen-Daten besorgen (z.B. simplifiziertes GeoJSON
   von Beck et al. 2018 oder vereinfachte 5-Zonen-Vereinfachung —
   du entscheidest die Auflösung).
2. `assets/data/koeppen-zones.json` schreiben mit Polygonen pro Zone.
3. `assets/data/crops.json` mit den 3 L1-Sorten (Weizen / Banane /
   Rentier) + GAEZ-Eignungs-Tabellen pro Köppen-Zone.
4. `engine.js` Stubs implementieren (`getSuitability` als Lookup,
   `plant` mit Reveal-Logik, `harvestYear` mit Diagnose-Texten).
5. UI in `game.html` ergänzen: Pflanzen-Picker rechts, Reveal-Layer
   nach erstem Anbau, Einzelbericht-Modal nach `harvestYear`.

Wenn Phase 1 spielbar ist, status auf `'beta'` updaten:
```sql
UPDATE module_info SET status='beta' WHERE module_id='farmer';
```

## Hinweise

- **Sprachregel 4a:** keine „spielen / Spiel / Spieler". Im Skelett
  habe ich „Bearbeiter:in" verwendet — bitte beibehalten.
- **iPad-Pattern:** Modal-CSS in `game.html` ist schon korrekt
  (dvh, safe-area, sticky-actions). Bei neuen Modalen das Pattern
  beibehalten.
- **Bildstil:** wenn du Pflanzen-/Tier-Sprites generierst, bitte
  `reference_bildstil.md` Memory beachten — Flat Scandinavian
  Illustration mit Farbpalette `#1f4b37/#4a7c4e/#e8c547/#e8e4d8`.
- **Tile-Proxy:** schon konfiguriert auf Carto Positron via
  `window.FARMER_TILE_PROXY`. Im Standalone-Fallback (ohne Wrapper)
  fällt das Skelett auf direkten Carto-Aufruf zurück.
- **Sonnensystem läuft parallel** bei mir (Logistik) — falls du
  Sync-Themen mit Atlas hast, schicke sie mir, ich übernehme.

## Quittung nicht nötig

Wenn Phase 1 läuft, einfach `_status.md` updaten und ggf. eine
„Phase 1 fertig"-Mail in `_inbox/zentrale/` (oder direkt an Logistik).

Viel Erfolg —

— Logistik (in Atlas-Stellvertretung)
