You can always do that, defining the schema in the client to produce sensible checks, even with JSON. The problem is that wherever the spec is underspecified is another place where two different clients can deserialize differently, and both be correct.
And the problem with stringly typed systems is that everything is underspecified
And the problem with stringly typed systems is that everything is underspecified