syntax = "proto3";

package retrom;

import "retrom/models/clients.proto";

message InterfaceConfig {
  enum GameListEntryImage {
    COVER = 0;
    BACKGROUND = 1;
  }

  message GridListConfig {
    int32 columns = 1;
    int32 gap = 2;
    GameListEntryImage image_type = 3;
  }

  message FullscreenConfig {
    GridListConfig grid_list = 1;
  }

  bool fullscreen_by_default = 1;
  FullscreenConfig fullscreen_config = 2;
}

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

  message Server {
    string hostname = 1;
    optional int32 port = 2;
    optional bool standalone = 3;
  }

  message Config {
    Client client_info = 1;
    InterfaceConfig interface = 2;
    optional string installation_dir = 3;
  }

  message FlowCompletions {
    bool setup_complete = 1;
    bool telemetry_enabled = 2;
  }

  Server server = 1;
  Config config = 2;
  FlowCompletions flow_completions = 3;
  optional TelemetryConfig telemetry = 4;
}
