anchor.diff:  
           override dispatcher.Register gameplay world =
               world |>
  -                (observe (EntityChangeEventAddress ->>- getPlayerAddress gameplay.ScreenAddress) gameplay |> subscribe handlePlayerChange) |>
  +                (observe (EntityChangeEventAddress ->>- (proxyPlayer gameplay).EntityAddress) gameplay |> subscribe handlePlayerChange) |>
                   (observe (TouchEventAddress ->>- getHudFeelerAddress gameplay.ScreenAddress) gameplay |> filter isObserverSelected |> monitor handleTouchFeeler) |>
                   (observe (DownEventAddress ->>- getHudDetailUpAddress gameplay.ScreenAddress) gameplay |> filter isObserverSelected |> monitor (handleDownDetail Upward)) |>
                   (observe (DownEventAddress ->>- getHudDetailRightAddress gameplay.ScreenAddress) gameplay |> filter isObserverSelected |> monitor (handleDownDetail Rightward)) |>
  
positive.code:             | null -> None
              | navigationPath -> Some (navigationPath |> List.ofSeq |> List.rev |> List.tail)
  
          static let isPlayerNavigatingPath address world =
              let player = World.getEntity (getPlayerAddress address) world
              ActivityState.isNavigatingPath player.ActivityState
  
          static let cancelNavigation (character : Entity) =
              let characterActivity = character.ActivityState
              let characterActivity =
                  match characterActivity with
                  | Action _ as action -> action
                  | NoActivity -> NoActivity
                  | Navigation navDescriptor -> Navigation { navDescriptor with OptNavigationPath = None }
              Entity.setActivityState characterActivity character
  
          static let anyTurnsInProgress2 (player : Entity) enemies =
              player.ActivityState <> NoActivity ||
              Seq.exists (fun (enemy : Entity) -> enemy.DesiredTurn <> NoTurn || enemy.ActivityState <> NoActivity) enemies
  
          static let anyTurnsInProgress address world =
              let player = World.getEntity (getPlayerAddress address) world
  
negative.code:                 AnimationType = CharacterAnimationFacing
                  StartTime = tickTime }
  
          static let tryGetNavigationPath touchPosition occupationMap (character : Entity) world =
              let nodes = OccupationMap.makeNavigationNodes occupationMap
              let goalNode = Map.find (vftovm touchPosition) nodes
              let currentNode = Map.find (vftovm <| character.GetPosition world) nodes
              let optNavigationPath =
                  AStar.FindPath (
                      currentNode,
  