You'd also need automatically generated SDKs that actually understand the data in a way that is useful to people. In ActivityPub, we have JSON-LD which is based on RDF which is effectively schemaless. Sure, we have object types, but every property is technically optional, or may be a single value of the type indicated, or be an array of the type indicated.
AT Protocol uses lexicons which have a much stricter schema; with the ability to have those be open or closed schemas. That gives you a lot of power in being able to generate SDKs and tooling that can handle all this data, because you don't need to think about all the edge cases.
I can of course still write data to my repository that says it's one lexicon (schema) when it's really not, and the default logic is to just drop the item as unprocessable and move on, however, that can lead to some unexpected behaviour for users and developers.
Fedify's work to split out the vocabulary tooling is a step in the right direction, but we've still a long way to go.
Also, ActivityPub is absolutely not "Simple, JSON-native", in any sense of those words, because it's JSON-LD, yes, it uses JSON encoding, but there's so many more rules and logic in order to correctly handle it.