template<typename T>
requires(T type) {
typename T::value_type;
typename T::const_iterator;
{ type.cbegin() } -> std::same_as<typename T::const_iterator>;
{ type.cend() } -> std::same_as<typename T::const_iterator>;
} && json_auto_supports_auto<T> && !json_auto_has_mapped_type<T> &&
!json_auto_has_method_from<T> && !json_auto_has_method_to<T> &&
!JSONAutoIsBasicString<T>::value && !JSONAutoIsBasicStringView<T>::value