I'm new to scripting but was hoping to write some scripts to support snapping movement constrained to isometric maps. When a player selects a token and presses up/down/right/left arrow key, I'd like the token to move along the isometric grid. In theory this is pretty straightforward. Register a on("change:graphic") listener, compare the last position to the current position, and use that to interpret which way the player wanted to move, and then update the token's ACTUAL position so it fits properly onto the isometric grid. What I'm seeing in practice is that if I move a token around, my event handler function is only getting called every so often. Based on output to the API logs, it's skipping updates. Is there a way to listen for keypresses? Is there a way to ensure I get a callback for *every* position update? Is there a more efficient way to handle "alternate" grids besides the built-in square grid? Thanks!