anchor.diff:  
           static let runPlayerTurn gameplayAddress playerTurn world =
   
  -            // construct local context
  -            let gameplay = World.getScreen gameplayAddress world
  -            let rand = Rand.make gameplay.OngoingRandState
  +            // construct occupation map
               let occupationMap =
                   let field = getField gameplayAddress world
                   let enemies = getEnemies gameplayAddress world
                   OccupationMap.makeFromFieldTilesAndCharactersAndDesiredTurn field.FieldMapNp.FieldTiles enemies playerTurn
   
  -            // determine player activity state
  +            // determine player activity
               let optNewPlayerActivity =
                   match playerTurn with
                   | ActionTurn actionDescriptor -> Some <| Action actionDescriptor
  
positive.code:             let obs = observe TickEventAddress characterAddress |> until (DeselectEventAddress ->>- gameplayAddress)
              snd <| runDesyncAssumingCascade desync obs world
  
          static let getCharacterAnimationStateByActionBegin tickTime characterPosition characterAnimationState actionDescriptor =
              let currentDirection = characterAnimationState.Direction
              let direction = ActionDescriptor.getActionDirection characterPosition currentDirection actionDescriptor
              { characterAnimationState with
                  Direction = direction
                  AnimationType = CharacterAnimationActing
                  StartTime = tickTime }
  
          static let getCharacterAnimationStateByActionEnd tickTime characterAnimationState =
              { characterAnimationState with
                  AnimationType = CharacterAnimationFacing
                  StartTime = tickTime }
  
          static let runCharacterAction newActionDescriptor gameplayAddress characterAddress world =
              let desync = desync {
                  do! updateEntity characterAddress (Entity.setActivityState <| Action newActionDescriptor)
  
negative.code:         // scene entities
          static let getField gameplayAddress world = World.getEntity (getFieldAddress gameplayAddress) world
          static let getPlayer gameplayAddress world = World.getEntity (getPlayerAddress gameplayAddress) world
          static let getEnemies gameplayAddress world =
              World.getEntities (getSceneAddress gameplayAddress) world |> Seq.filter (Entity.dispatchesAs typeof<EnemyDispatcher>) |> List.ofSeq
          static let getParticipants gameplayAddress world =
              (getField gameplayAddress world, getPlayer gameplayAddress world, getEnemies gameplayAddress world)
          
  