syntax = "proto3";

package proto;

import "google/protobuf/timestamp.proto";

option java_multiple_files = true; // Must be true because of private access in files.
option optimize_for = CODE_SIZE;

message Count {
    int64 count = 1;
}

message MultiQueryResult {
    string name = 1;
    repeated bytes results = 2;
    int64 count = 3;
}

message MultiQueryResultArray {
    repeated MultiQueryResult result = 1;
}

message AgeRatingResult {
    repeated AgeRating ageratings = 1;
}

message AgeRating {
    uint64 id = 1;
    AgeRatingCategoryEnum category = 2 [deprecated = true]; 
    repeated AgeRatingContentDescription content_descriptions = 3; 
    AgeRatingRatingEnum rating = 4 [deprecated = true]; 
    string rating_cover_url = 5; 
    string synopsis = 6; 
    string checksum = 7; 
    AgeRatingOrganization organization = 8; 
    AgeRatingCategory rating_category = 9; 
    repeated AgeRatingContentDescriptionV2 rating_content_descriptions = 10; 
}


enum AgeRatingCategoryEnum {
    AGERATING_CATEGORY_NULL = 0 [deprecated = true];
    ESRB = 1 [deprecated = true];
    PEGI = 2 [deprecated = true];
    CERO = 3 [deprecated = true];
    USK = 4 [deprecated = true];
    GRAC = 5 [deprecated = true];
    CLASS_IND = 6 [deprecated = true];
    ACB = 7 [deprecated = true];
}


enum AgeRatingRatingEnum {
    AGERATING_RATING_NULL = 0 [deprecated = true];
    THREE = 1 [deprecated = true];
    SEVEN = 2 [deprecated = true];
    TWELVE = 3 [deprecated = true];
    SIXTEEN = 4 [deprecated = true];
    EIGHTEEN = 5 [deprecated = true];
    RP = 6 [deprecated = true];
    EC = 7 [deprecated = true];
    E = 8 [deprecated = true];
    E10 = 9 [deprecated = true];
    T = 10 [deprecated = true];
    M = 11 [deprecated = true];
    AO = 12 [deprecated = true];
    CERO_A = 13 [deprecated = true];
    CERO_B = 14 [deprecated = true];
    CERO_C = 15 [deprecated = true];
    CERO_D = 16 [deprecated = true];
    CERO_Z = 17 [deprecated = true];
    USK_0 = 18 [deprecated = true];
    USK_6 = 19 [deprecated = true];
    USK_12 = 20 [deprecated = true];
    USK_16 = 21 [deprecated = true];
    USK_18 = 22 [deprecated = true];
    GRAC_ALL = 23 [deprecated = true];
    GRAC_TWELVE = 24 [deprecated = true];
    GRAC_FIFTEEN = 25 [deprecated = true];
    GRAC_EIGHTEEN = 26 [deprecated = true];
    GRAC_TESTING = 27 [deprecated = true];
    CLASS_IND_L = 28 [deprecated = true];
    CLASS_IND_TEN = 29 [deprecated = true];
    CLASS_IND_TWELVE = 30 [deprecated = true];
    CLASS_IND_FOURTEEN = 31 [deprecated = true];
    CLASS_IND_SIXTEEN = 32 [deprecated = true];
    CLASS_IND_EIGHTEEN = 33 [deprecated = true];
    ACB_G = 34 [deprecated = true];
    ACB_PG = 35 [deprecated = true];
    ACB_M = 36 [deprecated = true];
    ACB_MA15 = 37 [deprecated = true];
    ACB_R18 = 38 [deprecated = true];
    ACB_RC = 39 [deprecated = true];
}

message AgeRatingCategoryResult {
    repeated AgeRatingCategory ageratingcategories = 1;
}

message AgeRatingCategory {
    uint64 id = 1;
    string rating = 2; 
    AgeRatingOrganization organization = 3; 
    google.protobuf.Timestamp created_at = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string checksum = 6; 
}

message AgeRatingContentDescriptionResult {
    repeated AgeRatingContentDescription ageratingcontentdescriptions = 1;
}

message AgeRatingContentDescription {
    uint64 id = 1;
    AgeRatingContentDescriptionCategoryEnum category = 2 [deprecated = true]; 
    string description = 3; 
    string checksum = 4; 
}


enum AgeRatingContentDescriptionCategoryEnum {
    AGERATINGCONTENTDESCRIPTION_CATEGORY_NULL = 0 [deprecated = true];
    ESRB_ALCOHOL_REFERENCE = 1 [deprecated = true];
    ESRB_ANIMATED_BLOOD = 2 [deprecated = true];
    ESRB_BLOOD = 3 [deprecated = true];
    ESRB_BLOOD_AND_GORE = 4 [deprecated = true];
    ESRB_CARTOON_VIOLENCE = 5 [deprecated = true];
    ESRB_COMIC_MISCHIEF = 6 [deprecated = true];
    ESRB_CRUDE_HUMOR = 7 [deprecated = true];
    ESRB_DRUG_REFERENCE = 8 [deprecated = true];
    ESRB_FANTASY_VIOLENCE = 9 [deprecated = true];
    ESRB_INTENSE_VIOLENCE = 10 [deprecated = true];
    ESRB_LANGUAGE = 11 [deprecated = true];
    ESRB_LYRICS = 12 [deprecated = true];
    ESRB_MATURE_HUMOR = 13 [deprecated = true];
    ESRB_NUDITY = 14 [deprecated = true];
    ESRB_PARTIAL_NUDITY = 15 [deprecated = true];
    ESRB_REAL_GAMBLING = 16 [deprecated = true];
    ESRB_SEXUAL_CONTENT = 17 [deprecated = true];
    ESRB_SEXUAL_THEMES = 18 [deprecated = true];
    ESRB_SEXUAL_VIOLENCE = 19 [deprecated = true];
    ESRB_SIMULATED_GAMBLING = 20 [deprecated = true];
    ESRB_STRONG_LANGUAGE = 21 [deprecated = true];
    ESRB_STRONG_LYRICS = 22 [deprecated = true];
    ESRB_STRONG_SEXUAL_CONTENT = 23 [deprecated = true];
    ESRB_SUGGESTIVE_THEMES = 24 [deprecated = true];
    ESRB_TOBACCO_REFERENCE = 25 [deprecated = true];
    ESRB_USE_OF_ALCOHOL = 26 [deprecated = true];
    ESRB_USE_OF_DRUGS = 27 [deprecated = true];
    ESRB_USE_OF_TOBACCO = 28 [deprecated = true];
    ESRB_VIOLENCE = 29 [deprecated = true];
    ESRB_VIOLENT_REFERENCES = 30 [deprecated = true];
    ESRB_ANIMATED_VIOLENCE = 31 [deprecated = true];
    ESRB_MILD_LANGUAGE = 32 [deprecated = true];
    ESRB_MILD_VIOLENCE = 33 [deprecated = true];
    ESRB_USE_OF_DRUGS_AND_ALCOHOL = 34 [deprecated = true];
    ESRB_DRUG_AND_ALCOHOL_REFERENCE = 35 [deprecated = true];
    ESRB_MILD_SUGGESTIVE_THEMES = 36 [deprecated = true];
    ESRB_MILD_CARTOON_VIOLENCE = 37 [deprecated = true];
    ESRB_MILD_BLOOD = 38 [deprecated = true];
    ESRB_REALISTIC_BLOOD_AND_GORE = 39 [deprecated = true];
    ESRB_REALISTIC_VIOLENCE = 40 [deprecated = true];
    ESRB_ALCOHOL_AND_TOBACCO_REFERENCE = 41 [deprecated = true];
    ESRB_MATURE_SEXUAL_THEMES = 42 [deprecated = true];
    ESRB_MILD_ANIMATED_VIOLENCE = 43 [deprecated = true];
    ESRB_MILD_SEXUAL_THEMES = 44 [deprecated = true];
    ESRB_USE_OF_ALCOHOL_AND_TOBACCO = 45 [deprecated = true];
    ESRB_ANIMATED_BLOOD_AND_GORE = 46 [deprecated = true];
    ESRB_MILD_FANTASY_VIOLENCE = 47 [deprecated = true];
    ESRB_MILD_LYRICS = 48 [deprecated = true];
    ESRB_REALISTIC_BLOOD = 49 [deprecated = true];
    PEGI_VIOLENCE = 50 [deprecated = true];
    PEGI_SEX = 51 [deprecated = true];
    PEGI_DRUGS = 52 [deprecated = true];
    PEGI_FEAR = 53 [deprecated = true];
    PEGI_DISCRIMINATION = 54 [deprecated = true];
    PEGI_BAD_LANGUAGE = 55 [deprecated = true];
    PEGI_GAMBLING = 56 [deprecated = true];
    PEGI_ONLINE_GAMEPLAY = 57 [deprecated = true];
    PEGI_IN_GAME_PURCHASES = 58 [deprecated = true];
    CERO_LOVE = 59 [deprecated = true];
    CERO_SEXUAL_CONTENT = 60 [deprecated = true];
    CERO_VIOLENCE = 61 [deprecated = true];
    CERO_HORROR = 62 [deprecated = true];
    CERO_DRINKING_SMOKING = 63 [deprecated = true];
    CERO_GAMBLING = 64 [deprecated = true];
    CERO_CRIME = 65 [deprecated = true];
    CERO_CONTROLLED_SUBSTANCES = 66 [deprecated = true];
    CERO_LANGUAGES_AND_OTHERS = 67 [deprecated = true];
    GRAC_SEXUALITY = 68 [deprecated = true];
    GRAC_VIOLENCE = 69 [deprecated = true];
    GRAC_FEAR_HORROR_THREATENING = 70 [deprecated = true];
    GRAC_LANGUAGE = 71 [deprecated = true];
    GRAC_ALCOHOL_TOBACCO_DRUG = 72 [deprecated = true];
    GRAC_CRIME_ANTI_SOCIAL = 73 [deprecated = true];
    GRAC_GAMBLING = 74 [deprecated = true];
    CLASS_IND_VIOLENCIA = 75 [deprecated = true];
    CLASS_IND_VIOLENCIA_EXTREMA = 76 [deprecated = true];
    CLASS_IND_CONTEUDO_SEXUAL = 77 [deprecated = true];
    CLASS_IND_NUDEZ = 78 [deprecated = true];
    CLASS_IND_SEXO = 79 [deprecated = true];
    CLASS_IND_SEXO_EXPLICITO = 80 [deprecated = true];
    CLASS_IND_DROGAS = 81 [deprecated = true];
    CLASS_IND_DROGAS_LICITAS = 82 [deprecated = true];
    CLASS_IND_DROGAS_ILICITAS = 83 [deprecated = true];
    CLASS_IND_LINGUAGEM_IMPROPRIA = 84 [deprecated = true];
    CLASS_IND_ATOS_CRIMINOSOS = 85 [deprecated = true];
}

message AgeRatingContentDescriptionV2Result {
    repeated AgeRatingContentDescriptionV2 ageratingcontentdescriptionsv2 = 1;
}

message AgeRatingContentDescriptionV2 {
    uint64 id = 1;
    string description = 2; 
    AgeRatingOrganization organization = 3; 
    google.protobuf.Timestamp created_at = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string checksum = 6; 
}

message AgeRatingOrganizationResult {
    repeated AgeRatingOrganization ageratingorganizations = 1;
}

message AgeRatingOrganization {
    uint64 id = 1;
    string name = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message AlternativeNameResult {
    repeated AlternativeName alternativenames = 1;
}

message AlternativeName {
    uint64 id = 1;
    string comment = 2; 
    Game game = 3; 
    string name = 4; 
    string checksum = 5; 
}

message ArtworkResult {
    repeated Artwork artworks = 1;
}

message Artwork {
    uint64 id = 1;
    bool alpha_channel = 2; 
    bool animated = 3; 
    Game game = 4; 
    int32 height = 5; 
    string image_id = 6; 
    string url = 7; 
    int32 width = 8; 
    string checksum = 9; 
}

message CharacterResult {
    repeated Character characters = 1;
}

message Character {
    uint64 id = 1;
    repeated string akas = 2; 
    string country_name = 3; 
    google.protobuf.Timestamp created_at = 4; 
    string description = 5; 
    repeated Game games = 6; 
    GenderGenderEnum gender = 7 [deprecated = true]; 
    CharacterMugShot mug_shot = 8; 
    string name = 9; 
    string slug = 10; 
    CharacterSpeciesEnum species = 11 [deprecated = true]; 
    google.protobuf.Timestamp updated_at = 12; 
    string url = 13; 
    string checksum = 14; 
    CharacterGender character_gender = 15; 
    CharacterSpecie character_species = 16; 
}


enum GenderGenderEnum {
    MALE = 0 [deprecated = true];
    FEMALE = 1 [deprecated = true];
    OTHER = 2 [deprecated = true];
}


enum CharacterSpeciesEnum {
    CHARACTER_SPECIES_NULL = 0 [deprecated = true];
    HUMAN = 1 [deprecated = true];
    ALIEN = 2 [deprecated = true];
    ANIMAL = 3 [deprecated = true];
    ANDROID = 4 [deprecated = true];
    UNKNOWN = 5 [deprecated = true];
}

message CharacterGenderResult {
    repeated CharacterGender charactergenders = 1;
}

message CharacterGender {
    uint64 id = 1;
    string name = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message CharacterMugShotResult {
    repeated CharacterMugShot charactermugshots = 1;
}

message CharacterMugShot {
    uint64 id = 1;
    bool alpha_channel = 2; 
    bool animated = 3; 
    int32 height = 4; 
    string image_id = 5; 
    string url = 6; 
    int32 width = 7; 
    string checksum = 8; 
}

message CharacterSpecieResult {
    repeated CharacterSpecie characterspecies = 1;
}

message CharacterSpecie {
    uint64 id = 1;
    string name = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message CollectionResult {
    repeated Collection collections = 1;
}

message Collection {
    uint64 id = 1;
    google.protobuf.Timestamp created_at = 2; 
    repeated Game games = 3; 
    string name = 4; 
    string slug = 5; 
    google.protobuf.Timestamp updated_at = 6; 
    string url = 7; 
    string checksum = 8; 
    CollectionType type = 9; 
    repeated CollectionRelation as_parent_relations = 10; 
    repeated CollectionRelation as_child_relations = 11; 
}

message CollectionMembershipResult {
    repeated CollectionMembership collectionmemberships = 1;
}

message CollectionMembership {
    uint64 id = 1;
    Game game = 2; 
    Collection collection = 3; 
    CollectionMembershipType type = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    google.protobuf.Timestamp created_at = 6; 
    string checksum = 7; 
}

message CollectionMembershipTypeResult {
    repeated CollectionMembershipType collectionmembershiptypes = 1;
}

message CollectionMembershipType {
    uint64 id = 1;
    string name = 2; 
    string description = 3; 
    CollectionType allowed_collection_type = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    google.protobuf.Timestamp created_at = 6; 
    string checksum = 7; 
}

message CollectionRelationResult {
    repeated CollectionRelation collectionrelations = 1;
}

message CollectionRelation {
    uint64 id = 1;
    Collection child_collection = 2; 
    Collection parent_collection = 3; 
    CollectionRelationType type = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    google.protobuf.Timestamp created_at = 6; 
    string checksum = 7; 
}

message CollectionRelationTypeResult {
    repeated CollectionRelationType collectionrelationtypes = 1;
}

message CollectionRelationType {
    uint64 id = 1;
    string name = 2; 
    string description = 3; 
    CollectionType allowed_child_type = 4; 
    CollectionType allowed_parent_type = 5; 
    google.protobuf.Timestamp updated_at = 6; 
    google.protobuf.Timestamp created_at = 7; 
    string checksum = 8; 
}

message CollectionTypeResult {
    repeated CollectionType collectiontypes = 1;
}

message CollectionType {
    uint64 id = 1;
    string name = 2; 
    string description = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    google.protobuf.Timestamp created_at = 5; 
    string checksum = 6; 
}

message CompanyResult {
    repeated Company companies = 1;
}

message Company {
    uint64 id = 1;
    google.protobuf.Timestamp change_date = 2; 
    DateFormatChangeDateCategoryEnum change_date_category = 3 [deprecated = true]; 
    Company changed_company_id = 4; 
    int32 country = 5; 
    google.protobuf.Timestamp created_at = 6; 
    string description = 7; 
    repeated Game developed = 8; 
    CompanyLogo logo = 9; 
    string name = 10; 
    Company parent = 11; 
    repeated Game published = 12; 
    string slug = 13; 
    google.protobuf.Timestamp start_date = 14; 
    DateFormatChangeDateCategoryEnum start_date_category = 15 [deprecated = true]; 
    google.protobuf.Timestamp updated_at = 16; 
    string url = 17; 
    repeated CompanyWebsite websites = 18; 
    string checksum = 19; 
    CompanyStatus status = 20; 
    DateFormat start_date_format = 21; 
    DateFormat change_date_format = 22; 
}


enum DateFormatChangeDateCategoryEnum {
    YYYYMMMMDD = 0 [deprecated = true];
    YYYYMMMM = 1 [deprecated = true];
    YYYY = 2 [deprecated = true];
    YYYYQ1 = 3 [deprecated = true];
    YYYYQ2 = 4 [deprecated = true];
    YYYYQ3 = 5 [deprecated = true];
    YYYYQ4 = 6 [deprecated = true];
    TBD = 7 [deprecated = true];
}

message CompanyLogoResult {
    repeated CompanyLogo companylogos = 1;
}

message CompanyLogo {
    uint64 id = 1;
    bool alpha_channel = 2; 
    bool animated = 3; 
    int32 height = 4; 
    string image_id = 5; 
    string url = 6; 
    int32 width = 7; 
    string checksum = 8; 
}

message CompanyStatusResult {
    repeated CompanyStatus companystatuses = 1;
}

message CompanyStatus {
    uint64 id = 1;
    string name = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message CompanyWebsiteResult {
    repeated CompanyWebsite companywebsites = 1;
}

message CompanyWebsite {
    uint64 id = 1;
    WebsiteCategoryEnum category = 2 [deprecated = true]; 
    bool trusted = 3; 
    string url = 4; 
    string checksum = 5; 
    WebsiteType type = 6; 
}


enum WebsiteCategoryEnum {
    WEBSITE_CATEGORY_NULL = 0 [deprecated = true];
    WEBSITE_OFFICIAL = 1 [deprecated = true];
    WEBSITE_WIKIA = 2 [deprecated = true];
    WEBSITE_WIKIPEDIA = 3 [deprecated = true];
    WEBSITE_FACEBOOK = 4 [deprecated = true];
    WEBSITE_TWITTER = 5 [deprecated = true];
    WEBSITE_TWITCH = 6 [deprecated = true];
    WEBSITE_INSTAGRAM = 8 [deprecated = true];
    WEBSITE_YOUTUBE = 9 [deprecated = true];
    WEBSITE_IPHONE = 10 [deprecated = true];
    WEBSITE_IPAD = 11 [deprecated = true];
    WEBSITE_ANDROID = 12 [deprecated = true];
    WEBSITE_STEAM = 13 [deprecated = true];
    WEBSITE_REDDIT = 14 [deprecated = true];
    WEBSITE_ITCH = 15 [deprecated = true];
    WEBSITE_EPICGAMES = 16 [deprecated = true];
    WEBSITE_GOG = 17 [deprecated = true];
    WEBSITE_DISCORD = 18 [deprecated = true];
    WEBSITE_BLUESKY = 19 [deprecated = true];
}

message CoverResult {
    repeated Cover covers = 1;
}

message Cover {
    uint64 id = 1;
    bool alpha_channel = 2; 
    bool animated = 3; 
    Game game = 4; 
    int32 height = 5; 
    string image_id = 6; 
    string url = 7; 
    int32 width = 8; 
    string checksum = 9; 
    GameLocalization game_localization = 10; 
}

message DateFormatResult {
    repeated DateFormat dateformats = 1;
}

message DateFormat {
    uint64 id = 1;
    string format = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message EventResult {
    repeated Event events = 1;
}

message Event {
    uint64 id = 1;
    string name = 2; 
    string description = 3; 
    string slug = 4; 
    EventLogo event_logo = 5; 
    google.protobuf.Timestamp start_time = 6; 
    string time_zone = 7; 
    google.protobuf.Timestamp end_time = 8; 
    string live_stream_url = 9; 
    repeated Game games = 10; 
    repeated GameVideo videos = 11; 
    repeated EventNetwork event_networks = 12; 
    google.protobuf.Timestamp created_at = 13; 
    google.protobuf.Timestamp updated_at = 14; 
    string checksum = 15; 
}

message EventLogoResult {
    repeated EventLogo eventlogos = 1;
}

message EventLogo {
    uint64 id = 1;
    Event event = 2; 
    bool alpha_channel = 3; 
    bool animated = 4; 
    int32 height = 5; 
    string image_id = 6; 
    string url = 7; 
    int32 width = 8; 
    google.protobuf.Timestamp created_at = 9; 
    google.protobuf.Timestamp updated_at = 10; 
    string checksum = 11; 
}

message EventNetworkResult {
    repeated EventNetwork eventnetworks = 1;
}

message EventNetwork {
    uint64 id = 1;
    Event event = 2; 
    string url = 3; 
    NetworkType network_type = 4; 
    google.protobuf.Timestamp created_at = 5; 
    google.protobuf.Timestamp updated_at = 6; 
    string checksum = 7; 
}

message ExternalGameResult {
    repeated ExternalGame externalgames = 1;
}

message ExternalGame {
    uint64 id = 1;
    ExternalGameCategoryEnum category = 2 [deprecated = true]; 
    google.protobuf.Timestamp created_at = 3; 
    Game game = 4; 
    string name = 5; 
    string uid = 6; 
    google.protobuf.Timestamp updated_at = 7; 
    string url = 8; 
    int32 year = 9; 
    ExternalGameMediaEnum media = 10 [deprecated = true]; 
    Platform platform = 11; 
    repeated int32 countries = 12; 
    string checksum = 13; 
    ExternalGameSource external_game_source = 14; 
    GameReleaseFormat game_release_format = 15; 
}


enum ExternalGameCategoryEnum {
    EXTERNALGAME_CATEGORY_NULL = 0 [deprecated = true];
    EXTERNALGAME_STEAM = 1 [deprecated = true];
    EXTERNALGAME_GOG = 5 [deprecated = true];
    EXTERNALGAME_YOUTUBE = 10 [deprecated = true];
    EXTERNALGAME_MICROSOFT = 11 [deprecated = true];
    EXTERNALGAME_APPLE = 13 [deprecated = true];
    EXTERNALGAME_TWITCH = 14 [deprecated = true];
    EXTERNALGAME_ANDROID = 15 [deprecated = true];
    EXTERNALGAME_AMAZON_ASIN = 20 [deprecated = true];
    EXTERNALGAME_AMAZON_LUNA = 22 [deprecated = true];
    EXTERNALGAME_AMAZON_ADG = 23 [deprecated = true];
    EXTERNALGAME_EPIC_GAME_STORE = 26 [deprecated = true];
    EXTERNALGAME_OCULUS = 28 [deprecated = true];
    EXTERNALGAME_UTOMIK = 29 [deprecated = true];
    EXTERNALGAME_ITCH_IO = 30 [deprecated = true];
    EXTERNALGAME_XBOX_MARKETPLACE = 31 [deprecated = true];
    EXTERNALGAME_KARTRIDGE = 32 [deprecated = true];
    EXTERNALGAME_PLAYSTATION_STORE_US = 36 [deprecated = true];
    EXTERNALGAME_FOCUS_ENTERTAINMENT = 37 [deprecated = true];
    EXTERNALGAME_XBOX_GAME_PASS_ULTIMATE_CLOUD = 54 [deprecated = true];
    EXTERNALGAME_GAMEJOLT = 55 [deprecated = true];
}


enum ExternalGameMediaEnum {
    EXTERNALGAME_MEDIA_NULL = 0 [deprecated = true];
    EXTERNALGAME_DIGITAL = 1 [deprecated = true];
    EXTERNALGAME_PHYSICAL = 2 [deprecated = true];
}

message ExternalGameSourceResult {
    repeated ExternalGameSource externalgamesources = 1;
}

message ExternalGameSource {
    uint64 id = 1;
    string name = 2; 
    google.protobuf.Timestamp created_at = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string checksum = 6; 
}

message FranchiseResult {
    repeated Franchise franchises = 1;
}

message Franchise {
    uint64 id = 1;
    google.protobuf.Timestamp created_at = 2; 
    repeated Game games = 3; 
    string name = 4; 
    string slug = 5; 
    google.protobuf.Timestamp updated_at = 6; 
    string url = 7; 
    string checksum = 8; 
}

message GameResult {
    repeated Game games = 1;
}

message Game {
    uint64 id = 1;
    repeated AgeRating age_ratings = 2; 
    double aggregated_rating = 3; 
    int32 aggregated_rating_count = 4; 
    repeated AlternativeName alternative_names = 5; 
    repeated Artwork artworks = 6; 
    repeated Game bundles = 7; 
    GameCategoryEnum category = 8 [deprecated = true]; 
    Collection collection = 9 [deprecated = true]; 
    Cover cover = 10; 
    google.protobuf.Timestamp created_at = 11; 
    repeated Game dlcs = 12; 
    repeated Game expansions = 13; 
    repeated ExternalGame external_games = 14; 
    google.protobuf.Timestamp first_release_date = 15; 
    int32 follows = 16 [deprecated = true]; 
    Franchise franchise = 17; 
    repeated Franchise franchises = 18; 
    repeated GameEngine game_engines = 19; 
    repeated GameMode game_modes = 20; 
    repeated Genre genres = 21; 
    int32 hypes = 22; 
    repeated InvolvedCompany involved_companies = 23; 
    repeated Keyword keywords = 24; 
    repeated MultiplayerMode multiplayer_modes = 25; 
    string name = 26; 
    Game parent_game = 27; 
    repeated Platform platforms = 28; 
    repeated PlayerPerspective player_perspectives = 29; 
    double rating = 30; 
    int32 rating_count = 31; 
    repeated ReleaseDate release_dates = 32; 
    repeated Screenshot screenshots = 33; 
    repeated Game similar_games = 34; 
    string slug = 35; 
    repeated Game standalone_expansions = 36; 
    GameStatusEnum status = 37 [deprecated = true]; 
    string storyline = 38; 
    string summary = 39; 
    repeated int32 tags = 40; 
    repeated Theme themes = 41; 
    double total_rating = 42; 
    int32 total_rating_count = 43; 
    google.protobuf.Timestamp updated_at = 44; 
    string url = 45; 
    Game version_parent = 46; 
    string version_title = 47; 
    repeated GameVideo videos = 48; 
    repeated Website websites = 49; 
    string checksum = 50; 
    repeated Game remakes = 51; 
    repeated Game remasters = 52; 
    repeated Game expanded_games = 53; 
    repeated Game ports = 54; 
    repeated Game forks = 55; 
    repeated LanguageSupport language_supports = 56; 
    repeated GameLocalization game_localizations = 57; 
    repeated Collection collections = 58; 
    GameStatus game_status = 59; 
    GameType game_type = 60; 
}


enum GameCategoryEnum {
    MAIN_GAME = 0 [deprecated = true];
    DLC_ADDON = 1 [deprecated = true];
    EXPANSION = 2 [deprecated = true];
    BUNDLE = 3 [deprecated = true];
    STANDALONE_EXPANSION = 4 [deprecated = true];
    MOD = 5 [deprecated = true];
    EPISODE = 6 [deprecated = true];
    SEASON = 7 [deprecated = true];
    REMAKE = 8 [deprecated = true];
    REMASTER = 9 [deprecated = true];
    EXPANDED_GAME = 10 [deprecated = true];
    PORT = 11 [deprecated = true];
    FORK = 12 [deprecated = true];
    PACK = 13 [deprecated = true];
    UPDATE = 14 [deprecated = true];
}


enum GameStatusEnum {
    RELEASED = 0 [deprecated = true];
    ALPHA = 2 [deprecated = true];
    BETA = 3 [deprecated = true];
    EARLY_ACCESS = 4 [deprecated = true];
    OFFLINE = 5 [deprecated = true];
    CANCELLED = 6 [deprecated = true];
    RUMORED = 7 [deprecated = true];
    DELISTED = 8 [deprecated = true];
}

message GameEngineResult {
    repeated GameEngine gameengines = 1;
}

message GameEngine {
    uint64 id = 1;
    repeated Company companies = 2; 
    google.protobuf.Timestamp created_at = 3; 
    string description = 4; 
    GameEngineLogo logo = 5; 
    string name = 6; 
    repeated Platform platforms = 7; 
    string slug = 8; 
    google.protobuf.Timestamp updated_at = 9; 
    string url = 10; 
    string checksum = 11; 
}

message GameEngineLogoResult {
    repeated GameEngineLogo gameenginelogos = 1;
}

message GameEngineLogo {
    uint64 id = 1;
    bool alpha_channel = 2; 
    bool animated = 3; 
    int32 height = 4; 
    string image_id = 5; 
    string url = 6; 
    int32 width = 7; 
    string checksum = 8; 
}

message GameLocalizationResult {
    repeated GameLocalization gamelocalizations = 1;
}

message GameLocalization {
    uint64 id = 1;
    string name = 2; 
    Cover cover = 3; 
    Game game = 4; 
    Region region = 5; 
    google.protobuf.Timestamp created_at = 6; 
    google.protobuf.Timestamp updated_at = 7; 
    string checksum = 8; 
}

message GameModeResult {
    repeated GameMode gamemodes = 1;
}

message GameMode {
    uint64 id = 1;
    google.protobuf.Timestamp created_at = 2; 
    string name = 3; 
    string slug = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string url = 6; 
    string checksum = 7; 
}

message GameReleaseFormatResult {
    repeated GameReleaseFormat gamereleaseformats = 1;
}

message GameReleaseFormat {
    uint64 id = 1;
    string format = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message GameStatusResult {
    repeated GameStatus gamestatuses = 1;
}

message GameStatus {
    uint64 id = 1;
    string status = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message GameTimeToBeatResult {
    repeated GameTimeToBeat gametimetobeats = 1;
}

message GameTimeToBeat {
    uint64 id = 1;
    int32 game_id = 2; 
    int32 hastily = 3; 
    int32 normally = 4; 
    int32 completely = 5; 
    int32 count = 6; 
    google.protobuf.Timestamp created_at = 7; 
    google.protobuf.Timestamp updated_at = 8; 
    string checksum = 9; 
}

message GameTypeResult {
    repeated GameType gametypes = 1;
}

message GameType {
    uint64 id = 1;
    string type = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message GameVersionResult {
    repeated GameVersion gameversions = 1;
}

message GameVersion {
    uint64 id = 1;
    google.protobuf.Timestamp created_at = 2; 
    repeated GameVersionFeature features = 3; 
    Game game = 4; 
    repeated Game games = 5; 
    google.protobuf.Timestamp updated_at = 6; 
    string url = 7; 
    string checksum = 8; 
}

message GameVersionFeatureResult {
    repeated GameVersionFeature gameversionfeatures = 1;
}

message GameVersionFeature {
    uint64 id = 1;
    GameVersionFeatureCategoryEnum category = 2; 
    string description = 3; 
    int32 position = 4; 
    string title = 5; 
    repeated GameVersionFeatureValue values = 6; 
    string checksum = 7; 
}


enum GameVersionFeatureCategoryEnum {
    BOOLEAN = 0;
    DESCRIPTION = 1;
}

message GameVersionFeatureValueResult {
    repeated GameVersionFeatureValue gameversionfeaturevalues = 1;
}

message GameVersionFeatureValue {
    uint64 id = 1;
    Game game = 2; 
    GameVersionFeature game_feature = 3; 
    GameVersionFeatureValueIncludedFeatureEnum included_feature = 4; 
    string note = 5; 
    string checksum = 6; 
}


enum GameVersionFeatureValueIncludedFeatureEnum {
    NOT_INCLUDED = 0;
    INCLUDED = 1;
    PRE_ORDER_ONLY = 2;
}

message GameVideoResult {
    repeated GameVideo gamevideos = 1;
}

message GameVideo {
    uint64 id = 1;
    Game game = 2; 
    string name = 3; 
    string video_id = 4; 
    string checksum = 5; 
}

message GenreResult {
    repeated Genre genres = 1;
}

message Genre {
    uint64 id = 1;
    google.protobuf.Timestamp created_at = 2; 
    string name = 3; 
    string slug = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string url = 6; 
    string checksum = 7; 
}

message InvolvedCompanyResult {
    repeated InvolvedCompany involvedcompanies = 1;
}

message InvolvedCompany {
    uint64 id = 1;
    Company company = 2; 
    google.protobuf.Timestamp created_at = 3; 
    bool developer = 4; 
    Game game = 5; 
    bool porting = 6; 
    bool publisher = 7; 
    bool supporting = 8; 
    google.protobuf.Timestamp updated_at = 9; 
    string checksum = 10; 
}

message KeywordResult {
    repeated Keyword keywords = 1;
}

message Keyword {
    uint64 id = 1;
    google.protobuf.Timestamp created_at = 2; 
    string name = 3; 
    string slug = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string url = 6; 
    string checksum = 7; 
}

message LanguageResult {
    repeated Language languages = 1;
}

message Language {
    uint64 id = 1;
    string name = 2; 
    string native_name = 3; 
    string locale = 4; 
    google.protobuf.Timestamp created_at = 5; 
    google.protobuf.Timestamp updated_at = 6; 
    string checksum = 7; 
}

message LanguageSupportResult {
    repeated LanguageSupport languagesupports = 1;
}

message LanguageSupport {
    uint64 id = 1;
    Game game = 2; 
    Language language = 3; 
    LanguageSupportType language_support_type = 4; 
    google.protobuf.Timestamp created_at = 5; 
    google.protobuf.Timestamp updated_at = 6; 
    string checksum = 7; 
}

message LanguageSupportTypeResult {
    repeated LanguageSupportType languagesupporttypes = 1;
}

message LanguageSupportType {
    uint64 id = 1;
    string name = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message MultiplayerModeResult {
    repeated MultiplayerMode multiplayermodes = 1;
}

message MultiplayerMode {
    uint64 id = 1;
    bool campaigncoop = 2; 
    bool dropin = 3; 
    Game game = 4; 
    bool lancoop = 5; 
    bool offlinecoop = 6; 
    int32 offlinecoopmax = 7; 
    int32 offlinemax = 8; 
    bool onlinecoop = 9; 
    int32 onlinecoopmax = 10; 
    int32 onlinemax = 11; 
    Platform platform = 12; 
    bool splitscreen = 13; 
    bool splitscreenonline = 14; 
    string checksum = 15; 
}

message NetworkTypeResult {
    repeated NetworkType networktypes = 1;
}

message NetworkType {
    uint64 id = 1;
    string name = 2; 
    repeated EventNetwork event_networks = 3; 
    google.protobuf.Timestamp created_at = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string checksum = 6; 
}

message PlatformResult {
    repeated Platform platforms = 1;
}

message Platform {
    uint64 id = 1;
    string abbreviation = 2; 
    string alternative_name = 3; 
    PlatformCategoryEnum category = 4 [deprecated = true]; 
    google.protobuf.Timestamp created_at = 5; 
    int32 generation = 6; 
    string name = 7; 
    PlatformLogo platform_logo = 8; 
    PlatformFamily platform_family = 9; 
    string slug = 10; 
    string summary = 11; 
    google.protobuf.Timestamp updated_at = 12; 
    string url = 13; 
    repeated PlatformVersion versions = 14; 
    repeated PlatformWebsite websites = 15; 
    string checksum = 16; 
    PlatformType platform_type = 17; 
}


enum PlatformCategoryEnum {
    PLATFORM_CATEGORY_NULL = 0 [deprecated = true];
    CONSOLE = 1 [deprecated = true];
    ARCADE = 2 [deprecated = true];
    PLATFORM = 3 [deprecated = true];
    OPERATING_SYSTEM = 4 [deprecated = true];
    PORTABLE_CONSOLE = 5 [deprecated = true];
    COMPUTER = 6 [deprecated = true];
}

message PlatformFamilyResult {
    repeated PlatformFamily platformfamilies = 1;
}

message PlatformFamily {
    uint64 id = 1;
    string name = 2; 
    string slug = 3; 
    string checksum = 4; 
}

message PlatformLogoResult {
    repeated PlatformLogo platformlogos = 1;
}

message PlatformLogo {
    uint64 id = 1;
    bool alpha_channel = 2; 
    bool animated = 3; 
    int32 height = 4; 
    string image_id = 5; 
    string url = 6; 
    int32 width = 7; 
    string checksum = 8; 
}

message PlatformTypeResult {
    repeated PlatformType platformtypes = 1;
}

message PlatformType {
    uint64 id = 1;
    string name = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message PlatformVersionResult {
    repeated PlatformVersion platformversions = 1;
}

message PlatformVersion {
    uint64 id = 1;
    repeated PlatformVersionCompany companies = 2; 
    string connectivity = 3; 
    string cpu = 4; 
    string graphics = 5; 
    PlatformVersionCompany main_manufacturer = 6; 
    string media = 7; 
    string memory = 8; 
    string name = 9; 
    string os = 11; 
    string output = 12; 
    PlatformLogo platform_logo = 13; 
    repeated PlatformVersionReleaseDate platform_version_release_dates = 14; 
    string resolutions = 15; 
    string slug = 16; 
    string sound = 17; 
    string storage = 18; 
    string summary = 19; 
    string url = 20; 
    string checksum = 21; 
}

message PlatformVersionCompanyResult {
    repeated PlatformVersionCompany platformversioncompanies = 1;
}

message PlatformVersionCompany {
    uint64 id = 1;
    string comment = 2; 
    Company company = 3; 
    bool developer = 4; 
    bool manufacturer = 5; 
    string checksum = 6; 
}

message PlatformVersionReleaseDateResult {
    repeated PlatformVersionReleaseDate platformversionreleasedates = 1;
}

message PlatformVersionReleaseDate {
    uint64 id = 1;
    DateFormatChangeDateCategoryEnum category = 2 [deprecated = true]; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp date = 4; 
    string human = 5; 
    int32 m = 6; 
    PlatformVersion platform_version = 7; 
    RegionRegionEnum region = 8 [deprecated = true]; 
    google.protobuf.Timestamp updated_at = 9; 
    int32 y = 10; 
    string checksum = 11; 
    DateFormat date_format = 12; 
    ReleaseDateRegion release_region = 13; 
}


enum RegionRegionEnum {
    REGION_REGION_NULL = 0 [deprecated = true];
    EUROPE = 1 [deprecated = true];
    NORTH_AMERICA = 2 [deprecated = true];
    AUSTRALIA = 3 [deprecated = true];
    NEW_ZEALAND = 4 [deprecated = true];
    JAPAN = 5 [deprecated = true];
    CHINA = 6 [deprecated = true];
    ASIA = 7 [deprecated = true];
    WORLDWIDE = 8 [deprecated = true];
    KOREA = 9 [deprecated = true];
    BRAZIL = 10 [deprecated = true];
}

message PlatformWebsiteResult {
    repeated PlatformWebsite platformwebsites = 1;
}

message PlatformWebsite {
    uint64 id = 1;
    WebsiteCategoryEnum category = 2 [deprecated = true]; 
    bool trusted = 3; 
    string url = 4; 
    string checksum = 5; 
    WebsiteType type = 6; 
}

message PlayerPerspectiveResult {
    repeated PlayerPerspective playerperspectives = 1;
}

message PlayerPerspective {
    uint64 id = 1;
    google.protobuf.Timestamp created_at = 2; 
    string name = 3; 
    string slug = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string url = 6; 
    string checksum = 7; 
}

message PopularityPrimitiveResult {
    repeated PopularityPrimitive popularityprimitives = 1;
}

message PopularityPrimitive {
    uint64 id = 1;
    int32 game_id = 2; 
    PopularityType popularity_type = 3; 
    PopularitySourcePopularitySourceEnum popularity_source = 4 [deprecated = true]; 
    double value = 5; 
    google.protobuf.Timestamp calculated_at = 6; 
    google.protobuf.Timestamp created_at = 7; 
    google.protobuf.Timestamp updated_at = 8; 
    string checksum = 9; 
    ExternalGameSource external_popularity_source = 10; 
}


enum PopularitySourcePopularitySourceEnum {
    POPULARITYSOURCE_POPULARITY_SOURCE_NULL = 0 [deprecated = true];
    IGDB = 121 [deprecated = true];
}

message PopularityTypeResult {
    repeated PopularityType popularitytypes = 1;
}

message PopularityType {
    uint64 id = 1;
    PopularitySourcePopularitySourceEnum popularity_source = 2 [deprecated = true]; 
    string name = 3; 
    google.protobuf.Timestamp created_at = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string checksum = 6; 
    ExternalGameSource external_popularity_source = 7; 
}

message RegionResult {
    repeated Region regions = 1;
}

message Region {
    uint64 id = 1;
    string name = 2; 
    string category = 3; 
    string identifier = 4; 
    google.protobuf.Timestamp created_at = 5; 
    google.protobuf.Timestamp updated_at = 6; 
    string checksum = 7; 
}

message ReleaseDateResult {
    repeated ReleaseDate releasedates = 1;
}

message ReleaseDate {
    uint64 id = 1;
    DateFormatChangeDateCategoryEnum category = 2 [deprecated = true]; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp date = 4; 
    Game game = 5; 
    string human = 6; 
    int32 m = 7; 
    Platform platform = 8; 
    RegionRegionEnum region = 9 [deprecated = true]; 
    google.protobuf.Timestamp updated_at = 10; 
    int32 y = 11; 
    string checksum = 12; 
    ReleaseDateStatus status = 13; 
    DateFormat date_format = 14; 
    ReleaseDateRegion release_region = 15; 
}

message ReleaseDateRegionResult {
    repeated ReleaseDateRegion releasedateregions = 1;
}

message ReleaseDateRegion {
    uint64 id = 1;
    string region = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}

message ReleaseDateStatusResult {
    repeated ReleaseDateStatus releasedatestatuses = 1;
}

message ReleaseDateStatus {
    uint64 id = 1;
    string name = 2; 
    string description = 3; 
    google.protobuf.Timestamp created_at = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string checksum = 6; 
}

message ScreenshotResult {
    repeated Screenshot screenshots = 1;
}

message Screenshot {
    uint64 id = 1;
    bool alpha_channel = 2; 
    bool animated = 3; 
    Game game = 4; 
    int32 height = 5; 
    string image_id = 6; 
    string url = 7; 
    int32 width = 8; 
    string checksum = 9; 
}

message SearchResult {
    repeated Search searches = 1;
}

message Search {
    uint64 id = 1;
    string alternative_name = 2; 
    Character character = 3; 
    Collection collection = 4; 
    Company company = 5; 
    string description = 6; 
    Game game = 7; 
    string name = 8; 
    Platform platform = 9; 
    google.protobuf.Timestamp published_at = 10; 
    TestDummy test_dummy = 11; 
    Theme theme = 12; 
    string checksum = 13; 
}

message TestDummyResult {
    repeated TestDummy testdummies = 1;
}

message TestDummy {
    uint64 id = 1;
    bool bool_value = 2; 
    google.protobuf.Timestamp created_at = 3; 
    TestDummyEnumTestEnum enum_test = 4; 
    double float_value = 5; 
    Game game = 6; 
    repeated int32 integer_array = 7; 
    int32 integer_value = 8; 
    string name = 9; 
    int32 new_integer_value = 10; 
    bool private = 11; 
    string slug = 12; 
    repeated string string_array = 13; 
    repeated TestDummy test_dummies = 14; 
    TestDummy test_dummy = 15; 
    google.protobuf.Timestamp updated_at = 16; 
    string url = 17; 
    string checksum = 18; 
}


enum TestDummyEnumTestEnum {
    TESTDUMMY_ENUM_TEST_NULL = 0;
    ENUM1 = 1;
    ENUM2 = 2;
}

message ThemeResult {
    repeated Theme themes = 1;
}

message Theme {
    uint64 id = 1;
    google.protobuf.Timestamp created_at = 2; 
    string name = 3; 
    string slug = 4; 
    google.protobuf.Timestamp updated_at = 5; 
    string url = 6; 
    string checksum = 7; 
}

message WebsiteResult {
    repeated Website websites = 1;
}

message Website {
    uint64 id = 1;
    WebsiteCategoryEnum category = 2 [deprecated = true]; 
    Game game = 3; 
    bool trusted = 4; 
    string url = 5; 
    string checksum = 6; 
    WebsiteType type = 7; 
}

message WebsiteTypeResult {
    repeated WebsiteType websitetypes = 1;
}

message WebsiteType {
    uint64 id = 1;
    string type = 2; 
    google.protobuf.Timestamp created_at = 3; 
    google.protobuf.Timestamp updated_at = 4; 
    string checksum = 5; 
}