Working version with basic functionality:  the player can move between