One validation failure: the JSON path, the rule, and the message the server would send.
@type t() :: %BowlineClient.Issue{ message: String.t(), path: [String.t()], rule: String.t() }
@spec from_map(map()) :: t()
@spec new([String.t()], String.t(), String.t()) :: t()