> Actual practice is that there's not yet a robust extension mechanism
This is untrue.
https://www.w3.org/TR/activitystreams-core/#extensibility
Here is the extension mechanism:
- You define terms in a namespace and a context document.
- You document those terms.
- You use those terms in your published Activity Streams 2.0 documents.
JSON-only developers can just watch for terms that they are interested in; if there are naming conflicts, they can check the `@context`.