template<typename T, typename Functions>
{ std::invoke(f.getID, t) } -> std::same_as<std::string_view>;
{ std::invoke(f.makeNew) } -> std::same_as<T>;
{ std::invoke(f.shouldMakeNew, s, i) } -> std::same_as<bool>;
{ std::invoke(f.canRecreate, s, i) } -> std::same_as<bool>;
{ std::invoke(f.onNew, t, i) };
{ std::invoke(f.onRemove, s) };
{ std::invoke(f.onMove, t, i) };
}
Definition deserializer.h:147