anchor.diff:          | CelebrateCharacters of bool
           | AdvanceCharacters
           | AttackCharacter of CharacterIndex * CharacterIndex
  -        | ResetCharacter of CharacterIndex
           | DamageCharacter of CharacterIndex
           | PoiseCharacter of CharacterIndex
           | WoundCharacter of CharacterIndex
  -        | DestroyCharacter of CharacterIndex
  +        | ResetCharacter of CharacterIndex
           | ReticlesSelect of Entity * CharacterIndex
           | Tick
   
  
positive.code:                 let model = { model with CurrentCommandOpt = None }
                  withMsgs model [ResetCharacter sourceIndex; PoiseCharacter sourceIndex]
  
          let tickWound characterIndex time timeLocal model =
              match timeLocal with
              | 0L ->
                  withMsg model (DamageCharacter characterIndex)
  
negative.code:                         else just model
                      | WoundCycle ->
                          if CharacterAnimationState.finished time character.CharacterAnimationState
                          then withCmd { model with CurrentCommandOpt = None } (DestroyCharacter characterIndex)
                          else just model
                      | _ -> failwithumf ()
  
          static let tickReady time timeStart model =
              let timeLocal = time - timeStart
              match timeLocal with
              | 0L -> withMsg model ReadyCharacters
              | 30L -> withMsg { model with BattleState = BattleRunning } PoiseCharacters
              | _ -> just model
  
          static let rec tickCurrentCommand time currentCommand model =
              let timeLocal = time - currentCommand.TimeStart
              match currentCommand.ActionCommand.Action with
              | Attack ->
  