Error codes

Branch on code, never on title or detail. New codes can be added within v1, so treat a code you don't recognise by its HTTP status. See Errors for the response shape.