Skip to main content
Every error uses the same envelope; details is present only when useful.
Validation messages list every failing field as path: reason, so a client can fix everything in one round trip.