The response envelope
Every response, success or error, uses the same envelope:Error format
On failure,error.details[] carries one row per problem:
type: a hierarchical error code (validation_error.too_long,resource_error.brand_not_found, …).field: the offending input field, or omitted when no single field is at fault.value: a human-readable message.