anchor.diff:  
       type Entity with
           
  -        // button
  +        (* button xfields *)
           member this.IsDown with get () = this?IsDown () : bool
           member this.SetIsDown (value : bool) : Entity = this?IsDown <- value
           member this.UpSprite with get () = this?UpSprite () : Sprite
  
positive.code:         member this.ImageSprite with get () = this?ImageSprite () : Sprite
          member this.SetImageSprite (value : Sprite) : Entity = this?ImageSprite <- value
  
          // avatar
          // uses just block xfields
  
          // tile map
          member this.PhysicsIds with get () = this?PhysicsIds () : PhysicsId list
          member this.SetPhysicsIds (value : PhysicsId list) : Entity = this?PhysicsIds <- value
          member this.TileMapAsset with get () = this?TileMapAsset () : TileMapAsset
  
negative.code:                     else (message, true, world)
                  else (message, true, world)
              | _ -> failwith ("Expected MouseButtonData from event '" + addrToStr event + "'.")
  
          let handleButtonEventUpMouseLeft event publisher subscriber message world =
              match message.Data with
              | MouseButtonData (mousePosition, _) ->
  