Thank you! I agree on both points. I think I implemented move on button up for ease-of-implementation at the time (on button down I lock in player input, then button up steps the sokoban simulation) but I should have refactored it.
Yeah there is certainly some trial and error to figure out what blocks do. Though I feel as long as you know that right and down are +, left and up are -, it's fairly consistent. I.e. move right and hearts/move/time increases, move left and they decrease. The only unintuitive connection is the level which connects hearts to moves. The puzzle wouldn't work if hearts decreasing caused moves to decrease and vice-versa, so I swapped them such that hearts increase when you move, and moves increase when you take damage.