template<typename T>
owner<T> and
std::derived_from<T, motor_base> and
requires(T t) {
{ t.set(std::declval<float>()) } -> std::same_as<awaitable<void>>;
{ t.enable() } -> std::same_as<awaitable<void>>;
{ t.task() } -> std::same_as<awaitable<void>>;
}