message SearchRequest { optional string query = 0x1; optional Type type = 0x2; enum Type { TRACK = 0x0; ALBUM = 0x1; ARTIST = 0x2; PLAYLIST = 0x3; USER = 0x4; } optional int32 limit = 0x3; optional int32 offset = 0x4; optional bool did_you_mean = 0x5; optional string spotify_uri = 0x2; repeated bytes file_id = 0x3; optional string url = 0x4; optional string slask_id = 0x5; } message Playlist { optional string uri = 0x1; optional string name = 0x2; repeated Image image = 0x3; } message User { optional string username = 0x1; optional string full_name = 0x2; repeated Image image = 0x3; optional sint32 followers = 0x4; } message SearchReply { optional sint32 hits = 0x1; repeated Track track = 0x2; repeated Album album = 0x3; repeated Artist artist = 0x4; repeated Playlist playlist = 0x5; optional string did_you_mean = 0x6; repeated User user = 0x7; }