source at namespace scope is too ambitious, it claims to be a vocabulary type when it cannot be (at least, not yet)
while serializer::source at class scope is more specific, it is "what the serializer needs from a source of data to do its job." It doesn't have to be a universal vocabulary type.
The reason:
https://cpplang.slack.com/archives/C02MQKSSMH8/p1709228949763109