retrom-codegen 0.7.51

Code generation for Retrom
Documentation
syntax = "proto3";

package retrom;

message ConnectionConfig {
  optional int32 port = 1;
  optional string db_url = 2;
}

message IgnorePatterns {
  repeated string patterns = 1;
}

enum StorageType {
  // Standard library directory with single-file games
  // e.g. /contentDir/platformX/game.rom
  SINGLE_FILE_GAME = 0;

  // Standard library directory with multi-file games
  // e.g. /contentDir/platformX/game/game.rom
  MULTI_FILE_GAME = 1;

  // Custom, user-defined structure composed of named macros
  // used for non-standard library directories and/or automatic
  // tagging of scanned entries
  //
  // example user definition: "/some/path/{platform}/{game}/{region}/{file}"
  CUSTOM = 2;
}

message CustomLibraryDefinition {
  string definition = 1;
}

message ContentDirectory {
  string path = 1;
  optional StorageType storage_type = 2;
  optional IgnorePatterns ignore_patterns = 3;
  optional CustomLibraryDefinition custom_library_definition = 4;
}

message IGDBConfig {
  string client_id = 1;
  string client_secret = 2;
}

message SteamConfig {
  string api_key = 1;
  string user_id = 2;
}

message SavesConfig {
  int32 max_save_files_backups = 1;
  int32 max_save_states_backups = 2;
}

message MetadataConfig {
  enum ImageFormat {
    UNSPECIFIED = 0;
    JPEG = 1;
    PNG = 2;
    WEBP = 3;
  }

  message OptimizationConfig {
    // JPEG quality for stored images (0-100)
    uint32 jpeg_quality = 1;

    // Perform lossless optimization on stored JPEG images
    bool jpeg_optimization = 2;

    // WebP quality for stored images (0-100)
    uint32 webp_quality = 3;

    // Perform lossless encoding for stored WebP images
    bool webp_lossless = 4;

    // PNG quality for stored images (0-100)
    uint32 png_quality = 5;

    // Lossless compression level on stored PNG images (0-6)
    uint32 png_optimization_level = 6;

    // Perform lossless optimization on stored PNG images
    bool png_optimization = 7;

    // Preferred image format for storing metadata images
    optional ImageFormat preferred_image_format = 8;
  }

  bool store_metadata_locally = 1;
  OptimizationConfig optimization = 2;
}

message ServerConfig {
  message TelemetryConfig {
    bool enabled = 1;
  }

  ConnectionConfig connection = 1;
  repeated ContentDirectory content_directories = 2;
  optional IGDBConfig igdb = 3;
  optional SteamConfig steam = 4;
  optional SavesConfig saves = 5;
  optional TelemetryConfig telemetry = 6;
  optional MetadataConfig metadata = 7;
}