anchor.diff:          | (true, _) -> failwith "Component type already registered."
           | (false, _) -> componentTypes.Add (componentName, typeof<'c>)
   
  -    member this.RegisterTerm termName term entityId world =
  +    member this.RegisterTerm (termName : string) term entityId world =
  +        if termName.StartsWith "@" then failwith "Term names that start with '@' are for internal use only."
           match archetypeSlots.TryGetValue entityId with
           | (true, archetypeSlot) ->
               let archetype = archetypeSlot.Archetype
               let comps = archetype.GetComponents archetypeSlot.ArchetypeIndex
               archetype.Unregister archetypeSlot.ArchetypeIndex
               archetypeSlots.Remove entityId |> ignore<bool>
  -            let archetypeId =
  -                { ComponentNames = archetype.Id.ComponentNames
  -                  Terms = Dictionary<_, _> archetype.Id.Terms }
  +            let archetypeId = { Terms = Dictionary<_, _> archetype.Id.Terms }
               archetypeId.Terms.Add (termName, term)
               let world =
                   match archetypes.TryGetValue archetypeId with
  
positive.code:             let world = this.Publish EcsEvents.Unregistering eventData world
              archetype.Unregister archetypeSlot.ArchetypeIndex
              archetypeSlots.Remove entityId |> ignore<bool>
              let archetypeId =
                  { ComponentNames = archetype.Id.ComponentNames
                    Terms = Dictionary<_, _> archetype.Id.Terms }
              archetypeId.Terms.Remove termName |> ignore<bool>
              if archetypeId.ComponentNames.Count > 0 || archetypeId.Terms.Count > 0 then
                  let archetypeIndex = archetype.Register comps
                  archetypeSlots.Add (entityId, { ArchetypeIndex = archetypeIndex; Archetype = archetype })
                  world
  
negative.code:     let subscriptions = dictPlus<string, Dictionary<uint32, obj>> StringComparer.Ordinal []
      let queries = List<'w IQuery> ()
  
      let createArchetype (archetypeId : ArchetypeId) =
          let archetype = Archetype<'w> (archetypeId.Terms)
          archetypes.Add (archetypeId, archetype)
          for query in queries do
              if query.CheckCompatibility archetype then
  