anchor.diff:              callback evt store
           boxableCallback :> obj
   
  -    member this.RegisterEntityInternal archetypeId terms entityRef =
  +    member this.RegisterEntityInternal archetypeId comps entityRef =
           let archetype =
               match archetypes.TryGetValue archetypeId with
               | (true, archetype) -> archetype
               | (false, _) -> createArchetype archetypeId
  -        let archetypeIndex = archetype.Register terms
  +        let archetypeIndex = archetype.Register comps
           archetypeSlots.Add (entityRef.EntityId, { ArchetypeIndex = archetypeIndex; Archetype = archetype })
  -
   
       member internal this.IndexArchetypeSlot (entityRef : EntityRef) =
           archetypeSlots.[entityRef.EntityId]
  
positive.code:     let archetypeSlots = dictPlus<uint64, ArchetypeSlot> HashIdentity.Structural []
      let componentTypes = dictPlus<string, Type> HashIdentity.Structural []
      let subscriptions = dictPlus<EcsEvent, Dictionary<uint32, obj>> HashIdentity.Structural []
      let queries = List<IQuery> ()
  
      let createArchetype (archetypeId : ArchetypeId) =
  
negative.code:     static member PostUpdate = { EventName = "PostUpdate"; EventType = GlobalEvent }
      static member PostUpdateParallel = { EventName = "PostUpdateParallel"; EventType = GlobalEvent }
      static member Actualize = { EventName = "Actualize"; EventType = GlobalEvent }
      static member Register entityRef compName = { EventName = "Register"; EventType = ComponentEvent (entityRef, compName) }
      static member Unregistering entityRef compName = { EventName = "Unregistering"; EventType = ComponentEvent (entityRef, compName) }
      static member Change entityRef = { EventName = "Change"; EventType = EntityEvent entityRef }
  
  and [<StructuralEquality; NoComparison>] Term =
  