anchor.diff:              let world =
                   match command with
                   | ToggleHaltButton -> Simulants.HudHalt.SetEnabled (isPlayerNavigatingPath world) world
  -                | HandleInput input -> tryRunPlayerTurn input world
  +                | HandlePlayerInput input -> tryRunPlayerTurn input world
                   | SaveGame gameplay -> World.writeScreenToFile Assets.SaveFilePath gameplay world; world
                   | QuittingGameplay -> World.playSong Constants.Audio.DefaultTimeToFadeOutSongMs 1.0f Assets.ButterflyGirlSong world
                   | QuitGameplay -> World.destroyLayer Simulants.Scene world
  
positive.code: 
          override this.Bindings (_, gameplay, _) =
              [Simulants.Player.CharacterActivityState.ChangeEvent =>! ToggleHaltButton
               Stream.make Simulants.HudFeeler.TouchEvent |> Stream.isSimulantSelected Simulants.HudFeeler =|>! fun evt -> HandleInput (TouchInput evt.Data)
               Stream.make Simulants.HudDetailUp.DownEvent |> Stream.isSimulantSelected Simulants.HudDetailUp =>! HandleInput (DetailInput Upward)
               Stream.make Simulants.HudDetailRight.DownEvent |> Stream.isSimulantSelected Simulants.HudDetailRight =>! HandleInput (DetailInput Rightward)
               Stream.make Simulants.HudDetailDown.DownEvent |> Stream.isSimulantSelected Simulants.HudDetailDown =>! HandleInput (DetailInput Downward)
               Stream.make Simulants.HudDetailLeft.DownEvent |> Stream.isSimulantSelected Simulants.HudDetailLeft =>! HandleInput (DetailInput Leftward)
               gameplay.UpdateEvent =|>! fun _ ->
                  if KeyboardState.isKeyDown (int SDL.SDL_Scancode.SDL_SCANCODE_UP) then HandleInput (DetailInput Upward)
                  elif KeyboardState.isKeyDown (int SDL.SDL_Scancode.SDL_SCANCODE_RIGHT) then HandleInput (DetailInput Rightward)
                  elif KeyboardState.isKeyDown (int SDL.SDL_Scancode.SDL_SCANCODE_DOWN) then HandleInput (DetailInput Downward)
                  elif KeyboardState.isKeyDown (int SDL.SDL_Scancode.SDL_SCANCODE_LEFT) then HandleInput (DetailInput Leftward)
                  else Nop
               Simulants.Gameplay.SelectEvent =>! RunGameplay
               Simulants.HudSaveGame.ClickEvent =|>! fun evt -> SaveGame evt.Subscriber
  
negative.code: 
      type [<NoEquality; NoComparison>] GameplayCommand =
          | ToggleHaltButton
          | HandlePlayerInput of PlayerInput
          | SaveGame of Screen
          | QuittingGameplay
          | QuitGameplay
          | RunGameplay
          | Nop
  