Neither does it mean that you can't have an actual Java interface exposed as a JSON endpoint.
Something along the lines of declaratively stating what a JSON endpoint should be like and having a tool automatically assert that the services conform to that interface doesn't look impossible.
So you have to type check at runtime. You can build tooling to make it easier to produce conforming software at each end, but you can't guarantee that someone won't just go ahead and write any old thing.
So in practice you still perform validation on each message.
Put another way: distributed systems turn all type errors into runtime errors. The guarantees of compile-time checking are severely weakened.
But the tooling is already here,no question.
The issue is,should it be "baked" into a language?