TODO:

  • filter non-events from undo (ex. moving a button to same squareUndo)
  • rethink undo. Kind of buggy when you spam click it because of dependencies between moves
  • speed up undo when you spam click it?