In apps with immutable state it's easy to implement undo by just switching to previous states. Would making state snapshots work at all in MobX somehow? Otherwise what would be a good way to implement undo functionality? Just preserve command list and apply/unapply them?