It's a step in the right direction but it's the same problem as iMessage supporting SMS in addition to its own protocol. If the proprietary protocol supports something the open protocol doesn't, or that Apple doesn't implement for the open protocol, a competing implementation can't do it. And if it doesn't do that then why does the proprietary protocol exist?
If you're going to make your own protocol, publish a spec.
It's a service and a protocol and a client application.
But it should be possible for a third party to make an interoperating client application using the same protocol, and then it could connect to any service implementing that protocol.
Obviously if you want to be selective in who can use your service then you should create a protocol that supports some kind of federation so that each user's service can forward messages to another service if the two endpoints don't use the same one. Email works like this, for example.
> Should I be able to operate a business that sends bulk advertisements to iMessage users?
It's a step in the right direction but it's the same problem as iMessage supporting SMS in addition to its own protocol. If the proprietary protocol supports something the open protocol doesn't, or that Apple doesn't implement for the open protocol, a competing implementation can't do it. And if it doesn't do that then why does the proprietary protocol exist?
If you're going to make your own protocol, publish a spec.