WIP experiment with 95% vibe coding

feat(room): add image stack system with persistence and caching master

Implement comprehensive image stack functionality for the room system, allowing AI agents to add, organize, and persist images in the workspace. New features: - Image stacking on surfaces with LRU texture caching (max 50 textures/50MB) - Persistent image storage with UUID-based filenames - Type-safe ImagePath validation (absolute paths, format checking) - Backend file validation before IPC (size, format, existence checks) - Room schema v1.1 upgrade from v1.0 with migration support - MCP tool (add_image) for agent interaction Infrastructure: - ImageCache with Drop trait for proper GPU resource cleanup - ImageStorage module for atomic file operations - ImageStack and ImageRef interactable types - Enhanced error types with detailed messages - Integration test for end-to-end workflow Backend changes: - validateImagePathAndFile() with comprehensive checks - RoomAction.AddImage with type-safe ImagePath - ImagePath branded type for compile-time safety Files added: - game/src/room/image_cache.rs (LRU cache with Drop) - game/src/room/image_storage.rs (persistence layer) - game/src/persistence/fixtures/room_v1_1.json (migration test) All 204 tests passing with zero clippy warnings.


+1995 -24
11 changed files