- systems.emplace_back(std::make_unique<T>(*this, std::forward<Args>(args)...));
- return static_cast<T &>(*systems.back());
+ // Ensure that a reflected class exists for scheduling
+ reflector.get_or_create_class<T>();
+
+ auto &sys = systems.emplace_back(std::make_unique<T>(*this, std::forward<Args>(args)...));
+ scheduler.add_system(*sys);
+ pending_reschedule = true;
+ return static_cast<T &>(*sys);