@evan I am going to strongly agree with this. Having to understand multiple protocols for the same use case is a lot of mental load and makes the abstraction of the use case leakier. Multiple protocols also requires a bunch more development decisions: deciding which protocol is "best", which library is most robust, etc. This all takes away from the effort of designing the larger scale system of which the use case is a smaller part of.