@Nullable
  public TrelloCard fetchCardById(@NotNull String id) throws Exception {
    try {
      final URIBuilder url = new URIBuilder(getRestApiUrl("cards", id))
        .addParameter("actions", "commentCard")
        .addParameter("fields", TrelloCard.REQUIRED_FIELDS);
      return executeMethod(new HttpGet(url.build()), new GsonSingleObjectDeserializer<>(TrelloUtil.GSON, TrelloCard.class, true));
    }
    // Trello returns string "The requested resource was not found." or "invalid id"
    // if card can't be found, which not only cannot be deserialized, but also not valid JSON at all.
    catch (JsonParseException e) {
      return null;
    }
  }
@Nullable
  public TrelloCard fetchCardById(@NotNull String id)