- Ground snap: scan for first solid below actor, place exactly on surface
- Ceiling snap: scan for first solid above actor, place exactly beneath
- Eliminates 1px gap that caused slow sink cycle → camera wobble fixed
- Also fixes step-up early return preventing fall-through
- A* pathfinding for actor (find_path in actors.rs)
- Right-click sets target (actor_goto), finds ground below air clicks
- Actor follows path with horizontal velocity + jumping
- Step-up: actor climbs 1-4px small edges/obstacles
- Jump height limited to 40px in pathfinding (avoids unreachable targets)
- Powder displacement when walking through sand/dirt
- Actor collision: solids block, powders pass-through
- Fallback: direct movement if no path found
- New actors.rs: Rigidbody Actor with gravity, grid collision, powder displacement
- Actor rendered as colored rectangle on pixel buffer (zoom-scaled)
- WASM API: spawn_actor, move_actor, update_actor, actor_x/y
- WASD/Arrow keys control actor, camera follows with soft lerp
- displace_powders pushes sand/dirt out of actor area
- Collision: stops at solids, walks through powders
- Updated AGENTS.md with actor documentation
- Acid now uses acid_resist + health-based damage (not instant delete)
- Acid dissolve speeds: Wood ~2s, Dirt ~2.8s, Stone ~4.3s, Iron immune
- New material: Iron (ID 16) - silver, static, acid-proof, heat-conductive
- Iron texture: bright highlights for metallic shine
- Iron reflects light (light_block: 150)
- Iron heat_conduct: 200 - conducts heat quickly through entire block
- Improved heat transfer formula (divisor 255→200)
- Updated AGENTS.md status
- No player code (rolled back for fresh start)
- World expanded to 4096x3072 (16x area, tiled 4x4 copies)
- Active region margin increased to 200px
- Liquid momentum system (FLAG_MOMENTUM) for wave sloshing
- Zoom-at-cursor support (camera.zoomAt)
- Smoother zoom steps (0.2 per scroll tick)
- Light propagation scaled by zoom (passes & falloff)
- AGENTS.md updated with all current features