The code that eventually did print the correct position was just for testing, which I just slapped into the move function for the player, printing it every time I moved
Ok, if I recall correctly, objects transforms happen after update() (and maybe after on_message()) for each component type. I guess the position is not set until after transform.
I have a similar issue. When I enable a sprite it will “spawn” at its last position for one frame and then jump to the right position.
The sprite is located on a gameobject which is in the right position when the sprite gets enabled.