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> &&
!json_auto_is_basic_string<T>::value &&
!json_auto_is_basic_string_view<T>::value