added source/target to state
only select selected piece
deselect selected
expose squares, ignore invalid moves