@CanIgnoreReturnValue
    public Builder addAudience(String value) {
      if (!JsonUtil.isValidString(value)) {
        throw new IllegalArgumentException("invalid string");
      }
      JsonArray audiences;
      if (payload.has(JwtNames.CLAIM_AUDIENCE)) {
        JsonElement aud = payload.get(JwtNames.CLAIM_AUDIENCE);
        if (!aud.isJsonArray()) {
          throw new IllegalArgumentException(
              "addAudience can't be used together with setAudience");
        }
        audiences = aud.getAsJsonArray();
      } else {
        audiences = new JsonArray();
      }
      audiences.add(value);
      payload.add(JwtNames.CLAIM_AUDIENCE, audiences);
      return this;
    }
Adds an audience that the JWT is intended for.

<p>The {@code aud} claim will always be encoded as an array of strings. This method can't be
used together with {@code setAudience}.

<p>https://tools.ietf.org/html/rfc7519#section-4.1.3
java_src/src/main/java/com/google/crypto/tink/jwt/RawJwt.java