anchor.diff:          | Update
           | UpdateAvatar of Avatar
           | UpdateFieldTransition
  +        | UpdateProp of Prop
           | MenuTeamOpen
           | MenuTeamAlly of int
           | MenuItemOpen
  
positive.code:                 // no transition
                  | None -> just field
  
              | MenuTeamOpen ->
                  let state = MenuTeam { TeamIndex = 0; TeamIndices = Map.toKeyList field.Team }
                  let field = Field.updateMenu (fun menu -> { menu with MenuState = state }) field
  
negative.code:                  // props
                   Content.entities field (fun field _ -> field.Props) (fun props _ -> props) $ fun _ prop _ ->
                      Content.entity<PropDispatcher> Gen.name
                          [Entity.Prop <== prop
                           Entity.Prop.ChangeEvent ==|> fun evt -> msg (UpdateProp (evt.Data.Value :?> Prop))]
  
                   // spirit orb
                   Content.entityIf field (fun field _ -> Field.hasEncounters field) $ fun field _ ->
  