it is a basic tradeoff when going from class inheritance to protocol-oriented patterns that you lose the ability to reverse-map declarations to protocol conformances.
for example, a type might expose a description
property that witnesses multiple protocol requirements, or might witness a conformance declared in a downstream module.