I want to show you why the capabilities work the way they work, and not just how they work.
The following explanation is not meant to be accurate with reality, only a way to form the necessary connections and be able to understand one possible reasoning for the design.
I will try my best.
Once upon a time, every API would define a bunch of interfaces that people would implement