`ThrowableError` isn't really useful because `Exception::getCode()` is final so cannot be overridden to provide an actual JSON API code. Solution: deprecate `ThrowableError` and instead allow the first argument in `ErrorException` to be an array that is cast to an `ErrorObject` instance.