syntax = "proto3";

package cast.common;

option optimize_for = LITE_RUNTIME;

// Runtime description.
message RuntimeMetadata {
  // Runtime name  (platform provided - optional).
  string name = 1;
  // Runtime type.
  RuntimeType.Type type = 2;
  // Various Runtime capabilities.
  RuntimeCapabilities runtime_capabilities = 3;
}

message RuntimeType {
  // RuntimeType enumeration sets defines the way runtimes are selected for a
  // given Cast application. The following rules are applied in the order:
  //  1. Select NATIVE runtime if Cast application ID is in the supported list.
  //  2. Select CAST_LITE runtime if Cast application is audio-only.
  //  3. Fall back to Cast Web runtime.
  enum Type {
    UNDEFINED = 0;
    // Cast Web runtime. The list of supported Cast application IDs must be
    // empty.
    CAST_WEB = 1;
    // Cast Lite runtime for audio.
    CAST_LITE = 2;
    // Runtimes native to specific platform (Netflix, YouTube applications etc)
    NATIVE = 3;
  }
}

message MediaCapabilities {
  // TODO: These capabilities must be flashed out.
  bool audio_supported = 1;
  bool video_supported = 2;
}

message ApplicationCapabilities {
  // List of supported Cast application IDs.
  repeated string app_ids = 1;
}

message RuntimeCapabilities {
  MediaCapabilities media_capabilities = 1;

  oneof specific_capabilities {
    // capabilities for NATIVE runtime.
    ApplicationCapabilities native_application_capabilities = 2;
  }
}
