import "steammessages_unified_base.steamclient.proto";
import "steammessages_clientserver.proto";
import "steammessages_base.proto";

message CClientMetrics_AppInterfaceCreation {
	optional string raw_version = 1;
	optional string requested_interface_type = 2;
}

message CClientMetrics_AppInterfaceMethodCounts {
	optional string interface_name = 1;
	optional string method_name = 2;
	optional uint32 call_count = 3;
}

message CClientMetrics_IPv6Connectivity_Result {
	optional uint32 protocol_tested = 1;
	optional uint32 connectivity_state = 2;
}

message CClientMetrics_ReportClientError_Notification {
	optional string product = 1;
	optional string version = 2;
	repeated .CClientMetrics_ReportClientError_Notification_Error errors = 3;
}

message CClientMetrics_ReportClientError_Notification_Error {
	optional string identifier = 1;
	optional string message = 2;
	optional uint32 count = 3;
}

message CMsgClientPersonaState_Friend_ClanData {
	optional uint32 ogg_app_id = 1;
	optional uint64 chat_group_id = 2;
}

message CMsgClientPersonaState_Friend_KV {
	optional string key = 1;
	optional string value = 2;
}

message CMsgClientEmoticonList_Sticker {
	optional string name = 1;
	optional int32 count = 2;
	optional uint32 time_received = 3;
}

message CMsgClientEmoticonList_Effect {
	optional string name = 1;
	optional int32 count = 2;
	optional uint32 time_received = 3;
}

message CMsgClientServerTimestampRequest {
	optional uint64 client_request_timestamp = 1;
}

message CMsgClientServerTimestampResponse {
	optional uint64 client_request_timestamp = 1;
	optional uint64 server_timestamp_ms = 2;
}

message CMsgClientSecret {
	optional uint32 version = 1;
	optional uint32 appid = 2;
	optional uint32 deviceid = 3;
	optional fixed64 nonce = 4;
	optional bytes hmac = 5;
}

message CCloudConfigStore_Entry {
	optional string key = 1;
	optional bool is_deleted = 2;
	optional string value = 3;
	optional fixed32 timestamp = 4;
	optional uint64 version = 5;
}

message CCloudConfigStore_NamespaceData {
	optional uint32 enamespace = 1;
	optional uint64 version = 2;
	repeated .CCloudConfigStore_Entry entries = 3;
}

message CCloudConfigStore_NamespaceVersion {
	optional uint32 enamespace = 1;
	optional uint64 version = 2;
}

message CCloudConfigStore_Download_Request {
	repeated .CCloudConfigStore_NamespaceVersion versions = 1;
}

message CCloudConfigStore_Download_Response {
	repeated .CCloudConfigStore_NamespaceData data = 1;
}

message CCloudConfigStore_Upload_Request {
	repeated .CCloudConfigStore_NamespaceData data = 1;
}

message CCloudConfigStore_Upload_Response {
	repeated .CCloudConfigStore_NamespaceVersion versions = 1;
}

message CCloudConfigStore_Change_Notification {
	repeated .CCloudConfigStore_NamespaceVersion versions = 2;
}

message CFriendsListCategory {
	optional uint32 groupid = 1;
	optional string name = 2;
	repeated uint32 accountid_members = 3;
}

message CFriendsList_GetCategories_Response {
	repeated .CFriendsListCategory categories = 1;
}

message CFriendsListFavoriteEntry {
	optional uint32 accountid = 1;
	optional uint32 clanid = 2;
	optional uint64 chat_group_id = 3;
}

message CFriendsList_GetFavorites_Response {
	repeated .CFriendsListFavoriteEntry favorites = 1;
}

message CFriendsList_SetFavorites_Response {
}

message CFriendsList_FavoritesChanged_Notification {
	repeated .CFriendsListFavoriteEntry favorites = 1;
}

message CFriendsList_GetFriendsList_Request {
}

message CFriendsList_GetFriendsList_Response {
	optional .CMsgClientFriendsList friendslist = 1;
}

message CPlayer_GetLastPlayedTimes_Response {
	repeated .CPlayer_GetLastPlayedTimes_Response_Game games = 1;
}

message CPlayer_GetLastPlayedTimes_Response_Game {
	optional int32 appid = 1;
	optional uint32 last_playtime = 2;
	optional int32 playtime_2weeks = 3;
	optional int32 playtime_forever = 4;
	optional uint32 first_playtime = 5;
	optional int32 playtime_windows_forever = 6;
	optional int32 playtime_mac_forever = 7;
	optional int32 playtime_linux_forever = 8;
	optional uint32 first_windows_playtime = 9;
	optional uint32 first_mac_playtime = 10;
	optional uint32 first_linux_playtime = 11;
	optional uint32 last_windows_playtime = 12;
	optional uint32 last_mac_playtime = 13;
	optional uint32 last_linux_playtime = 14;
}

message CPlayer_IncomingInviteMutualFriendList {
	optional fixed64 steamid = 1;
	repeated uint32 mutual_friend_account_ids = 2;
}

message CPlayer_GetMutualFriendsForIncomingInvites_Response {
	repeated .CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1;
}

message CPlayer_GetGameBadgeLevels_Response {
	optional uint32 player_level = 1;
	repeated .CPlayer_GetGameBadgeLevels_Response_Badge badges = 2;
}

message CPlayer_GetGameBadgeLevels_Response_Badge {
	optional int32 level = 1;
	optional int32 series = 2;
	optional uint32 border_color = 3;
}

message CPlayer_GetEmoticonList_Response {
	repeated .CPlayer_GetEmoticonList_Response_Emoticon emoticons = 1;
}

message CPlayer_GetEmoticonList_Response_Emoticon {
	optional string name = 1;
	optional int32 count = 2;
	optional uint32 time_last_used = 3;
	optional uint32 use_count = 4;
	optional uint32 time_received = 5;
}

message CPlayer_PostStatusToFriends_Request {
	optional uint32 appid = 1;
	optional string status_text = 2;
}

message CPlayer_PostStatusToFriends_Response {
}

message CPlayer_GetPostedStatus_Request {
	optional uint64 steamid = 1;
	optional uint64 postid = 2;
}

message CPlayer_GetPostedStatus_Response {
	optional uint32 accountid = 1;
	optional uint64 postid = 2;
	optional string status_text = 3;
	optional bool deleted = 4;
	optional uint32 appid = 5;
}

message CPlayer_DeletePostedStatus_Request {
	optional uint64 postid = 1;
}

message CPlayer_DeletePostedStatus_Response {
}

message CPlayer_GetAchievementsProgress_Request {
	optional uint64 steamid = 1;
	optional string language = 2;
	repeated uint32 appids = 3;
}

message CPlayer_GetAchievementsProgress_Response {
	repeated .CPlayer_GetAchievementsProgress_Response_AchievementProgress achievement_progress = 1;
}

message CPlayer_GetAchievementsProgress_Response_AchievementProgress {
	optional uint32 appid = 1;
	optional uint32 unlocked = 2;
	optional uint32 total = 3;
	optional float percentage = 4;
	optional bool all_unlocked = 5;
	optional uint32 cache_time = 6;
}

message CPlayer_GetFriendsGameplayInfo_Request {
	optional uint32 appid = 1;
}

message CPlayer_GetFriendsGameplayInfo_Response {
	optional .CPlayer_GetFriendsGameplayInfo_Response_OwnGameplayInfo your_info = 1;
	repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo in_game = 2;
	repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo played_recently = 3;
	repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo played_ever = 4;
	repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo owns = 5;
	repeated .CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo in_wishlist = 6;
}

message CPlayer_GetFriendsGameplayInfo_Response_FriendsGameplayInfo {
	optional fixed64 steamid = 1;
	optional uint32 minutes_played = 2;
	optional uint32 minutes_played_forever = 3;
}

message CPlayer_GetFriendsGameplayInfo_Response_OwnGameplayInfo {
	optional fixed64 steamid = 1;
	optional uint32 minutes_played = 2;
	optional uint32 minutes_played_forever = 3;
	optional bool in_wishlist = 4;
	optional bool owned = 5;
}

message CPlayer_GetFriendsAppsActivity_Request {
	optional string news_language = 1;
	optional uint32 request_flags = 2;
}

message CPlayer_GetFriendsAppsActivity_Response {
	repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo trending = 1;
	repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo recent_purchases = 2;
	repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo unowned = 3;
	repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo popular = 4;
	repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo dont_forget = 5;
	repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo being_discussed = 6;
	repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo new_to_group = 7;
	repeated .CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo returned_to_group = 8;
	optional uint32 active_friend_count = 9 [default = 0];
}

message CPlayer_GetFriendsAppsActivity_Response_FriendPlayTime {
	optional fixed64 steamid = 1;
	optional uint32 minutes_played_this_week = 2;
	optional uint32 minutes_played_two_weeks = 3;
	optional uint32 minutes_played_forever = 4;
	optional uint32 event_count = 5;
}

message CPlayer_GetFriendsAppsActivity_Response_AppFriendsInfo {
	optional uint32 appid = 1;
	repeated .CPlayer_GetFriendsAppsActivity_Response_FriendPlayTime friends = 2;
	optional uint32 display_order = 3;
}

message CPlayer_AcceptSSA_Response {
}

message CPlayer_GetNicknameList_Response {
	repeated .CPlayer_GetNicknameList_Response_PlayerNickname nicknames = 1;
}

message CPlayer_GetNicknameList_Response_PlayerNickname {
	optional fixed32 accountid = 1;
	optional string nickname = 2;
}

message PerFriendPreferences {
	optional fixed32 accountid = 1;
	optional string nickname = 2;
	optional int32 notifications_showingame = 3 [(description) = "enum"];
	optional int32 notifications_showonline = 4 [(description) = "enum"];
	optional int32 notifications_showmessages = 5 [(description) = "enum"];
	optional int32 sounds_showingame = 6 [(description) = "enum"];
	optional int32 sounds_showonline = 7 [(description) = "enum"];
	optional int32 sounds_showmessages = 8 [(description) = "enum"];
	optional int32 notifications_sendmobile = 9 [(description) = "enum"];
}

message CPlayer_GetPerFriendPreferences_Request {
}

message CPlayer_GetPerFriendPreferences_Response {
	repeated .PerFriendPreferences preferences = 1;
}

message CPlayer_SetPerFriendPreferences_Response {
}

message CPlayer_AddFriend_Response {
	optional bool invite_sent = 1;
	optional uint32 friend_relationship = 2;
	optional int32 result = 3;
}

message CPlayer_RemoveFriend_Response {
	optional uint32 friend_relationship = 1;
}

message CPlayer_IgnoreFriend_Response {
	optional uint32 friend_relationship = 1;
}

message CPlayer_CommunityPreferences {
	optional bool hide_adult_content_violence = 1 [default = true];
	optional bool hide_adult_content_sex = 2 [default = true];
	optional bool parenthesize_nicknames = 4 [default = false];
	optional uint32 timestamp_updated = 3;
}

message CPlayer_GetCommunityPreferences_Request {
}

message CPlayer_GetCommunityPreferences_Response {
	optional .CPlayer_CommunityPreferences preferences = 1;
}

message CPlayer_SetCommunityPreferences_Response {
}

message CPlayer_GetNewSteamAnnouncementState_Response {
	optional int32 state = 1;
	optional string announcement_headline = 2;
	optional string announcement_url = 3;
	optional uint32 time_posted = 4;
	optional uint64 announcement_gid = 5;
}

message CPlayer_UpdateSteamAnnouncementLastRead_Response {
}

message CPrivacySettings {
	optional int32 privacy_state = 1;
	optional int32 privacy_state_inventory = 2;
	optional int32 privacy_state_gifts = 3;
	optional int32 privacy_state_ownedgames = 4;
	optional int32 privacy_state_playtime = 5;
	optional int32 privacy_state_friendslist = 6;
}

message CPlayer_GetPrivacySettings_Response {
	optional .CPrivacySettings privacy_settings = 1;
}

message CPlayer_GetDurationControl_Response {
	optional bool is_enabled = 1;
	optional int32 seconds = 2;
	optional int32 seconds_today = 3;
	optional bool is_steamchina_account = 4;
	optional bool is_age_verified = 5;
}

message CPlayer_LastPlayedTimes_Notification {
	repeated .CPlayer_GetLastPlayedTimes_Response_Game games = 1;
}

message CPlayer_FriendNicknameChanged_Notification {
	optional fixed32 accountid = 1;
	optional string nickname = 2;
	optional bool is_echo_to_self = 3;
}

message CPlayer_NewSteamAnnouncementState_Notification {
	optional int32 state = 1;
	optional string announcement_headline = 2;
	optional string announcement_url = 3;
	optional uint32 time_posted = 4;
	optional uint64 announcement_gid = 5;
}

message CPlayer_CommunityPreferencesChanged_Notification {
	optional .CPlayer_CommunityPreferences preferences = 1;
}

message CPlayer_PerFriendPreferencesChanged_Notification {
	optional fixed32 accountid = 1;
	optional .PerFriendPreferences preferences = 2;
}

message CPlayer_PrivacySettingsChanged_Notification {
	optional .CPrivacySettings privacy_settings = 1;
}

message CChat_RequestFriendPersonaStates_Request {
}

message CChat_RequestFriendPersonaStates_Response {
}

message ServerMessage {
	optional int32 message = 1 [(description) = "enum"];
	optional string string_param = 2;
	optional uint32 accountid_param = 3;
}

message CChatRoom_CreateChatRoomGroup_Response {
	optional uint64 chat_group_id = 1;
	optional .CChatRoomGroupState state = 2;
	optional .CUserChatRoomGroupState user_chat_state = 3;
}

message CChatRoom_RenameChatRoomGroup_Response {
	optional string name = 1;
}

message CChatRoom_SaveChatRoomGroup_Response {
}

message CChatRoom_SetChatRoomGroupTagline_Response {
}

message CChatRoom_SetChatRoomGroupAvatar_Response {
}

message CChatRoom_SetChatRoomGroupWatchingBroadcast_Response {
}

message CChatRoom_JoinMiniGameForChatRoomGroup_Response {
	optional uint64 minigame_id = 1;
}

message CChatRoom_EndMiniGameForChatRoomGroup_Response {
}

message CChatRoom_MuteUser_Response {
}

message CChatRoom_KickUser_Response {
}

message CChatRoom_SetUserBanState_Response {
}

message CChatRoom_RevokeInvite_Response {
}

message CChatRole {
	optional uint64 role_id = 1;
	optional string name = 2;
	optional uint32 ordinal = 3;
}

message CChatRoleActions {
	optional uint64 role_id = 1;
	optional bool can_create_rename_delete_channel = 2;
	optional bool can_kick = 3;
	optional bool can_ban = 4;
	optional bool can_invite = 5;
	optional bool can_change_tagline_avatar_name = 6;
	optional bool can_chat = 7;
	optional bool can_view_history = 8;
	optional bool can_change_group_roles = 9;
	optional bool can_change_user_roles = 10;
	optional bool can_mention_all = 11;
	optional bool can_set_watching_broadcast = 12;
}

message CChatRoom_CreateRole_Response {
	optional .CChatRoleActions actions = 2;
}

message CChatPartyBeacon {
	optional uint32 app_id = 1;
	optional fixed64 steamid_owner = 2;
	optional fixed64 beacon_id = 3;
	optional string game_metadata = 4;
}

message CChatRoom_GetRoles_Response {
	repeated .CChatRole roles = 1;
}

message CChatRoom_RenameRole_Response {
}

message CChatRoom_ReorderRole_Response {
}

message CChatRoom_DeleteRole_Response {
}

message CChatRoom_GetRoleActions_Response {
	repeated .CChatRoleActions actions = 1;
}

message CChatRoom_ReplaceRoleActions_Response {
}

message CChatRoom_AddRoleToUser_Response {
}

message CChatRoom_GetRolesForUser_Response {
	repeated uint64 role_ids = 1;
}

message CChatRoom_DeleteRoleFromUser_Response {
}

message CChatRoom_ChatRoomHeaderState_Notification {
	optional .CChatRoomGroupHeaderState header_state = 1;
}

message CChatRoomMember {
	optional uint32 accountid = 1;
	optional int32 state = 3 [(description) = "enum"];
	optional int32 rank = 4 [(description) = "enum"];
	optional uint32 time_kick_expire = 6;
	repeated uint64 role_ids = 7;
}

message CChatRoom_GetChatRoomGroupSummary_Response {
	optional uint64 chat_group_id = 1;
	optional string chat_group_name = 2;
	optional uint32 active_member_count = 3;
	optional uint32 active_voice_member_count = 4;
	optional uint64 default_chat_id = 5;
	repeated .CChatRoomState chat_rooms = 6;
	optional uint32 clanid = 7;
	optional string chat_group_tagline = 8;
	optional uint32 accountid_owner = 9;
	repeated uint32 top_members = 10;
	optional bytes chat_group_avatar_sha = 11;
	optional int32 rank = 12 [(description) = "enum"];
	optional uint64 default_role_id = 13;
	repeated uint64 role_ids = 14;
	repeated .CChatRoleActions role_actions = 15;
	optional uint32 watching_broadcast_accountid = 16;
	optional uint32 appid = 17;
	repeated .CChatPartyBeacon party_beacons = 18;
	optional uint64 watching_broadcast_channel_id = 19;
	optional uint64 active_minigame_id = 20;
}

message CChatRoomState {
	optional uint64 chat_id = 1;
	optional string chat_name = 2;
	optional bool voice_allowed = 3;
	repeated uint32 members_in_voice = 4;
	optional uint32 time_last_message = 5;
	optional uint32 sort_order = 6;
	optional string last_message = 7;
	optional uint32 accountid_last_message = 8;
}

message CChatRoomGroupHeaderState {
	optional uint64 chat_group_id = 1;
	optional string chat_name = 2;
	optional uint32 clanid = 13;
	optional uint32 accountid_owner = 14;
	optional uint32 appid = 21;
	optional string tagline = 15;
	optional bytes avatar_sha = 16;
	optional uint64 default_role_id = 17;
	repeated .CChatRole roles = 18;
	repeated .CChatRoleActions role_actions = 19;
	optional uint32 watching_broadcast_accountid = 20;
	repeated .CChatPartyBeacon party_beacons = 22;
	optional uint64 watching_broadcast_channel_id = 23;
	optional uint64 active_minigame_id = 24;
}

message CChatRoomGroupState {
	optional .CChatRoomGroupHeaderState header_state = 1;
	repeated .CChatRoomMember members = 2;
	optional uint64 default_chat_id = 4;
	repeated .CChatRoomState chat_rooms = 5;
	repeated .CChatRoomMember kicked = 7;
}

message CUserChatRoomGroupState {
	optional uint64 chat_group_id = 1;
	optional uint32 time_joined = 2;
	repeated .CUserChatRoomState user_chat_room_state = 3;
	optional int32 desktop_notification_level = 4 [default = 0, (description) = "enum"];
	optional int32 mobile_notification_level = 5 [default = 0, (description) = "enum"];
	optional uint32 time_last_group_ack = 6;
	optional bool unread_indicator_muted = 7 [default = false];
}

message CUserChatRoomState {
	optional uint64 chat_id = 1;
	optional uint32 time_joined = 2;
	optional uint32 time_last_ack = 3;
	optional int32 desktop_notification_level = 4 [default = 0, (description) = "enum"];
	optional int32 mobile_notification_level = 5 [default = 0, (description) = "enum"];
	optional uint32 time_last_mention = 6;
	optional bool unread_indicator_muted = 7 [default = false];
	optional uint32 time_first_unread = 8;
}

message CChatRoomSummaryPair {
	optional .CUserChatRoomGroupState user_chat_group_state = 1;
	optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 2;
}

message CChatRoom_CreateChatRoom_Response {
	optional .CChatRoomState chat_room = 1;
}

message CChatRoom_DeleteChatRoom_Response {
}

message CChatRoom_RenameChatRoom_Response {
}

message CChatRoom_ReorderChatRoom_Response {
}

message CChatMentions {
	optional bool mention_all = 1;
	optional bool mention_here = 2;
	repeated uint32 mention_accountids = 3;
}

message CChatRoom_GetChatRoomGroupState_Response {
	optional .CChatRoomGroupState state = 1;
}

message CChatRoom_GetMyChatRoomGroups_Response {
	repeated .CChatRoomSummaryPair chat_room_groups = 1;
}

message CChatRoom_JoinChatRoomGroup_Response {
	optional .CChatRoomGroupState state = 1;
	optional .CUserChatRoomGroupState user_chat_state = 3;
	optional uint64 join_chat_id = 4;
	optional uint32 time_expire = 5;
}

message CChatRoom_InviteFriendToChatRoomGroup_Response {
}

message CChatRoom_LeaveChatRoomGroup_Response {
}

message CChatRoom_JoinVoiceChat_Response {
	optional uint64 voice_chatid = 1;
}

message CChatRoom_LeaveVoiceChat_Response {
}

message CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification {
	optional uint64 chat_id = 1;
	optional uint64 chat_group_id = 2;
}

message CChatRoom_SendChatMessage_Response {
	optional string modified_message = 1;
	optional uint32 server_timestamp = 2;
	optional uint32 ordinal = 3;
	optional string message_without_bb_code = 4;
}

message CChatRoom_IncomingChatMessage_Notification {
	optional uint64 chat_group_id = 1;
	optional uint64 chat_id = 2;
	optional fixed64 steamid_sender = 3;
	optional string message = 4;
	optional uint32 timestamp = 5;
	optional .CChatMentions mentions = 6;
	optional uint32 ordinal = 7;
	optional .ServerMessage server_message = 8;
	optional string message_no_bbcode = 9;
	optional string chat_name = 10;
}

message CChatRoom_ChatMessageModified_Notification {
	optional uint64 chat_group_id = 1;
	optional uint64 chat_id = 2;
	repeated .CChatRoom_ChatMessageModified_Notification_ChatMessage messages = 3;
}

message CChatRoom_ChatMessageModified_Notification_ChatMessage {
	optional uint32 server_timestamp = 1;
	optional uint32 ordinal = 2;
	optional bool deleted = 3;
}

message CChatRoom_GetMessageHistory_Response {
	repeated .CChatRoom_GetMessageHistory_Response_ChatMessage messages = 1;
	optional bool more_available = 4;
}

message CChatRoom_GetMessageHistory_Response_ChatMessage {
	optional uint32 sender = 1;
	optional uint32 server_timestamp = 2;
	optional string message = 3;
	optional uint32 ordinal = 4;
	optional .ServerMessage server_message = 5;
	optional bool deleted = 6;
}

message CChatRoom_MemberStateChange_Notification {
	optional uint64 chat_group_id = 1;
	optional .CChatRoomMember member = 2;
	optional int32 change = 3 [(description) = "enum"];
}

message CChatRoom_ChatRoomGroupRoomsChange_Notification {
	optional uint64 chat_group_id = 1;
	optional uint64 default_chat_id = 2;
	repeated .CChatRoomState chat_rooms = 3;
}

message CChatRoom_AckChatMessage_Notification {
	optional uint64 chat_group_id = 1;
	optional uint64 chat_id = 2;
	optional uint32 timestamp = 3;
}

message CChatRoom_CreateInviteLink_Response {
	optional string invite_code = 1;
	optional uint32 seconds_valid = 2;
}

message CChatRoom_GetInviteLinkInfo_Response {
	optional fixed64 steamid_sender = 3;
	optional uint32 time_expires = 4;
	optional uint64 chat_id = 6;
	optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 8;
	optional .CUserChatRoomGroupState user_chat_group_state = 9;
	optional uint32 time_kick_expire = 10;
	optional bool banned = 11;
}

message CChatRoom_GetInviteInfo_Response {
	optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 1;
	optional uint32 time_kick_expire = 2;
	optional bool banned = 3;
}

message CChatRoom_GetInviteLinksForGroup_Response {
	repeated .CChatRoom_GetInviteLinksForGroup_Response_LinkInfo invite_links = 1;
}

message CChatRoom_GetInviteLinksForGroup_Response_LinkInfo {
	optional string invite_code = 1;
	optional fixed64 steamid_creator = 2;
	optional uint32 time_expires = 3;
	optional uint64 chat_id = 4;
}

message CChatRoom_DeleteInviteLink_Response {
}

message CChatRoom_GetBanList_Response {
	repeated .CChatRoom_GetBanList_Response_BanInfo bans = 1;
}

message CChatRoom_GetBanList_Response_BanInfo {
	optional uint32 accountid = 1;
	optional uint32 accountid_actor = 2;
	optional uint32 time_banned = 3;
	optional string ban_reason = 4;
}

message CChatRoomGroupInvite {
	optional uint32 accountid = 1;
	optional uint32 accountid_actor = 2;
	optional uint32 time_invited = 3;
}

message CChatRoom_GetInviteList_Response {
	repeated .CChatRoomGroupInvite invites = 1;
}

message CChatRoom_SetSessionActiveChatRoomGroups_Response {
	repeated .CChatRoomGroupState chat_states = 1;
	repeated uint64 virtualize_members_chat_group_ids = 2;
}

message CChatRoom_SetUserChatGroupPreferences_Request_ChatGroupPreferences {
	optional int32 desktop_notification_level = 1 [(description) = "enum"];
	optional int32 mobile_notification_level = 2 [(description) = "enum"];
	optional bool unread_indicator_muted = 3;
}

message CChatRoom_SetUserChatGroupPreferences_Request_ChatRoomPreferences {
	optional uint64 chat_id = 1;
	optional int32 desktop_notification_level = 2 [(description) = "enum"];
	optional int32 mobile_notification_level = 3 [(description) = "enum"];
	optional bool unread_indicator_muted = 4;
}

message CChatRoom_SetUserChatGroupPreferences_Response {
}

message CChatRoom_DeleteChatMessages_Request_Message {
	optional uint32 server_timestamp = 1;
	optional uint32 ordinal = 2;
}

message CChatRoom_DeleteChatMessages_Response {
}

message CChatRoomMemberListView {
	optional int32 start = 3;
	optional int32 end = 4;
	optional int32 total_count = 5;
	optional int32 client_changenumber = 6;
	optional int32 server_changenumber = 7;
}

message CChatRoomMemberSummaryCounts {
	optional int32 ingame = 1;
	optional int32 online = 2;
	optional int32 offline = 3;
}

message CChatRoom_SearchMembers_Response {
	repeated .CChatRoom_SearchMembers_Response_MemberMatch matching_members = 1;
	optional uint32 status_flags = 2;
}

message CChatRoom_SearchMembers_Response_MemberMatch {
	optional int32 accountid = 1;
	optional .CMsgClientPersonaState_Friend persona = 2;
}

message CClanChatRooms_GetClanChatRoomInfo_Response {
	optional .CChatRoom_GetChatRoomGroupSummary_Response chat_group_summary = 1;
}

message CClanChatRooms_SetClanChatRoomPrivate_Response {
	optional bool chat_room_private = 1;
}

message ChatRoomClient_NotifyChatGroupUserStateChanged_Notification {
	optional uint64 chat_group_id = 1;
	optional .CUserChatRoomGroupState user_chat_group_state = 2;
	optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 3;
	optional int32 user_action = 4 [(description) = "enum"];
}

message ChatRoomClient_NotifyChatRoomDisconnect_Notification {
	repeated uint64 chat_group_ids = 1;
}

message CChatRoomClient_MemberListViewUpdated_Notification {
	optional uint64 chat_group_id = 1;
	optional uint64 view_id = 2;
	optional .CChatRoomMemberListView view = 3;
	repeated .CChatRoomClient_MemberListViewUpdated_Notification_MemberListViewEntry members = 4;
	optional uint32 status_flags = 5;
	optional .CChatRoomMemberSummaryCounts member_summary = 6;
	repeated .CMsgClientPersonaState_Friend subscribed_personas = 7;
}

message CChatRoomClient_MemberListViewUpdated_Notification_MemberListViewEntry {
	optional int32 rank = 1;
	optional uint32 accountid = 2;
	optional .CMsgClientPersonaState_Friend persona = 3;
}

message CChatUsability_RequestClientUsabilityMetrics_Notification {
	optional uint32 metrics_run_id = 1;
}

message CChatUsability_ClientUsabilityMetrics_Notification_Settings {
	optional bool notifications_show_ingame = 1;
	optional bool notifications_show_online = 2;
	optional bool notifications_show_message = 3;
	optional bool notifications_events_and_announcements = 4;
	optional bool sounds_play_ingame = 5;
	optional bool sounds_play_online = 6;
	optional bool sounds_play_message = 7;
	optional bool sounds_events_and_announcements = 8;
	optional bool always_new_chat_window = 9;
	optional bool force_alphabetic_friend_sorting = 10;
	optional int32 chat_flash_mode = 11;
	optional bool remember_open_chats = 12;
	optional bool compact_quick_access = 13;
	optional bool compact_friends_list = 14;
	optional bool notifications_show_chat_room_notification = 15;
	optional bool sounds_play_chat_room_notification = 16;
	optional bool hide_offline_friends_in_tag_groups = 17;
	optional bool hide_categorized_friends = 18;
	optional bool categorize_in_game_friends_by_game = 19;
	optional int32 chat_font_size = 20;
	optional bool use24hour_clock = 21;
	optional bool do_not_disturb_mode = 22;
	optional bool disable_embed_inlining = 23;
	optional bool sign_into_friends = 24;
}

message CChatUsability_ClientUsabilityMetrics_Notification_VoiceSettings {
	optional float voice_input_gain = 1;
	optional float voice_output_gain = 2;
	optional int32 noise_gate_level = 3;
	optional bool voice_use_echo_cancellation = 4;
	optional bool voice_use_noise_cancellation = 5;
	optional bool voice_use_auto_gain_control = 6;
	optional bool selected_non_default_mic = 7;
	optional bool selected_non_default_output = 8;
	optional bool push_to_talk_enabled = 9;
	optional bool push_to_mute_enabled = 10;
	optional bool play_ptt_sounds = 11;
}

message CChatUsability_ClientUsabilityMetrics_Notification_UIState {
	optional int32 friends_list_height = 1;
	optional int32 friends_list_width = 2;
	optional bool friends_list_docked = 3;
	optional bool friends_list_collapsed = 4;
	optional int32 friends_list_group_chats_height = 5;
	optional bool friends_list_visible = 6;
	optional int32 chat_popups_opened = 7;
	optional int32 group_chat_tabs_opened = 8;
	optional int32 friend_chat_tabs_opened = 9;
	optional int32 chat_window_width = 10;
	optional int32 chat_window_height = 11;
	optional .CChatUsability_ClientUsabilityMetrics_Notification_UIState_CategoryCollapseState category_collapse = 12;
	optional int32 group_chat_left_col_collapsed = 13;
	optional int32 group_chat_right_col_collapsed = 14;
	optional bool in_one_on_one_voice_chat = 15;
	optional bool in_group_voice_chat = 16;
}

message CChatUsability_ClientUsabilityMetrics_Notification_UIState_CategoryCollapseState {
	optional bool in_game_collapsed = 1;
	optional bool online_collapsed = 2;
	optional bool offline_collapsed = 3;
	optional int32 game_groups_collapsed = 4;
	optional int32 categories_collapsed = 5;
}

message CChatUsability_ClientUsabilityMetrics_Notification_Metrics {
	optional int32 friends_count = 1;
	optional int32 friends_category_count = 2;
	optional int32 friends_categorized_count = 3;
	optional int32 friends_online_count = 4;
	optional int32 friends_in_game_count = 5;
	optional int32 friends_in_game_singleton_count = 6;
	optional int32 game_group_count = 7;
	optional int32 friends_favorite_count = 8;
	optional int32 group_chat_count = 9;
	optional int32 group_chat_favorite_count = 10;
}

message CStore_GetLocalizedNameForTags_Response {
	repeated .CStore_GetLocalizedNameForTags_Response_Tag tags = 1;
}

message CStore_GetLocalizedNameForTags_Response_Tag {
	optional uint32 tagid = 1;
	optional string english_name = 2;
	optional string name = 3;
}

message CStore_UserPreferences {
	optional uint32 primary_language = 1;
	optional uint32 secondary_languages = 2;
	optional bool platform_windows = 3;
	optional bool platform_mac = 4;
	optional bool platform_linux = 5;
	optional bool hide_adult_content_violence = 6;
	optional bool hide_adult_content_sex = 7;
	optional uint32 timestamp_updated = 8;
	optional bool hide_store_broadcast = 9;
	optional int32 review_score_preference = 10 [(description) = "enum"];
	optional int32 timestamp_content_descriptor_preferences_updated = 11;
}

message CStore_UserTagPreferences {
	repeated .CStore_UserTagPreferences_Tag tags_to_exclude = 1;
}

message CStore_UserTagPreferences_Tag {
	optional uint32 tagid = 1;
	optional string name = 2;
	optional uint32 timestamp_added = 3;
}

message CStore_UserContentDescriptorPreferences {
	repeated .CStore_UserContentDescriptorPreferences_ContentDescriptor content_descriptors_to_exclude = 1;
}

message CStore_UserContentDescriptorPreferences_ContentDescriptor {
	optional uint32 content_descriptorid = 1;
	optional uint32 timestamp_added = 2;
}

message CStore_GetStorePreferences_Request {
}

message CStore_GetStorePreferences_Response {
	optional .CStore_UserPreferences preferences = 1;
	optional .CStore_UserTagPreferences tag_preferences = 2;
	optional .CStore_UserContentDescriptorPreferences content_descriptor_preferences = 3;
}

message CStore_StorePreferencesChanged_Notification {
	optional .CStore_UserPreferences preferences = 1;
	optional .CStore_UserTagPreferences tag_preferences = 2;
	optional .CStore_UserContentDescriptorPreferences content_descriptor_preferences = 3;
}

message CAppOverview_AppAssociation {
	optional int32 type = 1 [(description) = "enum"];
	optional string name = 2;
}

message CAppOverview_PerClientData {
	optional uint64 clientid = 1;
	optional string client_name = 2;
	optional int32 display_status = 3 [(description) = "enum"];
	optional uint32 status_percentage = 4 [default = 0];
	optional string active_beta = 5;
	optional bool installed = 6;
	optional uint64 bytes_downloaded = 7 [default = 0];
	optional uint64 bytes_total = 8 [default = 0];
	optional bool streaming_to_local_client = 9;
	optional bool is_available_on_current_platform = 10;
	optional bool is_invalid_os_type = 11;
}

message CAppOverview {
	optional uint32 appid = 1;
	optional string display_name = 2;
	optional bool visible_in_game_list = 4;
	optional string sort_as = 6;
	optional int32 app_type = 7 [(description) = "enum"];
	optional uint32 mru_index = 13;
	optional uint32 rt_recent_activity_time = 14 [default = 0];
	optional uint32 minutes_playtime_forever = 16 [default = 0];
	optional uint32 minutes_playtime_last_two_weeks = 17 [default = 0];
	optional uint32 rt_last_time_played = 18 [default = 0];
	repeated uint32 store_tag = 19;
	repeated .CAppOverview_AppAssociation association = 20;
	repeated uint32 store_category = 23;
	optional uint32 rt_original_release_date = 25 [default = 0];
	optional uint32 rt_steam_release_date = 26 [default = 0];
	optional string icon_hash = 27;
	optional string logo_hash = 30;
	optional int32 controller_support = 31 [(description) = "enum"];
	optional bool vr_supported = 32;
	optional uint32 metacritic_score = 36;
	optional uint64 size_on_disk = 37;
	optional bool third_party_mod = 38;
	optional string icon_data = 39;
	optional string icon_data_format = 40;
	optional string gameid = 41;
	optional string library_capsule_filename = 42;
	repeated .CAppOverview_PerClientData per_client_data = 43;
	optional uint64 most_available_clientid = 44;
	optional uint64 selected_clientid = 45;
	optional uint32 rt_store_asset_mtime = 46;
	optional uint32 rt_custom_image_mtime = 47;
	optional uint32 optional_parent_app_id = 48;
	optional uint32 owner_account_id = 49;
	optional bool compat_mapping_enabled = 50;
	optional uint32 compat_mapping_priority = 51;
	optional string compat_mapping_tool_name = 52;
	optional uint32 review_score_with_bombs = 53;
	optional uint32 review_percentage_with_bombs = 54;
	optional uint32 review_score_without_bombs = 55;
	optional uint32 review_percentage_without_bombs = 56;
	optional string library_id = 57;
}

message CAppOverview_Change {
	repeated .CAppOverview app_overview = 1;
	repeated uint32 removed_appid = 2;
}

message CAppBootstrapData {
	optional uint32 appid = 1;
	optional bool hidden = 2;
	repeated string user_tag = 3;
}

message CLibraryBootstrapData {
	repeated .CAppBootstrapData app_data = 1;
}

message CUserNews_GetUserNews_Request {
	optional uint32 count = 1;
	optional uint32 starttime = 2;
	optional uint32 endtime = 3;
	optional string language = 4;
	optional uint32 filterflags = 5;
	optional uint32 filterappid = 6;
}

message CUserNews_GetUserNews_Response {
	repeated .CUserNews_Event news = 1;
	repeated .CUserNewsAchievementDisplayData achievement_display_data = 2;
}

message CUserNews_Event {
	optional uint32 eventtype = 1;
	optional uint32 eventtime = 2;
	optional fixed64 steamid_actor = 3;
	optional fixed64 steamid_target = 4;
	optional fixed64 gameid = 5;
	optional uint32 packageid = 6;
	optional uint32 shortcutid = 7;
	repeated string achievement_names = 8;
	optional fixed64 clan_eventid = 9;
	optional fixed64 clan_announcementid = 10;
	optional fixed64 publishedfileid = 11;
	optional uint32 event_last_mod_time = 12;
}

message CUserNewsAchievementDisplayData {
	optional uint32 appid = 1;
	repeated .CUserNewsAchievementDisplayData_CAchievement achievements = 2;
}

message CUserNewsAchievementDisplayData_CAchievement {
	optional string name = 1;
	optional string display_name = 2;
	optional string display_description = 3;
	optional string icon = 4;
	optional float unlocked_pct = 5;
	optional bool hidden = 6;
}

message CUserNews_GetAppDetailsSpotlight_Request {
	optional uint32 appid = 1;
}

message CUserNews_GetAppDetailsSpotlight_Response {
	repeated .CUserNews_GetAppDetailsSpotlight_Response_FeaturedEvent events = 1;
}

message CUserNews_GetAppDetailsSpotlight_Response_FeaturedEvent {
	optional uint32 event_type = 1;
	optional uint32 event_time = 2;
	optional fixed64 clan_id = 3;
	optional fixed64 clan_announcementid = 4;
	optional uint32 appid = 5;
	optional uint32 rtime32_last_modified = 6;
}

message CUserGameActivity_Event {
	optional uint32 timestamp = 2;
	optional int32 event_type = 3 [(description) = "enum"];
	optional uint32 event_sub_type = 4;
	optional int64 data1 = 5;
	optional int64 data2 = 6;
	optional int64 data3 = 7;
	optional int64 data4 = 8;
	optional uint32 item_appid = 10;
	optional uint64 item_contextid = 11;
	optional uint64 item_assetid = 12;
	optional bytes proto_data = 13;
}

message CUserGameActivity_GetActivity_Request {
	optional fixed64 steamid = 1;
	optional uint32 appid = 2;
	optional int32 count = 3;
	optional uint32 starttime = 4;
	optional uint32 endtime = 5;
}

message CUserGameActivity_GetActivity_Response {
	optional fixed64 steamid = 1;
	optional uint32 appid = 2;
	repeated .CUserGameActivity_Event events = 3;
}

message CUserAccount_GetAvailableValveDiscountPromotions_Response {
	repeated .CUserAccount_GetAvailableValveDiscountPromotions_Response_ValveDiscountPromotionDetails promotions = 1;
}

message CUserAccount_GetAvailableValveDiscountPromotions_Response_ValveDiscountPromotionDetails {
	optional uint32 promotionid = 1;
	optional string promotion_description = 2;
	optional int64 minimum_cart_amount = 3;
	optional int64 minimum_cart_amount_for_display = 4;
	optional int64 discount_amount = 5;
	optional int32 currency_code = 6;
	optional int32 available_use_count = 7;
	optional int32 promotional_discount_type = 8;
	optional int32 loyalty_reward_id = 9;
}

message CUserAccount_GetAccountLinkStatus_Response {
	optional uint32 pwid = 1;
	optional uint32 identity_verification = 2;
}

message CUserAccount_CancelLicenseForApp_Request {
	optional uint32 appid = 1;
}

message CUserAccount_CancelLicenseForApp_Response {
}

message CUserAccount_CreateFriendInviteToken_Response {
	optional string invite_token = 1;
	optional uint64 invite_limit = 2;
	optional uint64 invite_duration = 3;
	optional fixed32 time_created = 4;
	optional bool valid = 5;
}

message CUserAccount_GetFriendInviteTokens_Response {
	repeated .CUserAccount_CreateFriendInviteToken_Response tokens = 1;
}

message CUserAccount_ViewFriendInviteToken_Response {
	optional bool valid = 1;
	optional uint64 steamid = 2;
	optional uint64 invite_duration = 3;
}

message CUserAccount_RedeemFriendInviteToken_Response {
}

message CUserAccount_RevokeFriendInviteToken_Response {
}

message CUserAccount_RegisterCompatTool_Response {
}

message CAccountLinking_GetLinkedAccountInfo_Response {
	repeated .CAccountLinking_GetLinkedAccountInfo_Response_CExternalAccountTuple_Response external_accounts = 1;
}

message CAccountLinking_GetLinkedAccountInfo_Response_CExternalAccountTuple_Response {
	optional int32 external_type = 1 [(description) = "enum"];
	optional string external_id = 2;
	optional string external_user_name = 3;
	optional string external_url = 4;
	optional string access_token = 5;
	optional string access_token_secret = 6;
	optional bool is_valid = 7;
}

message CEmbeddedClient_Token {
	optional fixed64 steamid = 1;
	optional bytes client_token = 2;
	optional uint32 expiry = 3;
	optional uint32 deviceid = 4;
}

message CEmbeddedClient_AuthorizeDevice_Response {
	optional uint32 result = 1;
	optional .CEmbeddedClient_Token token = 2;
}

message CMsgClientUCMUpdatePublishedFile_AdditionalPreview {
	optional string original_file_name = 1;
	optional string internal_file_name = 2;
	optional string videoid = 3;
	optional uint32 preview_type = 4;
	optional int32 update_index = 5 [default = -1];
}

message CMsgClientItemAnnouncements_UnseenItem {
	optional uint32 appid = 1;
	optional uint64 context_id = 2;
	optional uint64 asset_id = 3;
	optional uint64 amount = 4;
	optional fixed32 rtime32_gained = 5;
	optional uint32 source_appid = 6;
}

message CMsgClientChatGetFriendMessageHistoryResponse_FriendMessage {
	optional uint32 accountid = 1;
	optional uint32 timestamp = 2;
	optional string message = 3;
	optional bool unread = 4;
}

message CMsgBadgeCraftedNotification {
	optional uint32 appid = 1;
	optional uint32 badge_level = 2;
}

message CQuest_CommunityItem {
	optional uint64 communityitemid = 1;
	optional uint32 item_type = 2;
	optional uint32 appid = 3;
	optional uint32 owner = 4;
	repeated .CQuest_CommunityItem_Attribute attributes = 5;
	optional bool used = 6;
	optional uint32 owner_origin = 7;
	optional int64 amount = 8;
}

message CQuest_CommunityItem_Attribute {
	optional uint32 attributeid = 1;
	optional uint64 value = 2;
}

message CQuest_GetCommunityInventory_Response {
	repeated .CQuest_CommunityItem items = 1;
}

message CQuest_GetCommunityItemDefinitions_Request {
	optional uint32 appid = 1;
	optional bool work_in_progress = 2;
	optional uint32 item_type = 3;
	optional string language = 4;
	optional uint64 broadcast_channel_id = 5;
	optional bool keyvalues_as_json = 6;
}

message CQuest_GetCommunityItemDefinitions_Response {
	repeated .CQuest_GetCommunityItemDefinitions_Response_ItemDefinition item_definitions = 1;
}

message CQuest_GetCommunityItemDefinitions_Response_ItemDefinition {
	optional uint32 item_type = 1;
	optional uint32 appid = 2;
	optional string item_name = 3;
	optional string item_title = 4;
	optional string item_description = 5;
	optional string item_image_small = 6;
	optional string item_image_large = 7;
	optional string item_key_values = 8;
	optional uint32 item_series = 9;
	optional uint32 item_class = 10;
	optional uint32 editor_accountid = 11;
	optional bool active = 12;
	optional string item_image_composed = 13;
	optional string item_image_composed_foil = 14;
	optional bool deleted = 15;
	optional uint32 item_last_changed = 16;
	optional uint64 broadcast_channel_id = 17;
	optional string item_movie_webm = 18;
	optional string item_movie_mp4 = 19;
}

message PublishedFileDetails_PlaytimeStats {
	optional uint64 playtime_seconds = 1;
	optional uint64 num_sessions = 2;
}

message CPublishedFile_GetUserFiles_Request_KVTag {
	optional string key = 1;
	optional string value = 2;
}

message CPublishedFile_AddAppRelationship_Response {
}

message CPublishedFile_RemoveAppRelationship_Response {
}

message CPublishedFile_GetAppRelationships_Response {
	repeated .CPublishedFile_GetAppRelationships_Response_AppRelationship app_relationships = 3;
}

message CPublishedFile_GetAppRelationships_Response_AppRelationship {
	optional uint32 appid = 1;
	optional uint32 relationship = 2;
}

message CPublishedFile_StartPlaytimeTracking_Response {
}

message CPublishedFile_StopPlaytimeTracking_Response {
}

message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
}

message CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
	optional uint64 publishedfileid = 1;
	optional float seconds_active = 2;
}

message CPublishedFile_SetPlaytimeForControllerConfigs_Response {
}

message CPublishedFile_AddChild_Response {
}

message CPublishedFile_RemoveChild_Response {
}

message CPublishedFile_AreFilesInSubscriptionList_Request {
	optional uint32 appid = 1;
	repeated fixed64 publishedfileids = 2;
	optional uint32 listtype = 3;
	optional uint32 filetype = 4;
	optional uint32 workshopfiletype = 5;
}

message CPublishedFile_AreFilesInSubscriptionList_Response {
	repeated .CPublishedFile_AreFilesInSubscriptionList_Response_InList files = 1;
}

message CPublishedFile_AreFilesInSubscriptionList_Response_InList {
	optional fixed64 publishedfileid = 1;
	optional bool inlist = 2;
}

message CPublishedFile_GetUserVoteSummary_Request {
	repeated fixed64 publishedfileids = 1;
}

message CPublishedFile_GetUserVoteSummary_Response {
	repeated .CPublishedFile_GetUserVoteSummary_Response_VoteSummary summaries = 1;
}

message CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
	optional fixed64 publishedfileid = 1;
	optional bool vote_for = 2;
	optional bool vote_against = 3;
	optional bool reported = 4;
}

message CPublishedFile_FileSubscribed_Notification {
	optional fixed64 published_file_id = 1;
	optional uint32 app_id = 2;
	optional fixed64 file_hcontent = 3;
	optional uint32 file_size = 4;
	optional uint32 rtime_subscribed = 5;
	optional bool is_depot_content = 6;
	optional uint32 rtime_updated = 7;
	repeated .CPublishedFile_FileSubscribed_Notification_RevisionData revisions = 8;
}

message CPublishedFile_FileSubscribed_Notification_RevisionData {
	optional int32 revision = 1 [(description) = "enum"];
	optional fixed64 file_hcontent = 2;
	optional uint32 rtime_updated = 3;
}

message CPublishedFile_FileUnsubscribed_Notification {
	optional fixed64 published_file_id = 1;
	optional uint32 app_id = 2;
}

message CPublishedFile_FileDeleted_Client_Notification {
	optional fixed64 published_file_id = 1;
	optional uint32 app_id = 2;
}

message CUserReviews_Update_Request {
	optional uint64 recommendationid = 1;
	optional string review_text = 2;
	optional bool voted_up = 3;
	optional bool is_public = 4;
	optional string language = 5;
	optional bool is_in_early_access = 6;
	optional bool received_compensation = 7;
	optional bool comments_disabled = 8;
}

message CUserReviews_Update_Response {
}

message RecommendationDetails {
	optional uint64 recommendationid = 1;
	optional uint64 steamid = 2;
	optional uint32 appid = 3;
	optional string review = 4;
	optional uint32 time_created = 5;
	optional uint32 time_updated = 6;
	optional uint32 votes_up = 7;
	optional uint32 votes_down = 8;
	optional float vote_score = 9;
	optional string language = 10;
	optional uint32 comment_count = 11;
	optional bool voted_up = 12;
	optional bool is_public = 13;
	optional bool moderator_hidden = 14;
	optional int32 flagged_by_developer = 15 [(description) = "enum"];
	optional uint32 report_score = 16;
	optional uint64 steamid_moderator = 17;
	optional uint64 steamid_developer = 18;
	optional uint64 steamid_dev_responder = 19;
	optional string developer_response = 20;
	optional uint32 time_developer_responded = 21;
	optional bool developer_flag_cleared = 22;
	optional bool written_during_early_access = 23;
	optional uint32 votes_funny = 24;
	optional bool received_compensation = 25;
	optional bool unverified_purchase = 26;
	optional int32 review_quality = 27 [(description) = "enum"];
	optional float weighted_vote_score = 28;
	optional string moderation_note = 29;
	optional int32 payment_method = 30;
	optional int32 playtime_2weeks = 31;
	optional int32 playtime_forever = 32;
	optional int32 last_playtime = 33;
	optional bool comments_disabled = 34;
	optional int32 playtime_at_review = 35;
	optional bool approved_for_china = 36;
}

message CUserReviews_GetIndividualRecommendations_Request {
	repeated .CUserReviews_GetIndividualRecommendations_Request_RecommendationRequest requests = 1;
}

message CUserReviews_GetIndividualRecommendations_Request_RecommendationRequest {
	optional uint64 steamid = 1;
	optional uint32 appid = 2;
}

message CUserReviews_GetIndividualRecommendations_Response {
	repeated .RecommendationDetails recommendations = 1;
}

message CCommunity_GetApps_Request {
	repeated int32 appids = 1;
	optional uint32 language = 2;
}

message CCommunity_GetApps_Response {
	repeated .CCDDBAppDetailCommon apps = 1;
}

message CCommunity_GetAppRichPresenceLocalization_Request {
	optional int32 appid = 1;
	optional string language = 2;
}

message CCommunity_GetAppRichPresenceLocalization_Response {
	optional int32 appid = 1;
	repeated .CCommunity_GetAppRichPresenceLocalization_Response_TokenList token_lists = 2;
}

message CCommunity_GetAppRichPresenceLocalization_Response_Token {
	optional string name = 1;
	optional string value = 2;
}

message CCommunity_GetAppRichPresenceLocalization_Response_TokenList {
	optional string language = 1;
	repeated .CCommunity_GetAppRichPresenceLocalization_Response_Token tokens = 2;
}

message CCommunity_GetCommentThread_Request {
	optional fixed64 steamid = 1;
	optional uint32 comment_thread_type = 2;
	optional fixed64 gidfeature = 3;
	optional fixed64 gidfeature2 = 4;
	optional fixed64 commentthreadid = 5;
	optional int32 start = 6;
	optional int32 count = 7;
	optional int32 upvoters = 8;
	optional bool include_deleted = 9;
	optional fixed64 gidcomment = 10;
	optional uint32 time_oldest = 11;
	optional bool oldest_first = 12;
}

message CCommunity_Comment {
	optional fixed64 gidcomment = 1;
	optional fixed64 steamid = 2;
	optional uint32 timestamp = 3;
	optional string text = 4;
	optional int32 upvotes = 5;
	optional bool hidden = 6;
	optional bool hidden_by_user = 7;
	optional bool deleted = 8;
	optional .CMsgIPAddress ipaddress = 9;
	optional int32 total_hidden = 10;
	optional bool upvoted_by_user = 11;
}

message CCommunity_GetCommentThread_Response {
	repeated .CCommunity_Comment comments = 1;
	repeated .CCommunity_Comment deleted_comments = 2;
	optional fixed64 steamid = 3;
	optional fixed64 commentthreadid = 4;
	optional int32 start = 5;
	optional int32 count = 6;
	optional int32 total_count = 7;
	optional int32 upvotes = 8;
	repeated uint32 upvoters = 9;
	optional bool user_subscribed = 10;
	optional bool user_upvoted = 11;
	optional fixed64 answer_commentid = 12;
	optional uint32 answer_actor = 13;
	optional int32 answer_actor_rank = 14;
	optional bool can_post = 15;
}

message CCommunity_PostCommentToThread_Request {
	optional fixed64 steamid = 1;
	optional uint32 comment_thread_type = 2;
	optional fixed64 gidfeature = 3;
	optional fixed64 gidfeature2 = 4;
	optional string text = 6;
	optional fixed64 gidparentcomment = 7;
	optional bool suppress_notifications = 8;
}

message CCommunity_PostCommentToThread_Response {
	optional fixed64 gidcomment = 1;
	optional fixed64 commentthreadid = 2;
	optional int32 count = 3;
	optional int32 upvotes = 4;
}

message CCommunity_DeleteCommentFromThread_Request {
	optional fixed64 steamid = 1;
	optional uint32 comment_thread_type = 2;
	optional fixed64 gidfeature = 3;
	optional fixed64 gidfeature2 = 4;
	optional fixed64 gidcomment = 5;
	optional bool undelete = 6;
}

message CCommunity_DeleteCommentFromThread_Response {
}

message CCommunity_RateCommentThread_Request {
	optional string commentthreadtype = 1;
	optional uint64 steamid = 2;
	optional uint64 gidfeature = 3;
	optional uint64 gidfeature2 = 4;
	optional uint64 gidcomment = 5;
	optional bool rate_up = 6;
	optional bool suppress_notifications = 7;
}

message CCommunity_RateCommentThread_Response {
	optional uint64 gidcomment = 1;
	optional uint64 commentthreadid = 2;
	optional uint32 count = 3;
	optional uint32 upvotes = 4;
	optional bool has_upvoted = 5;
}

message CCommunity_GetCommentThreadRatings_Response {
	optional uint64 commentthreadid = 1;
	optional uint64 gidcomment = 2;
	optional uint32 upvotes = 3;
	optional bool has_upvoted = 4;
	repeated uint32 upvoter_accountids = 5;
}

message CCommunity_RateClanAnnouncement_Request {
	optional uint64 announcementid = 1;
	optional bool vote_up = 2;
	optional uint32 clan_accountid = 3;
}

message CCommunity_RateClanAnnouncement_Response {
}

message CCommunity_GetClanAnnouncementVoteForUser_Request {
	optional uint64 announcementid = 1;
}

message CCommunity_GetClanAnnouncementVoteForUser_Response {
	optional bool voted_up = 1;
	optional bool voted_down = 2;
}

message CAppPriority {
	optional uint32 priority = 1;
	repeated uint32 appid = 2;
}

message CCommunity_GetUserPartnerEventNews_Response {
	repeated .CClanMatchEventByRange results = 1;
}

message CCommunity_PartnerEventResult {
	optional uint32 clanid = 1;
	optional fixed64 event_gid = 2;
	optional fixed64 announcement_gid = 3;
	optional uint32 appid = 4;
	optional bool possible_takeover = 5;
	optional uint32 rtime32_last_modified = 6 [default = 0];
	optional int32 user_app_priority = 7;
}

message CCommunity_GetBestEventsForUser_Response {
	repeated .CCommunity_PartnerEventResult results = 1;
}

message CCommunity_ClearUserPartnerEventsAppPriorities_Response {
}

message CCommunity_PartnerEventsAppPriority {
	optional uint32 appid = 1;
	optional int32 user_app_priority = 2;
}

message CCommunity_GetUserPartnerEventsAppPriorities_Request {
}

message CCommunity_GetUserPartnerEventsAppPriorities_Response {
	repeated .CCommunity_PartnerEventsAppPriority priorities = 1;
}

message CCommunity_ClearSinglePartnerEventsAppPriority_Request {
	optional uint32 appid = 1;
}

message CCommunity_ClearSinglePartnerEventsAppPriority_Response {
}

message CCommunity_PartnerEventsShowMoreForApp_Request {
	optional uint32 appid = 1;
}

message CCommunity_PartnerEventsShowMoreForApp_Response {
}

message CCommunity_PartnerEventsShowLessForApp_Request {
	optional uint32 appid = 1;
}

message CCommunity_PartnerEventsShowLessForApp_Response {
}

message CCommunity_MarkPartnerEventsForUser_Request {
	repeated .CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking markings = 1;
}

message CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking {
	optional uint32 clanid = 1;
	optional fixed64 event_gid = 2;
	optional int32 display_location = 3 [(description) = "enum"];
	optional bool mark_shown = 4;
	optional bool mark_read = 5;
}

message CCommunity_MarkPartnerEventsForUser_Response {
}

message CMsgIPAddress {
	optional fixed32 v4 = 1;
	optional bytes v6 = 2;
}

message CClanEventUserNewsTuple {
	optional uint32 clanid = 1;
	optional fixed64 event_gid = 2;
	optional fixed64 announcement_gid = 3;
	optional uint32 rtime_start = 4;
	optional uint32 rtime_end = 5;
	optional uint32 priority_score = 6;
	optional uint32 type = 7;
	optional uint32 clamp_range_slot = 8;
	optional uint32 appid = 9;
	optional uint32 rtime32_last_modified = 10;
}

message CClanMatchEventByRange {
	optional uint32 rtime_before = 1;
	optional uint32 rtime_after = 2;
	optional uint32 qualified = 3;
	repeated .CClanEventUserNewsTuple events = 4;
}

message CCommunity_ClanAnnouncementInfo {
	optional uint64 gid = 1;
	optional uint64 clanid = 2;
	optional uint64 posterid = 3;
	optional string headline = 4;
	optional uint32 posttime = 5;
	optional uint32 updatetime = 6;
	optional string body = 7;
	optional int32 commentcount = 8;
	repeated string tags = 9;
	optional int32 language = 10;
	optional bool hidden = 11;
	optional fixed64 forum_topic_id = 12;
	optional fixed64 event_gid = 13;
}

message NotImplemented {
}

service ClientMetrics {
	rpc ClientAppInterfaceStatsReport (.NotImplemented) returns (.NoResponse);
	rpc ClientIPv6ConnectivityReport (.NotImplemented) returns (.NoResponse);
	rpc ReportClientError (.CClientMetrics_ReportClientError_Notification) returns (.NoResponse);
}

service CloudConfigStore {
	rpc Download (.CCloudConfigStore_Download_Request) returns (.CCloudConfigStore_Download_Response);
	rpc Upload (.CCloudConfigStore_Upload_Request) returns (.CCloudConfigStore_Upload_Response);
}

service CloudConfigStoreClient {
	rpc NotifyChange (.CCloudConfigStore_Change_Notification) returns (.NoResponse);
}

service FriendsList {
	rpc GetCategories (.NotImplemented) returns (.CFriendsList_GetCategories_Response);
	rpc GetFriendsList (.CFriendsList_GetFriendsList_Request) returns (.CFriendsList_GetFriendsList_Response);
	rpc GetFavorites (.NotImplemented) returns (.CFriendsList_GetFavorites_Response);
	rpc SetFavorites (.NotImplemented) returns (.CFriendsList_SetFavorites_Response);
}

service Player {
	rpc GetMutualFriendsForIncomingInvites (.NotImplemented) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response);
	rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response);
	rpc GetFriendsAppsActivity (.CPlayer_GetFriendsAppsActivity_Request) returns (.CPlayer_GetFriendsAppsActivity_Response);
	rpc GetGameBadgeLevels (.NotImplemented) returns (.CPlayer_GetGameBadgeLevels_Response);
	rpc GetEmoticonList (.NotImplemented) returns (.CPlayer_GetEmoticonList_Response);
	rpc GetAchievementsProgress (.CPlayer_GetAchievementsProgress_Request) returns (.CPlayer_GetAchievementsProgress_Response);
	rpc PostStatusToFriends (.CPlayer_PostStatusToFriends_Request) returns (.CPlayer_PostStatusToFriends_Response);
	rpc GetPostedStatus (.CPlayer_GetPostedStatus_Request) returns (.CPlayer_GetPostedStatus_Response);
	rpc DeletePostedStatus (.CPlayer_DeletePostedStatus_Request) returns (.CPlayer_DeletePostedStatus_Response);
	rpc ClientGetLastPlayedTimes (.NotImplemented) returns (.CPlayer_GetLastPlayedTimes_Response);
	rpc AcceptSSA (.NotImplemented) returns (.CPlayer_AcceptSSA_Response);
	rpc GetNicknameList (.NotImplemented) returns (.CPlayer_GetNicknameList_Response);
	rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response);
	rpc SetPerFriendPreferences (.NotImplemented) returns (.CPlayer_SetPerFriendPreferences_Response);
	rpc AddFriend (.NotImplemented) returns (.CPlayer_AddFriend_Response);
	rpc RemoveFriend (.NotImplemented) returns (.CPlayer_RemoveFriend_Response);
	rpc IgnoreFriend (.NotImplemented) returns (.CPlayer_IgnoreFriend_Response);
	rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response);
	rpc SetCommunityPreferences (.NotImplemented) returns (.CPlayer_SetCommunityPreferences_Response);
	rpc GetNewSteamAnnouncementState (.NotImplemented) returns (.CPlayer_GetNewSteamAnnouncementState_Response);
	rpc UpdateSteamAnnouncementLastRead (.NotImplemented) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response);
	rpc GetPrivacySettings (.NotImplemented) returns (.CPlayer_GetPrivacySettings_Response);
	rpc GetDurationControl (.NotImplemented) returns (.CPlayer_GetDurationControl_Response);
}

service PlayerClient {
	rpc NotifyLastPlayedTimes (.CPlayer_LastPlayedTimes_Notification) returns (.NoResponse);
	rpc NotifyFriendNicknameChanged (.CPlayer_FriendNicknameChanged_Notification) returns (.NoResponse);
	rpc NotifyNewSteamAnnouncementState (.CPlayer_NewSteamAnnouncementState_Notification) returns (.NoResponse);
	rpc NotifyCommunityPreferencesChanged (.CPlayer_CommunityPreferencesChanged_Notification) returns (.NoResponse);
	rpc NotifyPerFriendPreferencesChanged (.CPlayer_PerFriendPreferencesChanged_Notification) returns (.NoResponse);
	rpc NotifyPrivacyPrivacySettingsChanged (.CPlayer_PrivacySettingsChanged_Notification) returns (.NoResponse);
}

service Chat {
	rpc RequestFriendPersonaStates (.CChat_RequestFriendPersonaStates_Request) returns (.CChat_RequestFriendPersonaStates_Response);
}

service ChatRoom {
	rpc CreateChatRoomGroup (.NotImplemented) returns (.CChatRoom_CreateChatRoomGroup_Response);
	rpc SaveChatRoomGroup (.NotImplemented) returns (.CChatRoom_SaveChatRoomGroup_Response);
	rpc RenameChatRoomGroup (.NotImplemented) returns (.CChatRoom_RenameChatRoomGroup_Response);
	rpc SetChatRoomGroupTagline (.NotImplemented) returns (.CChatRoom_SetChatRoomGroupTagline_Response);
	rpc SetChatRoomGroupAvatar (.NotImplemented) returns (.CChatRoom_SetChatRoomGroupAvatar_Response);
	rpc SetChatRoomGroupWatchingBroadcast (.NotImplemented) returns (.CChatRoom_SetChatRoomGroupWatchingBroadcast_Response);
	rpc JoinMiniGameForChatRoomGroup (.NotImplemented) returns (.CChatRoom_JoinMiniGameForChatRoomGroup_Response);
	rpc EndMiniGameForChatRoomGroup (.NotImplemented) returns (.CChatRoom_EndMiniGameForChatRoomGroup_Response);
	rpc MuteUserInGroup (.NotImplemented) returns (.CChatRoom_MuteUser_Response);
	rpc KickUserFromGroup (.NotImplemented) returns (.CChatRoom_KickUser_Response);
	rpc SetUserBanState (.NotImplemented) returns (.CChatRoom_SetUserBanState_Response);
	rpc RevokeInviteToGroup (.NotImplemented) returns (.CChatRoom_RevokeInvite_Response);
	rpc CreateRole (.NotImplemented) returns (.CChatRoom_CreateRole_Response);
	rpc GetRoles (.NotImplemented) returns (.CChatRoom_GetRoles_Response);
	rpc RenameRole (.NotImplemented) returns (.CChatRoom_RenameRole_Response);
	rpc ReorderRole (.NotImplemented) returns (.CChatRoom_ReorderRole_Response);
	rpc DeleteRole (.NotImplemented) returns (.CChatRoom_DeleteRole_Response);
	rpc GetRoleActions (.NotImplemented) returns (.CChatRoom_GetRoleActions_Response);
	rpc ReplaceRoleActions (.NotImplemented) returns (.CChatRoom_ReplaceRoleActions_Response);
	rpc AddRoleToUser (.NotImplemented) returns (.CChatRoom_AddRoleToUser_Response);
	rpc GetRolesForUser (.NotImplemented) returns (.CChatRoom_GetRolesForUser_Response);
	rpc DeleteRoleFromUser (.NotImplemented) returns (.CChatRoom_DeleteRoleFromUser_Response);
	rpc JoinChatRoomGroup (.NotImplemented) returns (.CChatRoom_JoinChatRoomGroup_Response);
	rpc InviteFriendToChatRoomGroup (.NotImplemented) returns (.CChatRoom_InviteFriendToChatRoomGroup_Response);
	rpc LeaveChatRoomGroup (.NotImplemented) returns (.CChatRoom_LeaveChatRoomGroup_Response);
	rpc CreateChatRoom (.NotImplemented) returns (.CChatRoom_CreateChatRoom_Response);
	rpc DeleteChatRoom (.NotImplemented) returns (.CChatRoom_DeleteChatRoom_Response);
	rpc RenameChatRoom (.NotImplemented) returns (.CChatRoom_RenameChatRoom_Response);
	rpc ReorderChatRoom (.NotImplemented) returns (.CChatRoom_ReorderChatRoom_Response);
	rpc SendChatMessage (.NotImplemented) returns (.CChatRoom_SendChatMessage_Response);
	rpc JoinVoiceChat (.NotImplemented) returns (.CChatRoom_JoinVoiceChat_Response);
	rpc LeaveVoiceChat (.NotImplemented) returns (.CChatRoom_LeaveVoiceChat_Response);
	rpc GetMessageHistory (.NotImplemented) returns (.CChatRoom_GetMessageHistory_Response);
	rpc GetMyChatRoomGroups (.NotImplemented) returns (.CChatRoom_GetMyChatRoomGroups_Response);
	rpc GetChatRoomGroupState (.NotImplemented) returns (.CChatRoom_GetChatRoomGroupState_Response);
	rpc GetChatRoomGroupSummary (.NotImplemented) returns (.CChatRoom_GetChatRoomGroupSummary_Response);
	rpc AckChatMessage (.CChatRoom_AckChatMessage_Notification) returns (.NoResponse);
	rpc CreateInviteLink (.NotImplemented) returns (.CChatRoom_CreateInviteLink_Response);
	rpc GetInviteLinkInfo (.NotImplemented) returns (.CChatRoom_GetInviteLinkInfo_Response);
	rpc GetInviteInfo (.NotImplemented) returns (.CChatRoom_GetInviteInfo_Response);
	rpc GetInviteLinksForGroup (.NotImplemented) returns (.CChatRoom_GetInviteLinksForGroup_Response);
	rpc GetBanList (.NotImplemented) returns (.CChatRoom_GetBanList_Response);
	rpc GetInviteList (.NotImplemented) returns (.CChatRoom_GetInviteList_Response);
	rpc DeleteInviteLink (.NotImplemented) returns (.CChatRoom_DeleteInviteLink_Response);
	rpc SetSessionActiveChatRoomGroups (.NotImplemented) returns (.CChatRoom_SetSessionActiveChatRoomGroups_Response);
	rpc SetUserChatGroupPreferences (.NotImplemented) returns (.CChatRoom_SetUserChatGroupPreferences_Response);
	rpc DeleteChatMessages (.NotImplemented) returns (.CChatRoom_DeleteChatMessages_Response);
	rpc UpdateMemberListView (.NotImplemented) returns (.NoResponse);
	rpc SearchMembers (.NotImplemented) returns (.CChatRoom_SearchMembers_Response);
}

service ClanChatRooms {
	rpc GetClanChatRoomInfo (.NotImplemented) returns (.CClanChatRooms_GetClanChatRoomInfo_Response);
	rpc SetClanChatRoomPrivate (.NotImplemented) returns (.CClanChatRooms_SetClanChatRoomPrivate_Response);
}

service ChatRoomClient {
	rpc NotifyIncomingChatMessage (.CChatRoom_IncomingChatMessage_Notification) returns (.NoResponse);
	rpc NotifyChatMessageModified (.CChatRoom_ChatMessageModified_Notification) returns (.NoResponse);
	rpc NotifyMemberStateChange (.CChatRoom_MemberStateChange_Notification) returns (.NoResponse);
	rpc NotifyChatRoomHeaderStateChange (.CChatRoom_ChatRoomHeaderState_Notification) returns (.NoResponse);
	rpc NotifyChatRoomGroupRoomsChange (.CChatRoom_ChatRoomGroupRoomsChange_Notification) returns (.NoResponse);
	rpc NotifyShouldRejoinChatRoomVoiceChat (.CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification) returns (.NoResponse);
	rpc NotifyChatGroupUserStateChanged (.ChatRoomClient_NotifyChatGroupUserStateChanged_Notification) returns (.NoResponse);
	rpc NotifyAckChatMessageEcho (.CChatRoom_AckChatMessage_Notification) returns (.NoResponse);
	rpc NotifyChatRoomDisconnect (.ChatRoomClient_NotifyChatRoomDisconnect_Notification) returns (.NoResponse);
	rpc NotifyMemberListViewUpdated (.CChatRoomClient_MemberListViewUpdated_Notification) returns (.NoResponse);
}

service Store {
	rpc GetLocalizedNameForTags (.NotImplemented) returns (.CStore_GetLocalizedNameForTags_Response);
	rpc GetStorePreferences (.CStore_GetStorePreferences_Request) returns (.CStore_GetStorePreferences_Response);
}

service StoreClient {
	rpc NotifyStorePreferencesChanged (.CStore_StorePreferencesChanged_Notification) returns (.NoResponse);
}

service UserNews {
	rpc GetUserNews (.CUserNews_GetUserNews_Request) returns (.CUserNews_GetUserNews_Response);
	rpc GetAppDetailsSpotlight (.CUserNews_GetAppDetailsSpotlight_Request) returns (.CUserNews_GetAppDetailsSpotlight_Response);
}

service UserGameActivity {
	rpc GetActivity (.CUserGameActivity_GetActivity_Request) returns (.CUserGameActivity_GetActivity_Response);
}

service UserAccount {
	rpc GetAvailableValveDiscountPromotions (.NotImplemented) returns (.CUserAccount_GetAvailableValveDiscountPromotions_Response);
	rpc GetAccountLinkStatus (.NotImplemented) returns (.CUserAccount_GetAccountLinkStatus_Response);
	rpc CancelLicenseForApp (.CUserAccount_CancelLicenseForApp_Request) returns (.CUserAccount_CancelLicenseForApp_Response);
	rpc CreateFriendInviteToken (.NotImplemented) returns (.CUserAccount_CreateFriendInviteToken_Response);
	rpc GetFriendInviteTokens (.NotImplemented) returns (.CUserAccount_GetFriendInviteTokens_Response);
	rpc ViewFriendInviteToken (.NotImplemented) returns (.CUserAccount_ViewFriendInviteToken_Response);
	rpc RedeemFriendInviteToken (.NotImplemented) returns (.CUserAccount_RedeemFriendInviteToken_Response);
	rpc RevokeFriendInviteToken (.NotImplemented) returns (.CUserAccount_RevokeFriendInviteToken_Response);
	rpc RegisterCompatTool (.NotImplemented) returns (.CUserAccount_RegisterCompatTool_Response);
}

service Quest {
	rpc GetCommunityInventory (.NotImplemented) returns (.CQuest_GetCommunityInventory_Response);
	rpc GetCommunityItemDefinitions (.CQuest_GetCommunityItemDefinitions_Request) returns (.CQuest_GetCommunityItemDefinitions_Response);
}

service PublishedFileClient {
	rpc NotifyFileSubscribed (.CPublishedFile_FileSubscribed_Notification) returns (.NoResponse);
	rpc NotifyFileUnsubscribed (.CPublishedFile_FileUnsubscribed_Notification) returns (.NoResponse);
	rpc NotifyFileDeleted (.CPublishedFile_FileDeleted_Client_Notification) returns (.NoResponse);
}

service UserReviews {
	rpc Update (.CUserReviews_Update_Request) returns (.CUserReviews_Update_Response);
	rpc GetIndividualRecommendations (.CUserReviews_GetIndividualRecommendations_Request) returns (.CUserReviews_GetIndividualRecommendations_Response);
}

service Community {
	rpc GetApps (.CCommunity_GetApps_Request) returns (.CCommunity_GetApps_Response);
	rpc GetAppRichPresenceLocalization (.CCommunity_GetAppRichPresenceLocalization_Request) returns (.CCommunity_GetAppRichPresenceLocalization_Response);
	rpc GetCommentThread (.CCommunity_GetCommentThread_Request) returns (.CCommunity_GetCommentThread_Response);
	rpc PostCommentToThread (.CCommunity_PostCommentToThread_Request) returns (.CCommunity_PostCommentToThread_Response);
	rpc DeleteCommentFromThread (.CCommunity_DeleteCommentFromThread_Request) returns (.CCommunity_DeleteCommentFromThread_Response);
	rpc RateCommentThread (.CCommunity_RateCommentThread_Request) returns (.CCommunity_RateCommentThread_Response);
	rpc GetCommentThreadRatings (.NotImplemented) returns (.CCommunity_GetCommentThreadRatings_Response);
	rpc RateClanAnnouncement (.CCommunity_RateClanAnnouncement_Request) returns (.CCommunity_RateClanAnnouncement_Response);
	rpc GetClanAnnouncementVoteForUser (.CCommunity_GetClanAnnouncementVoteForUser_Request) returns (.CCommunity_GetClanAnnouncementVoteForUser_Response);
	rpc GetUserPartnerEventNews (.NotImplemented) returns (.CCommunity_GetUserPartnerEventNews_Response);
	rpc GetBestEventsForUser (.NotImplemented) returns (.CCommunity_GetBestEventsForUser_Response);
	rpc MarkPartnerEventsForUser (.CCommunity_MarkPartnerEventsForUser_Request) returns (.CCommunity_MarkPartnerEventsForUser_Response);
	rpc PartnerEventsShowMoreForApp (.CCommunity_PartnerEventsShowMoreForApp_Request) returns (.CCommunity_PartnerEventsShowMoreForApp_Response);
	rpc PartnerEventsShowLessForApp (.CCommunity_PartnerEventsShowLessForApp_Request) returns (.CCommunity_PartnerEventsShowLessForApp_Response);
	rpc ClearUserPartnerEventsAppPriorities (.NotImplemented) returns (.CCommunity_ClearUserPartnerEventsAppPriorities_Response);
	rpc GetUserPartnerEventsAppPriorities (.CCommunity_GetUserPartnerEventsAppPriorities_Request) returns (.CCommunity_GetUserPartnerEventsAppPriorities_Response);
	rpc ClearSinglePartnerEventsAppPriority (.CCommunity_ClearSinglePartnerEventsAppPriority_Request) returns (.CCommunity_ClearSinglePartnerEventsAppPriority_Response);
}

