I agree with your statement above. My view on the layer is larger than one class and see the whole package as a layer concerned with the protocol. Designing for multiple protocols is something I try to avoid cause it, sometimes, introduces unnecessary complexity and most of the time it's YAGNI. Just trying to convey my thoughts and this should, perhaps, be done in another forum than Git PR comments... :-)