Random morning thought...
I was thinking of hierarchical tags, something like UEs gameplay tags. I'm a huge fan, but never liked how they were represented in memory.
The issue being that they are interned strings, say "Weapon.tagger", and allows hierarchical matching, like checking if something is "Weapon". So partial matches were slow.
The random thought was that, I wonder if something like that could be expressed with limitations in more compact form?