Comment by miki123211
6 hours ago
Unless the task is extremely well defined, protocols don't really work.
Imagine you're a shipping company and lock yourself into a parcel tracking protocol. You then decide to offer the innovative feature of parcel lockers, which need a code (or an action on your device) to open. How are you going to make the thousands of weird homebrew clients that people are using on their jailbroken Nintendo Switches or whatever to behave?
That's easy. You publish the API documentation and supply a reference implementation. Anyone can use your reference implementation immediately and the person who wants to use their own code on a jailbroken Switch can do that as soon as they implement the API, or their own fork of the reference implementation.
The service doesn't have to write every implementation, they just have to document a stable API and not actively impede third party code.