+ void Tick(double dt);
+
+ Body &Root() noexcept { return root; }
+ const Body &Root() const noexcept { return root; }
+
+ app::Assets &Assets() noexcept { return assets; }
+ const app::Assets &Assets() const noexcept { return assets; }
+ const Set<Resource> &Resources() const noexcept { return assets.data.resources; }
+ const Set<TileType> &TileTypes() const noexcept { return assets.data.tile_types; }
+
+ void AddBody(Body &);
+ void AddPlanet(Planet &);
+ void AddSun(Sun &);
+
+ const std::set<Body *> &Bodies() const noexcept { return bodies; }
+ const std::set<Planet *> &Planets() const noexcept { return planets; }
+ const std::set<Sun *> &Suns() const noexcept { return suns; }