#pragma once
#include <concepts>
#include "renderive/renderable/base/Renderable_Base.hpp"
template <class That>
concept Renderable = std::derived_from<That, Renderable_Base> && requires(That& renderable, const That& const_renderable) {
    { const_renderable.scene() } -> std::same_as<Scene_Base&>;
    { const_renderable.configuration() } -> std::same_as<Renderable_Configuration>;
    { renderable.invalidate_prepare() } -> std::same_as<void>;
    { renderable.invalidate_paint() } -> std::same_as<void>;
};
