It's important we adhere to the "only one concrete base type per class" rule. That is, no type shall extend more than a single class that has non-pure-virtual methods or data-members. That means there isn't a "sorta an interface" type in this stack. We only have classes and interfaces and the latter has no data members and only pure-virtual methods.
_Originally posted by @thirtytwobits in https://github.com/OpenCyphal-Garage/libcyphal/pull/347#discussion_r1575062663_