Add move validation, save, and rollback
Update event handler code to use validation