then how is that possible? ```cpp struct ArchetypeEdge { Archetype& add; Archetype& remove; }; struct Archetype { ArchetypeId id; Type type; vector<Column> components; unordered_map<ComponentId, ArchetypeEdge> edges; }; ``` It's supposed to make a graph so it's looping like a recursive structure I guess but it's not possible, is it?