Explain how you would design a state management system to support a complex multi-step undo/redo history for user annotations at HumanSignal.