type
Coarse category. One of:
code
Specific machine-readable identifier. Stable per (type, code) pair — safe to switch on:
param
If the error is about a specific field, param names it (e.g., email, custom_attributes.tier). Absent for non-field errors.
message
Human-readable string. Do not parse this — code is the stable contract.