# Lumen Vale (Fable 5 build)

A small painterly metroidvania built by Claude Fable 5 in two passes:
- v1 (initial build): 22m / 68 turns / $4.38 + $0.28 image gen — single-room with Aether Wings ability
- v2 (extension): 16m 33s / 32 turns / $3.43 + $0.16 image gen — 3 connected rooms (Vale → Crystal Grove → Sunken Shrine), Ember Dash ability, spore enemy, save state, mini-map HUD

Total: 38m 33s / 100 turns / $7.81 + $0.44 image gen

Art via OpenAI gpt-image-2 with magenta chroma key. Procedural physics, particle FX, audio synth.

## Run
```
npm install
npm run build
npm run preview  # http://localhost:4173
```

## E2E
```
npm run test:e2e   # 11/11 green
```

## Files
- `src/game.ts` — main render + state + room transitions + dash mechanics + spore AI
- `src/level.ts` — room layouts (Vale, Grove, Shrine)
- `src/assets.ts` — chroma-key sprite loader + auto-trim
- `scripts/gen-sprites.ts` — gpt-image-2 sprite generation (cached on disk after first run)
- `public/sprites/` — 11 painted sprites (player, enemies, pickups, backgrounds)
- `BMO-PROMPT.txt` — the prompt given to Fable for the v2 extension

Live: https://bmo.ryanboye.com/fable-metroidvania-v2/
