docs: @Override
      public MessageResponse deserialize(JsonElement element, Type alsoIgnored, JsonDeserializationContext ignored) {
          List<String> results = new ArrayList<String>();
          String reason = "";
          String details = "";
  
          JsonObject body = element.getAsJsonObject();
          boolean succeeded = body.get("outcome").getAsString().equals("SUCCESS");
  
          if (succeeded) {
              if (body.get("results") != null) {
                  for (JsonElement result : body.get("results").getAsJsonArray()) {
                      if(result.isJsonNull()) results.add(null);
                      else if(result.isJsonObject()) results.add(result.toString());
                      else results.add(result.getAsString());
                  }
              }
          } else {
              reason = body.get("reason").getAsString();
              details = body.get("details").getAsString();
          }
          return new MessageResponse(succeeded, results, reason, details);
      }