"The anime year response type, grouped by season."
type AnimeYear {
    "The year of the AnimeYear type"
    year: Int!

    "Object that references the season year queried"
    season(season: AnimeSeason!): AnimeYearSeason @field(resolver: "App\\GraphQL\\Queries\\AnimeYearsQuery@resolveSeasonField")

    "The available seasons of the year"
    seasons: [AnimeYearSeasons!]
}

"The anime year season type."
type AnimeYearSeasons {
    "The season of the anime year"
    season: AnimeSeason!

    "The formatted string value of the season field"
    seasonLocalized: String!

    "The animes of the season year filtered"
    anime(
        name_like: String @like(key: "name")
        format: AnimeFormat @eq(key: "format")
        format_in: [AnimeFormat!] @in(key: "format")
        season: AnimeSeason @eq
        season_in: [AnimeSeason!] @in(key: "season")
        year: Int @eq @deprecated(reason: "Use the `startDate` filter instead.")
        year_lesser: Int @where(operator: "<", key: "year") @deprecated(reason: "Use the `startDate_lesser` filter instead.")
        year_greater: Int @where(operator: ">", key: "year") @deprecated(reason: "Use the `startDate_greater` filter instead.")
        startDate: FuzzyDateInt @eq(key: "start_date")
        startDate_lesser: FuzzyDateInt @where(operator: "<", key: "start_date")
        startDate_greater: FuzzyDateInt @where(operator: ">", key: "start_date")
        where: _ @whereConditions(columnsEnum: AnimeFilterableColumns, handler: "App\\GraphQL\\WhereConditions\\WhereConditionsHandler")
        sort: [AnimeSort!] @sort
        first: Int
        page: Int = 1
    ): AnimePaginator @field(resolver: "App\\GraphQL\\Queries\\AnimeYearsQuery@resolveAnimeField")
}

"The anime year season type."
type AnimeYearSeason {
    "The season of the anime year"
    season: AnimeSeason!

    "The formatted string value of the season field"
    seasonLocalized: String!

    "The animes of the season year filtered"
    anime(
        name_like: String @like(key: "name")
        format: AnimeFormat @eq(key: "format")
        format_in: [AnimeFormat!] @in(key: "format")
        season: AnimeSeason @eq
        season_in: [AnimeSeason!] @in(key: "season")
        year: Int @eq @deprecated(reason: "Use the `startDate` filter instead.")
        year_lesser: Int @where(operator: "<", key: "year") @deprecated(reason: "Use the `startDate_lesser` filter instead.")
        year_greater: Int @where(operator: ">", key: "year") @deprecated(reason: "Use the `startDate_greater` filter instead.")
        startDate: FuzzyDateInt @eq(key: "start_date")
        startDate_lesser: FuzzyDateInt @where(operator: "<", key: "start_date")
        startDate_greater: FuzzyDateInt @where(operator: ">", key: "start_date")
        sort: [AnimeSort!] @sort
        first: Int
        page: Int = 1
    ): AnimePaginator @field(resolver: "App\\GraphQL\\Queries\\AnimeYearsQuery@resolveAnimeField")
}

extend type Query {
    "Returns a list of years grouped by its seasons."
    animeyears(year: [Int!]): [AnimeYear!]! @field(resolver: "App\\GraphQL\\Queries\\AnimeYearsQuery")
}