// Path: api/src/main/java/hirez/api/object/interfaces/Queue.java
// public interface Queue extends IDObject<Integer> {
//     String getName();
// 
//     boolean isRanked();
// }
// 
// Path: smite/src/main/java/hirez/smite/object/Rank.java
// @Data
// public class Rank implements ReturnedMessage {
//     @JsonProperty("Leaves")
//     private final int leaves;
//     @JsonProperty("Losses")
//     private final int losses;
//     @JsonProperty("Name")
//     private final String name;
//     @JsonProperty("Points")
//     private final int points;
//     @JsonProperty("PrevRank")
//     private final int prevRank;
//     @JsonProperty("Rank")
//     private final int rank;
//     @JsonProperty("Rank_Stat")
//     private final double rankStat;
//     @JsonProperty("Rank_Variance")
//     private final int rankVariance;
//     @JsonProperty("Season")
//     private final int season;
//     @JsonProperty("Tier")
//     private final int tier;
//     @JsonProperty("Trend")
//     private final int trend;
//     @JsonProperty("Wins")
//     private final int wins;
//     private final long playerId;
//     @JsonProperty("ret_msg")
//     private final String returnedMessage;
// 
// }


import hirez.api.*;
import hirez.api.object.*;
import hirez.api.object.interfaces.Queue;
import hirez.smite.object.*;
import hirez.smite.object.Rank;
import io.reactivex.rxjava3.core.Flowable;
import io.reactivex.rxjava3.core.Single;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.function.Consumer;
import java.util.stream.Collectors;
package hirez.smite;



public class SmiteGame extends Endpoint {

    private SmiteGame(Configuration configuration) {
        super(configuration);
    }

    public static SmiteGame create(Consumer<ConfigurationBuilder> configuration) {
        return new SmiteGame(new ConfigurationBuilder().applyFrom((cfg) -> {
            configuration.accept(cfg);
            if (cfg.getBaseEndpoint() == null) {
                cfg.setBaseEndpoint(SmitePlatform.PC);
            }
        }).build());
    }

    static boolean isRanked(int id) {
        return Arrays.asList(440, 450, 451, 502, 503, 504).contains(id);
    }

// Path: api/src/main/java/hirez/api/object/interfaces/Queue.java
// public interface Queue extends IDObject<Integer> {
//     String getName();
// 
//     boolean isRanked();
// }
// 
// Path: smite/src/main/java/hirez/smite/object/Rank.java
// @Data
// public class Rank implements ReturnedMessage {
//     @JsonProperty("Leaves")
//     private final int leaves;
//     @JsonProperty("Losses")
//     private final int losses;
//     @JsonProperty("Name")
//     private final String name;
//     @JsonProperty("Points")
//     private final int points;
//     @JsonProperty("PrevRank")
//     private final int prevRank;
//     @JsonProperty("Rank")
//     private final int rank;
//     @JsonProperty("Rank_Stat")
//     private final double rankStat;
//     @JsonProperty("Rank_Variance")
//     private final int rankVariance;
//     @JsonProperty("Season")
//     private final int season;
//     @JsonProperty("Tier")
//     private final int tier;
//     @JsonProperty("Trend")
//     private final int trend;
//     @JsonProperty("Wins")
//     private final int wins;
//     private final long playerId;
//     @JsonProperty("ret_msg")
//     private final String returnedMessage;
// 
// }


// Path: smite/src/main/java/hirez/smite/SmiteGame.java
import hirez.api.*;
import hirez.api.object.*;
import hirez.api.object.interfaces.Queue;
import hirez.smite.object.*;
import hirez.smite.object.Rank;
import io.reactivex.rxjava3.core.Flowable;
import io.reactivex.rxjava3.core.Single;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.function.Consumer;
import java.util.stream.Collectors;

package hirez.smite;



public class SmiteGame extends Endpoint {

    private SmiteGame(Configuration configuration) {
        super(configuration);
    }

    public static SmiteGame create(Consumer<ConfigurationBuilder> configuration) {
        return new SmiteGame(new ConfigurationBuilder().applyFrom((cfg) -> {
            configuration.accept(cfg);
            if (cfg.getBaseEndpoint() == null) {
                cfg.setBaseEndpoint(SmitePlatform.PC);
            }
        }).build());
    }

    static boolean isRanked(int id) {
        return Arrays.asList(440, 450, 451, 502, 503, 504).contains(id);
    }

    public Flowable<GodLeaderboard> getGodLeaderboard(long godId, Queue queue) {