anchor.diff:                      let archetypeIndex = archetype.Register comps
                       archetypeSlots.Add (entityRef.EntityId, { ArchetypeIndex = archetypeIndex; Archetype = archetype })
                       state
  -            let eventData = { EntityId = entityRef.EntityId; ContextName = termName }
  +            let eventData = { EntityRef = entityRef; ContextName = termName }
               this.Publish<RegistrationData, obj> EcsEvents.Register eventData (state :> obj) :?> 's
   
       member this.UnregisterTerm (termName : string) (entityRef : EntityRef) (state : 's) =
  
positive.code:         'c7 : struct and 'c7 :> 'c7 Component and
          'c8 : struct and 'c8 :> 'c8 Component>
          (state : 's, statement : Statement<'c, 'c2, 'c3, 'c4, 'c5, 'c6, 'c7, 'c8, 's>) =
          this.Index (typeof<'c>.Name, typeof<'c2>.Name, typeof<'c3>.Name, typeof<'c4>.Name, typeof<'c5>.Name, typeof<'c6>.Name, typeof<'c7>.Name, typeof<'c8>.Name, state, statement)
  
      member this.Index<'c, 'c2, 'c3, 'c4, 'c5, 'c6, 'c7, 'c8, 'c9, 's when
          'c : struct and 'c :> 'c Component and
          'c2 : struct and 'c2 :> 'c2 Component and
          'c3 : struct and 'c3 :> 'c3 Component and
  
negative.code:         | (true, callbacks) -> callbacks.Remove subscriptionId
          | (false, _) -> false
  
      member this.IndexArchetype archetypeId =
          archetypes.[archetypeId]
  
      member this.IndexArchetypeSlot (entityRef : EntityRef) =
          archetypeSlots.[entityRef.EntityId]
  
      member this.RegisterComponentType<'c when 'c : struct and 'c :> 'c Component> componentName =
          match componentTypes.TryGetValue componentName with
  