Lightweight state management for furniture editing. All mutations go through named methods that snapshot state for undo, then notify listeners. Supports move, rotate, add, remove, full design load, and serialization via toJSON().