game-scanner 1.0.5

Game Scanner for any launcher and OS
syntax = "proto3";
package product;

message Database {
  repeated ProductInstall product_installs = 1;
  repeated InstallHandshake active_installs = 2;
  repeated ActiveProcess active_processes = 3;
  repeated ProductConfig product_configs = 4;
  DownloadSettings download_settings = 5;
}

message ProductInstall {
  string uid = 1;
  string product_code = 2;
  UserSettings settings = 3;
  CachedProductState cached_product_state = 4;
  ProductOperations product_operations = 5;
}

message InstallHandshake {
  string product = 1;
  string uid = 2;
  UserSettings settings = 3;
}

message UserSettings {
  string install_path = 1;
  string play_region = 2;
  ShortcutOption desktop_shortcut = 3;
  ShortcutOption startmenu_shortcut = 4;
  LanguageSettingType language_settings = 5;
  string selected_text_language = 6;
  string selected_speech_language = 7;
  repeated LanguageSetting languages = 8;
  string gfx_override_tags = 9;
  string versionbranch = 10;
}

message LanguageSetting {
  string language = 1;
  LanguageOption option = 2;
}

message BuildConfig {
  string region = 1;
  string build_config = 2;
}

message BaseProductState {
  bool installed = 1;
  bool playable = 2;
  bool update_complete = 3;
  bool background_download_available = 4;
  bool background_download_complete = 5;
  string current_version = 6;
  string current_version_str = 7;
  repeated BuildConfig installed_build_config = 8;
  repeated BuildConfig background_download_build_config = 9;
  string decryption_key = 10;
  repeated string completed_install_actions = 11;
}

message BackfillProgress {
  double progress = 1;
  bool backgrounddownload = 2;
  bool paused = 3;
  uint64 download_limit = 4;
}

message RepairProgress {
  double progress = 1;
}

message UpdateProgress {
  string last_disc_set_used = 1;
  double progress = 2;
  bool disc_ignored = 3;
  uint64 total_to_download = 4;
  uint64 download_remaining = 5;
}

message CachedProductState {
  BaseProductState base_product_state = 1;
  BackfillProgress backfill_progress = 2;
  RepairProgress repair_progress = 3;
  UpdateProgress update_progress = 4;
}

message ProductOperations {
  Operation active_operation = 1;
  uint64 priority = 2;
}

message ProductConfig {
  string product_code = 1;
  string metadata_hash = 2;
  string timestamp = 3;
}

message ActiveProcess {
  string process_name = 1;
  int32 pid = 2;
  repeated string uri = 3;
}

message DownloadSettings {
  int32 download_limit = 1;
  int32 backfill_limit = 2;
}

enum LanguageOption {
  LANGOPTION_NONE = 0;
  LANGOPTION_TEXT = 1;
  LANGOPTION_SPEECH = 2;
  LANGOPTION_TEXT_AND_SPEECH = 3;
}

enum LanguageSettingType {
  LANGSETTING_NONE = 0;
  LANGSETTING_SINGLE = 1;
  LANGSETTING_SIMPLE = 2;
  LANGSETTING_ADVANCED = 3;
}

enum ShortcutOption {
  SHORTCUT_NONE = 0;
  SHORTCUT_USER = 1;
  SHORTCUT_ALL_USERS = 2;
}

enum Operation {
  OP_UPDATE = 0;
  OP_BACKFILL = 1;
  OP_REPAIR = 2;
  OP_NONE = -1;
}