I have an idea. Why don't we give up on a strictly declarative format/solution? What if, associated with each possible API call, was a pseudocode or generalcode representation of the code executed to validate the request?
Is reading code snippets that difficult? For a short validation program, a machine could certainly infer if a type would be accepted (just run the validation).
I know that a declarative format seems like the right choice, given validation in mainstream programming languages is expressed declaratively via the type system, but these standards, to me, often seem to only translate awkwardly an implicit validation program into a very verbose declaration.