anchor.diff:      type [<NoComparison>] OmniMessage =
           | Update
           | UpdateFieldModel of FieldModel
  +        | UpdateBattleModel of BattleModel
           | SetModel of OmniModel
   
       type [<NoComparison>] OmniCommand =
  
positive.code:              Simulants.CreditsBack.ClickEvent => [msg (SetModel Title)]
               Simulants.FieldBack.ClickEvent => [msg (SetModel Title)]
               Simulants.TitleExit.ClickEvent => [cmd Exit]
               Simulants.Field.FieldModel.ChangeEvent =|> fun evt -> [msg (UpdateFieldModel (evt.Data.Value :?> FieldModel))]]
  
          override this.Message (model, message, _, _) =
              match message with
              | Update ->
                  match model with
  
negative.code:                     match field.BattleOpt with
                      | Some battle ->
                          match battle.BattleState with
                          | BattleCease (_, time) ->
                              if World.getTickTime world - time >= 120L
                              then withCmd model (Show Simulants.Field)
                              else withCmd model (Show Simulants.Battle)
                          | _ -> withCmd model (Show Simulants.Battle)
                      | None -> withCmd model (Show Simulants.Field)
              | UpdateFieldModel field ->
                  match model with
                  | Splashing | Title | Credits -> just model
                  | Gameplay _ -> just (Gameplay field)
              | UpdateBattleModel battle ->
                  match model with
                  | Splashing | Title | Credits -> just model
                  | Gameplay field -> just (Gameplay (FieldModel.updateBattleOpt (constant (Some battle)) field))
              | SetModel model -> just model
  
          override this.Command (_, command, _, world) =
  