anchor.diff:              Group.proxy <| satoga gameplay.ScreenAddress SceneName
           
           static let proxyField gameplay =
  -            Entity.proxy <| gatoea (getScene gameplay).GroupAddress FieldName
  +            Entity.proxy <| gatoea (proxyScene gameplay).GroupAddress FieldName
           
  -        static let getCharacterAddresses address world =
  -            let entityAddresses = World.getEntityAddressesInGroup (getSceneAddress address) world
  -            World.filterEntityAddresses (Entity.dispatchesAs typeof<CharacterDispatcher>) entityAddresses world
  -
  -        static let getOptCharacterAddressAtPosition position address world =
  -            Seq.tryFind
  -                (fun characterAddress -> World.getEntityBy (fun character -> character.Position = position) characterAddress world)
  -                (getCharacterAddresses address world)
  +        static let proxyCharacters gameplay world =
  +            let entities = World.getEntities (proxyScene gameplay) world
  +            Seq.filter (fun (entity : Entity) -> entity.DispatchesAs typeof<CharacterDispatcher> world) entities
  +
  +        static let proxyOptCharacterAtPosition position gameplay world =
  +            let characters = proxyCharacters gameplay world
  +            Seq.tryFind (fun (character : Entity) -> character.GetPosition world = position) characters
           
  -        //static let getCharacterAddressAtPosition position address world =
  -        //    Option.get <| getOptCharacterAddressAtPosition position address world
  +        static let proxyOptCharacterInDirection position direction gameplay world =
  +            proxyOptCharacterAtPosition (position + dtovf direction) gameplay world
           
  -        static let getOptCharacterAddressInDirection position direction address world =
  -            getOptCharacterAddressAtPosition (position + dtovf direction) address world
  -        
  -        static let getCharacterAddressInDirection position direction address world =
  -            Option.get <| getOptCharacterAddressInDirection position direction address world
  -
  -        static let getPlayerAddress address =
  -            gatoea (getSceneAddress address) PlayerName
  -
  -        static let getEnemyAddresses address world =
  -            let entityAddresses = World.getEntityAddressesInGroup (getSceneAddress address) world
  -            World.filterEntityAddresses (Entity.dispatchesAs typeof<EnemyDispatcher>) entityAddresses world
  -
  -        (* End of Addresses *)
  +        static let proxyCharacterInDirection position direction gameplay world =
  +            Option.get <| proxyOptCharacterInDirection position direction gameplay world
  +
  +        static let proxyPlayer gameplay =
  +            Entity.proxy <| gatoea (proxyScene gameplay).GroupAddress PlayerName
  +
  +        static let proxyEnemies gameplay world =
  +            let entities = World.getEntities (proxyScene gameplay) world
  +            Seq.filter (fun (entity : Entity) -> entity.DispatchesAs typeof<EnemyDispatcher> world) entities
  +
  +        (* End of Proxies *)
   
           static let createField scene rand world =
               let pathEdgesM = [(Vector2i (1, 10), Vector2i (20, 10))]
  
positive.code:                 AnimationType = CharacterAnimationFacing
                  StartTime = tickTime }
  
          static let tryGetNavigationPath touchPosition occupationMap (character : Entity) =
              let nodes = OccupationMap.makeNavigationNodes occupationMap
              let goalNode = Map.find (vftovm touchPosition) nodes
              let currentNode = Map.find (vftovm character.Position) nodes
              let optNavigationPath =
                  AStar.FindPath (
                      currentNode,
  
negative.code: 
          override dispatcher.Register gameplay world =
              world |>
                  (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)) |>
  