Add new level BT_level1.json featuring guards, enemies, and interactive elements.
Introduce "cell" and "wsmi" overlay configurations in src/config/overlays.json.
Update overlay textures (overlays.png, overlays.psd) to support the new overlay frames.
- Move walls, overlays, items, enemies, and campaigns to JSON registries in
src/config/ (with offline fallbacks baked into registry.js)
- Upgrade level format to v2: add `overlays` and `items` arrays; migrate
v1 `"enemy"` types to the default from enemies.json
- Raycaster: full texture mapping via baked canvas textures, overlay compositing,
and distance/side shading
- SpriteRenderer: texture-based billboards for enemies, pickups, and decorative
items with per-def scale and flash textures
- Editor: palette with dropdowns populated from config JSONs (wall/overlay/item/
enemy/start/pickup/erase); paint overlays on walls, items on floors; show
overlay triangles, item squares, enemy circles in the grid
- GameMap: overlay tracking, blocking-item collision via isBlocked, overlayAt/
setOverlay helpers
- Player: use isBlocked so blocking items stop movement like walls
- Add MenuScene for campaign selection from campaigns.json; victory screen
gains "Return to Menu" button
- Bump RENDER_* to 960×600 (1:1 with display canvas)
- Update levels to v2 format with specific enemy types, overlays, and items