public void Visit(UTinyProject.Visitor visitor)
        {
            foreach (var reference in m_Components)
            {
                var obj = reference.Dereference(Registry);
                if (null != obj)
                {
                    visitor.VisitType(obj);
                }
            }

            foreach (var reference in m_Structs)
            {
                var obj = reference.Dereference(Registry);
                if (null != obj)
                {
                    visitor.VisitType(obj);
                }
            }

            foreach (var reference in m_Enums)
            {
                var obj = reference.Dereference(Registry);
                if (null != obj)
                {
                    visitor.VisitType(obj);
                }
            }

            foreach (var reference in m_Systems)
            {
                var obj = reference.Dereference(Registry);
                if (null != obj)
                {
                    visitor.VisitSystem(obj);
                }
            }

            foreach (var reference in m_Scripts)
            {
                var obj = reference.Dereference(Registry);
                if (null != obj)
                {
                    visitor.VisitScript(obj);
                }
            }

            foreach (var reference in m_EntityGroups)
            {
                var obj = reference.Dereference(Registry);
                if (null != obj)
                {
                    obj.Visit(visitor);
                }
            }
        }
        public void Visit(UTinyProject.Visitor visitor)
        {
            visitor.VisitEntityGroup(this);

            foreach (var reference in Entities)
            {
                var entity = reference.Dereference(Registry);

                visitor.VisitEntity(entity);
                foreach (var component in entity.Components)
                {
                    visitor.VisitComponent(component);
                }
            }
        }