anchor.diff:  
                   // get old world for entity tree rebuild
                   let oldWorld = world
  +
  +                // remove entity from hierarchy
  +                let parentOpt = World.getEntityParentOpt entity world
  +                let world = World.removeEntityFromHierarchy parentOpt entity world
                   
                   // mutate entity tree if entity is selected
                   let world =
  
positive.code:                 | None -> entityState
                  | Some names -> { entityState with Names = names }
  
              // try to add entity state to the world
              let entity = Entity (group.GroupAddress <-- rtoa<Entity> entityState.Names)
              let world =
                  if World.getEntityExists entity world then
                      if World.getEntityDestroying entity world
  
negative.code:                             else Unchecked.defaultof<_>)
                              Property? ParentOpt newParentOpt entity world
  
                      // update entity hierarchy
                      let world = World.removeEntityFromHierarchy oldParentOpt entity world
                      let world = World.addEntityToHierarchy newParentOpt entity world
  
                      // propagate properties from parent
                      let world = World.propagateEntityProperties3 newParentOpt entity world
                      world
  
                  else world
              struct (changed, world)
  
  