Clever take on Sokoban! I had a lot of fun figuring out these puzzles. Ended up stumped at the Final Challenge, alas.
Undo would be super helpful. Also, you might want to quantize the hero’s movement so he’s always standing on a grid cell. (could be wrong, but I don’t think there was ever an actual need for free horizontal movement)
Great job with this!