#pragma once #include class Scene { public: virtual ~Scene() = default; virtual void update(int delta_ms) = 0; virtual void render() = 0; [[nodiscard]] auto wantsQuit() const -> bool { return wants_quit_; } [[nodiscard]] auto nextScene() -> std::unique_ptr { return std::move(next_scene_); } protected: bool wants_quit_{false}; std::unique_ptr next_scene_; };