anchor.diff:          static member private removeEntityState entity world =
               World.entityStateRemover entity world
   
  -        static member private publishEntityChange (propertyName : string) (entity : Entity) oldWorld world =
  +        static member private publishEntityChange propertyName entity oldWorld world =
               let changeEventAddress = ltoa [!!"Entity"; !!"Change"; !!propertyName] ->>- entity.EntityAddress
               let eventTrace = EventTrace.record "World" "publishEntityChange" EventTrace.empty
               World.publish { Participant = entity; PropertyName = propertyName; OldWorld = oldWorld } changeEventAddress eventTrace entity world
  
positive.code:                 let world = World.setScreenEntityTreeNp entityTree screen world
  
                  // register entity if needed
                  if isNew then
                      let dispatcher = World.getEntityDispatcherNp entity world : EntityDispatcher
                      let facets = World.getEntityFacetsNp entity world
                      let world = dispatcher.Register (entity, world)
                      let world = List.fold (fun world (facet : Facet) -> facet.Register (entity, world)) world facets
                      let world = World.updateEntityPublishUpdates entity world
                      let eventTrace = EventTrace.record "World" "addEntity" EventTrace.empty
                      World.publish () (ftoa<unit> !!"Entity/Add" ->- entity) eventTrace entity world
                  else world
  
              // handle failure
              else failwith ^ "Adding an entity that the world already contains at address '" + scstring entity.EntityAddress + "'."
  
negative.code:             let world = World.updateEntityStateWithoutEvent updater entity world
              let world = World.updateEntityInEntityTree entity oldWorld world
              World.publishEntityChange propertyName entity oldWorld world
  
          static member private publishEntityChanges entity oldWorld world =
              let entityState = World.getEntityState entity world
              let properties = World.getProperties entityState
              List.fold (fun world (propertyName, _) -> World.publishEntityChange propertyName entity oldWorld world) world properties
  
          /// Query that the world contains an entity.
          static member containsEntity entity world =
  