Skip to main content

boon_proto/
proto.rs

1// @generated — DO NOT EDIT.
2
3// This file is @generated by prost-build.
4#[derive(serde::Serialize, serde::Deserialize)]
5#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6pub struct CMsgProtoBufHeader {
7    #[prost(fixed64, optional, tag = "1")]
8    pub client_steam_id: ::core::option::Option<u64>,
9    #[prost(int32, optional, tag = "2")]
10    pub client_session_id: ::core::option::Option<i32>,
11    #[prost(uint32, optional, tag = "3")]
12    pub source_app_id: ::core::option::Option<u32>,
13    #[prost(fixed64, optional, tag = "10", default = "18446744073709551615")]
14    pub job_id_source: ::core::option::Option<u64>,
15    #[prost(fixed64, optional, tag = "11", default = "18446744073709551615")]
16    pub job_id_target: ::core::option::Option<u64>,
17    #[prost(string, optional, tag = "12")]
18    pub target_job_name: ::core::option::Option<::prost::alloc::string::String>,
19    #[prost(int32, optional, tag = "13", default = "2")]
20    pub eresult: ::core::option::Option<i32>,
21    #[prost(string, optional, tag = "14")]
22    pub error_message: ::core::option::Option<::prost::alloc::string::String>,
23    #[prost(
24        enumeration = "GcProtoBufMsgSrc",
25        optional,
26        tag = "200",
27        default = "Unspecified"
28    )]
29    pub gc_msg_src: ::core::option::Option<i32>,
30    #[prost(int32, optional, tag = "201", default = "-1")]
31    pub gc_dir_index_source: ::core::option::Option<i32>,
32}
33#[derive(serde::Serialize, serde::Deserialize)]
34#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
35pub struct CgcSystemMsgGetAccountDetails {
36    #[prost(fixed64, optional, tag = "1")]
37    pub steamid: ::core::option::Option<u64>,
38    #[prost(uint32, optional, tag = "2")]
39    pub appid: ::core::option::Option<u32>,
40}
41#[derive(serde::Serialize, serde::Deserialize)]
42#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
43pub struct CgcSystemMsgGetAccountDetailsResponse {
44    #[prost(uint32, optional, tag = "1", default = "2")]
45    pub eresult_deprecated: ::core::option::Option<u32>,
46    #[prost(string, optional, tag = "2")]
47    pub account_name: ::core::option::Option<::prost::alloc::string::String>,
48    #[prost(string, optional, tag = "3")]
49    pub persona_name: ::core::option::Option<::prost::alloc::string::String>,
50    #[prost(bool, optional, tag = "26")]
51    pub is_profile_created: ::core::option::Option<bool>,
52    #[prost(bool, optional, tag = "4")]
53    pub is_profile_public: ::core::option::Option<bool>,
54    #[prost(bool, optional, tag = "5")]
55    pub is_inventory_public: ::core::option::Option<bool>,
56    #[prost(bool, optional, tag = "7")]
57    pub is_vac_banned: ::core::option::Option<bool>,
58    #[prost(bool, optional, tag = "8")]
59    pub is_cyber_cafe: ::core::option::Option<bool>,
60    #[prost(bool, optional, tag = "9")]
61    pub is_school_account: ::core::option::Option<bool>,
62    #[prost(bool, optional, tag = "10")]
63    pub is_limited: ::core::option::Option<bool>,
64    #[prost(bool, optional, tag = "11")]
65    pub is_subscribed: ::core::option::Option<bool>,
66    #[prost(uint32, optional, tag = "12")]
67    pub package: ::core::option::Option<u32>,
68    #[prost(bool, optional, tag = "13")]
69    pub is_free_trial_account: ::core::option::Option<bool>,
70    #[prost(uint32, optional, tag = "14")]
71    pub free_trial_expiration: ::core::option::Option<u32>,
72    #[prost(bool, optional, tag = "15")]
73    pub is_low_violence: ::core::option::Option<bool>,
74    #[prost(bool, optional, tag = "16")]
75    pub is_account_locked_down: ::core::option::Option<bool>,
76    #[prost(bool, optional, tag = "17")]
77    pub is_community_banned: ::core::option::Option<bool>,
78    #[prost(bool, optional, tag = "18")]
79    pub is_trade_banned: ::core::option::Option<bool>,
80    #[prost(uint32, optional, tag = "19")]
81    pub trade_ban_expiration: ::core::option::Option<u32>,
82    #[prost(uint32, optional, tag = "20")]
83    pub accountid: ::core::option::Option<u32>,
84    #[prost(uint32, optional, tag = "21")]
85    pub suspension_end_time: ::core::option::Option<u32>,
86    #[prost(string, optional, tag = "22")]
87    pub currency: ::core::option::Option<::prost::alloc::string::String>,
88    #[prost(uint32, optional, tag = "23")]
89    pub steam_level: ::core::option::Option<u32>,
90    #[prost(uint32, optional, tag = "24")]
91    pub friend_count: ::core::option::Option<u32>,
92    #[prost(uint32, optional, tag = "25")]
93    pub account_creation_time: ::core::option::Option<u32>,
94    #[prost(bool, optional, tag = "27")]
95    pub is_steamguard_enabled: ::core::option::Option<bool>,
96    #[prost(bool, optional, tag = "28")]
97    pub is_phone_verified: ::core::option::Option<bool>,
98    #[prost(bool, optional, tag = "29")]
99    pub is_two_factor_auth_enabled: ::core::option::Option<bool>,
100    #[prost(uint32, optional, tag = "30")]
101    pub two_factor_enabled_time: ::core::option::Option<u32>,
102    #[prost(uint32, optional, tag = "31")]
103    pub phone_verification_time: ::core::option::Option<u32>,
104    #[prost(uint64, optional, tag = "33")]
105    pub phone_id: ::core::option::Option<u64>,
106    #[prost(bool, optional, tag = "34")]
107    pub is_phone_identifying: ::core::option::Option<bool>,
108    #[prost(uint32, optional, tag = "35")]
109    pub rt_identity_linked: ::core::option::Option<u32>,
110    #[prost(uint32, optional, tag = "36")]
111    pub rt_birth_date: ::core::option::Option<u32>,
112    #[prost(string, optional, tag = "37")]
113    pub txn_country_code: ::core::option::Option<::prost::alloc::string::String>,
114    #[prost(bool, optional, tag = "38")]
115    pub has_accepted_china_ssa: ::core::option::Option<bool>,
116    #[prost(bool, optional, tag = "39")]
117    pub is_banned_steam_china: ::core::option::Option<bool>,
118}
119#[derive(serde::Serialize, serde::Deserialize)]
120#[derive(Clone, PartialEq, ::prost::Message)]
121pub struct CipLocationInfo {
122    #[prost(uint32, optional, tag = "1")]
123    pub ip: ::core::option::Option<u32>,
124    #[prost(float, optional, tag = "2")]
125    pub latitude: ::core::option::Option<f32>,
126    #[prost(float, optional, tag = "3")]
127    pub longitude: ::core::option::Option<f32>,
128    #[prost(string, optional, tag = "4")]
129    pub country: ::core::option::Option<::prost::alloc::string::String>,
130    #[prost(string, optional, tag = "5")]
131    pub state: ::core::option::Option<::prost::alloc::string::String>,
132    #[prost(string, optional, tag = "6")]
133    pub city: ::core::option::Option<::prost::alloc::string::String>,
134}
135#[derive(serde::Serialize, serde::Deserialize)]
136#[derive(Clone, PartialEq, ::prost::Message)]
137pub struct CgcMsgGetIpLocationResponse {
138    #[prost(message, repeated, tag = "1")]
139    pub infos: ::prost::alloc::vec::Vec<CipLocationInfo>,
140}
141#[derive(serde::Serialize, serde::Deserialize)]
142#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
143#[repr(i32)]
144pub enum EgcPlatform {
145    KEGcPlatformNone = 0,
146    KEGcPlatformPc = 1,
147    KEGcPlatformMac = 2,
148    KEGcPlatformLinux = 3,
149    KEGcPlatformAndroid = 4,
150    KEGcPlatformIOs = 5,
151}
152impl EgcPlatform {
153    /// String value of the enum field names used in the ProtoBuf definition.
154    ///
155    /// The values are not transformed in any way and thus are considered stable
156    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
157    pub fn as_str_name(&self) -> &'static str {
158        match self {
159            Self::KEGcPlatformNone => "k_eGCPlatform_None",
160            Self::KEGcPlatformPc => "k_eGCPlatform_PC",
161            Self::KEGcPlatformMac => "k_eGCPlatform_Mac",
162            Self::KEGcPlatformLinux => "k_eGCPlatform_Linux",
163            Self::KEGcPlatformAndroid => "k_eGCPlatform_Android",
164            Self::KEGcPlatformIOs => "k_eGCPlatform_iOS",
165        }
166    }
167    /// Creates an enum from field names used in the ProtoBuf definition.
168    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
169        match value {
170            "k_eGCPlatform_None" => Some(Self::KEGcPlatformNone),
171            "k_eGCPlatform_PC" => Some(Self::KEGcPlatformPc),
172            "k_eGCPlatform_Mac" => Some(Self::KEGcPlatformMac),
173            "k_eGCPlatform_Linux" => Some(Self::KEGcPlatformLinux),
174            "k_eGCPlatform_Android" => Some(Self::KEGcPlatformAndroid),
175            "k_eGCPlatform_iOS" => Some(Self::KEGcPlatformIOs),
176            _ => None,
177        }
178    }
179}
180#[derive(serde::Serialize, serde::Deserialize)]
181#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
182#[repr(i32)]
183pub enum GcProtoBufMsgSrc {
184    Unspecified = 0,
185    FromSystem = 1,
186    FromSteamId = 2,
187    FromGc = 3,
188    ReplySystem = 4,
189    SpoofedSteamId = 5,
190}
191impl GcProtoBufMsgSrc {
192    /// String value of the enum field names used in the ProtoBuf definition.
193    ///
194    /// The values are not transformed in any way and thus are considered stable
195    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
196    pub fn as_str_name(&self) -> &'static str {
197        match self {
198            Self::Unspecified => "GCProtoBufMsgSrc_Unspecified",
199            Self::FromSystem => "GCProtoBufMsgSrc_FromSystem",
200            Self::FromSteamId => "GCProtoBufMsgSrc_FromSteamID",
201            Self::FromGc => "GCProtoBufMsgSrc_FromGC",
202            Self::ReplySystem => "GCProtoBufMsgSrc_ReplySystem",
203            Self::SpoofedSteamId => "GCProtoBufMsgSrc_SpoofedSteamID",
204        }
205    }
206    /// Creates an enum from field names used in the ProtoBuf definition.
207    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
208        match value {
209            "GCProtoBufMsgSrc_Unspecified" => Some(Self::Unspecified),
210            "GCProtoBufMsgSrc_FromSystem" => Some(Self::FromSystem),
211            "GCProtoBufMsgSrc_FromSteamID" => Some(Self::FromSteamId),
212            "GCProtoBufMsgSrc_FromGC" => Some(Self::FromGc),
213            "GCProtoBufMsgSrc_ReplySystem" => Some(Self::ReplySystem),
214            "GCProtoBufMsgSrc_SpoofedSteamID" => Some(Self::SpoofedSteamId),
215            _ => None,
216        }
217    }
218}
219#[derive(serde::Serialize, serde::Deserialize)]
220#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
221#[repr(i32)]
222pub enum EProtoDebugVisiblity {
223    KEProtoDebugVisibilityAlways = 0,
224    KEProtoDebugVisibilityServer = 70,
225    KEProtoDebugVisibilityValveServer = 80,
226    KEProtoDebugVisibilityGc = 90,
227    KEProtoDebugVisibilityNever = 100,
228}
229impl EProtoDebugVisiblity {
230    /// String value of the enum field names used in the ProtoBuf definition.
231    ///
232    /// The values are not transformed in any way and thus are considered stable
233    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
234    pub fn as_str_name(&self) -> &'static str {
235        match self {
236            Self::KEProtoDebugVisibilityAlways => "k_EProtoDebugVisibility_Always",
237            Self::KEProtoDebugVisibilityServer => "k_EProtoDebugVisibility_Server",
238            Self::KEProtoDebugVisibilityValveServer => {
239                "k_EProtoDebugVisibility_ValveServer"
240            }
241            Self::KEProtoDebugVisibilityGc => "k_EProtoDebugVisibility_GC",
242            Self::KEProtoDebugVisibilityNever => "k_EProtoDebugVisibility_Never",
243        }
244    }
245    /// Creates an enum from field names used in the ProtoBuf definition.
246    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
247        match value {
248            "k_EProtoDebugVisibility_Always" => Some(Self::KEProtoDebugVisibilityAlways),
249            "k_EProtoDebugVisibility_Server" => Some(Self::KEProtoDebugVisibilityServer),
250            "k_EProtoDebugVisibility_ValveServer" => {
251                Some(Self::KEProtoDebugVisibilityValveServer)
252            }
253            "k_EProtoDebugVisibility_GC" => Some(Self::KEProtoDebugVisibilityGc),
254            "k_EProtoDebugVisibility_Never" => Some(Self::KEProtoDebugVisibilityNever),
255            _ => None,
256        }
257    }
258}
259#[derive(serde::Serialize, serde::Deserialize)]
260#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
261#[repr(i32)]
262pub enum EProtoExecutionSite {
263    KEProtoExecutionSiteUnknown = 0,
264    KEProtoExecutionSiteSteamClient = 3,
265}
266impl EProtoExecutionSite {
267    /// String value of the enum field names used in the ProtoBuf definition.
268    ///
269    /// The values are not transformed in any way and thus are considered stable
270    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
271    pub fn as_str_name(&self) -> &'static str {
272        match self {
273            Self::KEProtoExecutionSiteUnknown => "k_EProtoExecutionSiteUnknown",
274            Self::KEProtoExecutionSiteSteamClient => "k_EProtoExecutionSiteSteamClient",
275        }
276    }
277    /// Creates an enum from field names used in the ProtoBuf definition.
278    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
279        match value {
280            "k_EProtoExecutionSiteUnknown" => Some(Self::KEProtoExecutionSiteUnknown),
281            "k_EProtoExecutionSiteSteamClient" => {
282                Some(Self::KEProtoExecutionSiteSteamClient)
283            }
284            _ => None,
285        }
286    }
287}
288#[derive(serde::Serialize, serde::Deserialize)]
289#[derive(Clone, PartialEq, ::prost::Message)]
290pub struct CMsgSteamLearnDataSourceDescObject {
291    #[prost(message, repeated, tag = "1")]
292    pub elements: ::prost::alloc::vec::Vec<CMsgSteamLearnDataSourceDescElement>,
293}
294#[derive(serde::Serialize, serde::Deserialize)]
295#[derive(Clone, PartialEq, ::prost::Message)]
296pub struct CMsgSteamLearnDataSourceDescElement {
297    #[prost(string, optional, tag = "1")]
298    pub name: ::core::option::Option<::prost::alloc::string::String>,
299    #[prost(
300        enumeration = "ESteamLearnDataType",
301        optional,
302        tag = "2",
303        default = "SteamlearnDatatypeInvalid"
304    )]
305    pub data_type: ::core::option::Option<i32>,
306    #[prost(message, optional, tag = "3")]
307    pub object: ::core::option::Option<CMsgSteamLearnDataSourceDescObject>,
308    #[prost(uint32, optional, tag = "4")]
309    pub count: ::core::option::Option<u32>,
310}
311#[derive(serde::Serialize, serde::Deserialize)]
312#[derive(Clone, PartialEq, ::prost::Message)]
313pub struct CMsgSteamLearnDataSource {
314    #[prost(uint32, optional, tag = "1")]
315    pub id: ::core::option::Option<u32>,
316    #[prost(string, optional, tag = "2")]
317    pub name: ::core::option::Option<::prost::alloc::string::String>,
318    #[prost(uint32, optional, tag = "3")]
319    pub version: ::core::option::Option<u32>,
320    #[prost(string, optional, tag = "4")]
321    pub source_description: ::core::option::Option<::prost::alloc::string::String>,
322    #[prost(message, optional, tag = "5")]
323    pub structure: ::core::option::Option<CMsgSteamLearnDataSourceDescObject>,
324    #[prost(uint32, optional, tag = "6")]
325    pub structure_crc: ::core::option::Option<u32>,
326    #[prost(uint32, optional, tag = "7")]
327    pub cache_duration_seconds: ::core::option::Option<u32>,
328}
329#[derive(serde::Serialize, serde::Deserialize)]
330#[derive(Clone, PartialEq, ::prost::Message)]
331pub struct CMsgSteamLearnDataObject {
332    #[prost(message, repeated, tag = "1")]
333    pub elements: ::prost::alloc::vec::Vec<CMsgSteamLearnDataElement>,
334}
335#[derive(serde::Serialize, serde::Deserialize)]
336#[derive(Clone, PartialEq, ::prost::Message)]
337pub struct CMsgSteamLearnDataElement {
338    #[prost(string, optional, tag = "1")]
339    pub name: ::core::option::Option<::prost::alloc::string::String>,
340    #[prost(int32, repeated, packed = "false", tag = "20")]
341    pub data_int32s: ::prost::alloc::vec::Vec<i32>,
342    #[prost(float, repeated, packed = "false", tag = "21")]
343    pub data_floats: ::prost::alloc::vec::Vec<f32>,
344    #[prost(bool, repeated, packed = "false", tag = "22")]
345    pub data_bools: ::prost::alloc::vec::Vec<bool>,
346    #[prost(string, repeated, tag = "23")]
347    pub data_strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
348    #[prost(message, repeated, tag = "24")]
349    pub data_objects: ::prost::alloc::vec::Vec<CMsgSteamLearnDataObject>,
350}
351#[derive(serde::Serialize, serde::Deserialize)]
352#[derive(Clone, PartialEq, ::prost::Message)]
353pub struct CMsgSteamLearnData {
354    #[prost(uint32, optional, tag = "1")]
355    pub data_source_id: ::core::option::Option<u32>,
356    #[prost(uint64, repeated, packed = "false", tag = "2")]
357    pub keys: ::prost::alloc::vec::Vec<u64>,
358    #[prost(message, optional, tag = "3")]
359    pub data_object: ::core::option::Option<CMsgSteamLearnDataObject>,
360}
361#[derive(serde::Serialize, serde::Deserialize)]
362#[derive(Clone, PartialEq, ::prost::Message)]
363pub struct CMsgSteamLearnDataList {
364    #[prost(message, repeated, tag = "1")]
365    pub data: ::prost::alloc::vec::Vec<CMsgSteamLearnData>,
366}
367#[derive(serde::Serialize, serde::Deserialize)]
368#[derive(Clone, PartialEq, ::prost::Message)]
369pub struct CMsgSteamLearnRegisterDataSourceRequest {
370    #[prost(string, optional, tag = "1")]
371    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
372    #[prost(message, optional, tag = "3")]
373    pub data_source: ::core::option::Option<CMsgSteamLearnDataSource>,
374}
375#[derive(serde::Serialize, serde::Deserialize)]
376#[derive(Clone, PartialEq, ::prost::Message)]
377pub struct CMsgSteamLearnRegisterDataSourceResponse {
378    #[prost(
379        enumeration = "ESteammLearnRegisterDataSourceResult",
380        optional,
381        tag = "1",
382        default = "SteamlearnRegisterDataSourceResultError"
383    )]
384    pub result: ::core::option::Option<i32>,
385    #[prost(message, optional, tag = "2")]
386    pub data_source: ::core::option::Option<CMsgSteamLearnDataSource>,
387}
388#[derive(serde::Serialize, serde::Deserialize)]
389#[derive(Clone, PartialEq, ::prost::Message)]
390pub struct CMsgSteamLearnCacheDataRequest {
391    #[prost(string, optional, tag = "1")]
392    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
393    #[prost(message, optional, tag = "3")]
394    pub data: ::core::option::Option<CMsgSteamLearnData>,
395}
396#[derive(serde::Serialize, serde::Deserialize)]
397#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
398pub struct CMsgSteamLearnCacheDataResponse {
399    #[prost(
400        enumeration = "ESteamLearnCacheDataResult",
401        optional,
402        tag = "1",
403        default = "SteamlearnCacheDataError"
404    )]
405    pub cache_data_result: ::core::option::Option<i32>,
406}
407#[derive(serde::Serialize, serde::Deserialize)]
408#[derive(Clone, PartialEq, ::prost::Message)]
409pub struct CMsgSteamLearnSnapshotProjectRequest {
410    #[prost(string, optional, tag = "1")]
411    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
412    #[prost(uint32, optional, tag = "3")]
413    pub project_id: ::core::option::Option<u32>,
414    #[prost(uint32, optional, tag = "7")]
415    pub published_version: ::core::option::Option<u32>,
416    #[prost(uint64, repeated, packed = "false", tag = "4")]
417    pub keys: ::prost::alloc::vec::Vec<u64>,
418    #[prost(message, repeated, tag = "5")]
419    pub data: ::prost::alloc::vec::Vec<CMsgSteamLearnData>,
420    #[prost(uint32, optional, tag = "6")]
421    pub pending_data_limit_seconds: ::core::option::Option<u32>,
422}
423#[derive(serde::Serialize, serde::Deserialize)]
424#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
425pub struct CMsgSteamLearnSnapshotProjectResponse {
426    #[prost(
427        enumeration = "ESteamLearnSnapshotProjectResult",
428        optional,
429        tag = "1",
430        default = "SteamlearnSnapshotProjectError"
431    )]
432    pub snapshot_result: ::core::option::Option<i32>,
433}
434#[derive(serde::Serialize, serde::Deserialize)]
435#[derive(Clone, PartialEq, ::prost::Message)]
436pub struct CMsgSteamLearnBatchOperationRequest {
437    #[prost(message, repeated, tag = "1")]
438    pub cache_data_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnCacheDataRequest>,
439    #[prost(message, repeated, tag = "2")]
440    pub snapshot_requests: ::prost::alloc::vec::Vec<
441        CMsgSteamLearnSnapshotProjectRequest,
442    >,
443    #[prost(message, repeated, tag = "3")]
444    pub inference_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnInferenceRequest>,
445}
446#[derive(serde::Serialize, serde::Deserialize)]
447#[derive(Clone, PartialEq, ::prost::Message)]
448pub struct CMsgSteamLearnBatchOperationResponse {
449    #[prost(message, repeated, tag = "1")]
450    pub cache_data_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnCacheDataResponse>,
451    #[prost(message, repeated, tag = "2")]
452    pub snapshot_responses: ::prost::alloc::vec::Vec<
453        CMsgSteamLearnSnapshotProjectResponse,
454    >,
455    #[prost(message, repeated, tag = "3")]
456    pub inference_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnInferenceResponse>,
457}
458#[derive(serde::Serialize, serde::Deserialize)]
459#[derive(Clone, PartialEq, ::prost::Message)]
460pub struct CMsgSteamLearnAccessTokens {
461    #[prost(string, optional, tag = "1")]
462    pub register_data_source_access_token: ::core::option::Option<
463        ::prost::alloc::string::String,
464    >,
465    #[prost(message, repeated, tag = "2")]
466    pub cache_data_access_tokens: ::prost::alloc::vec::Vec<
467        c_msg_steam_learn_access_tokens::CacheDataAccessToken,
468    >,
469    #[prost(message, repeated, tag = "3")]
470    pub snapshot_project_access_tokens: ::prost::alloc::vec::Vec<
471        c_msg_steam_learn_access_tokens::SnapshotProjectAccessToken,
472    >,
473    #[prost(message, repeated, tag = "4")]
474    pub inference_access_tokens: ::prost::alloc::vec::Vec<
475        c_msg_steam_learn_access_tokens::InferenceAccessToken,
476    >,
477}
478/// Nested message and enum types in `CMsgSteamLearnAccessTokens`.
479pub mod c_msg_steam_learn_access_tokens {
480    #[derive(serde::Serialize, serde::Deserialize)]
481    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
482    pub struct CacheDataAccessToken {
483        #[prost(uint32, optional, tag = "1")]
484        pub data_source_id: ::core::option::Option<u32>,
485        #[prost(string, optional, tag = "2")]
486        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
487    }
488    #[derive(serde::Serialize, serde::Deserialize)]
489    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
490    pub struct SnapshotProjectAccessToken {
491        #[prost(uint32, optional, tag = "1")]
492        pub project_id: ::core::option::Option<u32>,
493        #[prost(string, optional, tag = "2")]
494        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
495    }
496    #[derive(serde::Serialize, serde::Deserialize)]
497    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
498    pub struct InferenceAccessToken {
499        #[prost(uint32, optional, tag = "1")]
500        pub project_id: ::core::option::Option<u32>,
501        #[prost(string, optional, tag = "2")]
502        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
503    }
504}
505#[derive(serde::Serialize, serde::Deserialize)]
506#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
507pub struct CMsgSteamLearnGetAccessTokensRequest {
508    #[prost(uint32, optional, tag = "1")]
509    pub appid: ::core::option::Option<u32>,
510}
511#[derive(serde::Serialize, serde::Deserialize)]
512#[derive(Clone, PartialEq, ::prost::Message)]
513pub struct CMsgSteamLearnGetAccessTokensResponse {
514    #[prost(
515        enumeration = "ESteamLearnGetAccessTokensResult",
516        optional,
517        tag = "1",
518        default = "SteamlearnGetAccessTokensError"
519    )]
520    pub result: ::core::option::Option<i32>,
521    #[prost(message, optional, tag = "2")]
522    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
523}
524#[derive(serde::Serialize, serde::Deserialize)]
525#[derive(Clone, PartialEq, ::prost::Message)]
526pub struct CMsgInferenceIterateBeamSearch {
527    #[prost(uint32, optional, tag = "1")]
528    pub beam_length: ::core::option::Option<u32>,
529    #[prost(uint32, optional, tag = "2")]
530    pub beam_width: ::core::option::Option<u32>,
531    #[prost(float, optional, tag = "3")]
532    pub item_decay: ::core::option::Option<f32>,
533    #[prost(uint32, optional, tag = "4")]
534    pub next_item_count: ::core::option::Option<u32>,
535    #[prost(message, repeated, tag = "5")]
536    pub item_scalars: ::prost::alloc::vec::Vec<
537        c_msg_inference_iterate_beam_search::CustomItemScalar,
538    >,
539    #[prost(uint32, optional, tag = "7")]
540    pub item_sequence_end: ::core::option::Option<u32>,
541    #[prost(float, optional, tag = "8")]
542    pub item_sequence_end_threshold: ::core::option::Option<f32>,
543    #[prost(float, optional, tag = "9")]
544    pub repeat_multiplier: ::core::option::Option<f32>,
545}
546/// Nested message and enum types in `CMsgInferenceIterateBeamSearch`.
547pub mod c_msg_inference_iterate_beam_search {
548    #[derive(serde::Serialize, serde::Deserialize)]
549    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
550    pub struct CustomItemScalar {
551        #[prost(uint32, optional, tag = "1")]
552        pub item: ::core::option::Option<u32>,
553        #[prost(float, optional, tag = "2")]
554        pub scale: ::core::option::Option<f32>,
555    }
556}
557#[derive(serde::Serialize, serde::Deserialize)]
558#[derive(Clone, PartialEq, ::prost::Message)]
559pub struct CMsgSteamLearnInferenceRequest {
560    #[prost(string, optional, tag = "1")]
561    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
562    #[prost(uint32, optional, tag = "3")]
563    pub project_id: ::core::option::Option<u32>,
564    #[prost(uint32, optional, tag = "4")]
565    pub published_version: ::core::option::Option<u32>,
566    #[prost(uint32, optional, tag = "5")]
567    pub override_train_id: ::core::option::Option<u32>,
568    #[prost(message, optional, tag = "6")]
569    pub data: ::core::option::Option<CMsgSteamLearnDataList>,
570    #[prost(float, repeated, packed = "false", tag = "7")]
571    pub additional_data: ::prost::alloc::vec::Vec<f32>,
572    #[prost(uint64, repeated, packed = "false", tag = "8")]
573    pub keys: ::prost::alloc::vec::Vec<u64>,
574    #[prost(string, optional, tag = "9")]
575    pub named_inference: ::core::option::Option<::prost::alloc::string::String>,
576    #[prost(message, optional, tag = "13")]
577    pub iterate_beam_search: ::core::option::Option<CMsgInferenceIterateBeamSearch>,
578    #[prost(uint32, optional, tag = "14")]
579    pub debug_spew: ::core::option::Option<u32>,
580}
581#[derive(serde::Serialize, serde::Deserialize)]
582#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
583pub struct CMsgSteamLearnInferenceMetadataRequest {
584    #[prost(string, optional, tag = "1")]
585    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
586    #[prost(uint32, optional, tag = "3")]
587    pub project_id: ::core::option::Option<u32>,
588    #[prost(uint32, optional, tag = "4")]
589    pub published_version: ::core::option::Option<u32>,
590    #[prost(uint32, optional, tag = "5")]
591    pub override_train_id: ::core::option::Option<u32>,
592}
593#[derive(serde::Serialize, serde::Deserialize)]
594#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
595pub struct CMsgSteamLearnInferenceMetadataBackendRequest {
596    #[prost(uint32, optional, tag = "1")]
597    pub project_id: ::core::option::Option<u32>,
598    #[prost(uint32, optional, tag = "2")]
599    pub fetch_id: ::core::option::Option<u32>,
600}
601#[derive(serde::Serialize, serde::Deserialize)]
602#[derive(Clone, PartialEq, ::prost::Message)]
603pub struct CMsgSteamLearnInferenceMetadataResponse {
604    #[prost(
605        enumeration = "ESteamLearnInferenceMetadataResult",
606        optional,
607        tag = "1",
608        default = "SteamlearnInferenceMetadataError"
609    )]
610    pub inference_metadata_result: ::core::option::Option<i32>,
611    #[prost(message, optional, tag = "2")]
612    pub row_range: ::core::option::Option<
613        c_msg_steam_learn_inference_metadata_response::RowRange,
614    >,
615    #[prost(message, repeated, tag = "3")]
616    pub ranges: ::prost::alloc::vec::Vec<
617        c_msg_steam_learn_inference_metadata_response::Range,
618    >,
619    #[prost(message, repeated, tag = "4")]
620    pub std_devs: ::prost::alloc::vec::Vec<
621        c_msg_steam_learn_inference_metadata_response::StdDev,
622    >,
623    #[prost(message, repeated, tag = "5")]
624    pub compact_tables: ::prost::alloc::vec::Vec<
625        c_msg_steam_learn_inference_metadata_response::CompactTable,
626    >,
627    #[prost(message, repeated, tag = "9")]
628    pub sequence_tables: ::prost::alloc::vec::Vec<
629        c_msg_steam_learn_inference_metadata_response::SequenceTable,
630    >,
631    #[prost(message, repeated, tag = "6")]
632    pub kmeans: ::prost::alloc::vec::Vec<
633        c_msg_steam_learn_inference_metadata_response::KMeans,
634    >,
635    #[prost(message, repeated, tag = "8")]
636    pub app_info: ::prost::alloc::vec::Vec<
637        c_msg_steam_learn_inference_metadata_response::AppInfoEntry,
638    >,
639    #[prost(message, optional, tag = "7")]
640    pub snapshot_histogram: ::core::option::Option<
641        c_msg_steam_learn_inference_metadata_response::SnapshotHistogram,
642    >,
643}
644/// Nested message and enum types in `CMsgSteamLearn_InferenceMetadata_Response`.
645pub mod c_msg_steam_learn_inference_metadata_response {
646    #[derive(serde::Serialize, serde::Deserialize)]
647    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
648    pub struct RowRange {
649        #[prost(uint64, optional, tag = "1")]
650        pub min_row: ::core::option::Option<u64>,
651        #[prost(uint64, optional, tag = "2")]
652        pub max_row: ::core::option::Option<u64>,
653    }
654    #[derive(serde::Serialize, serde::Deserialize)]
655    #[derive(Clone, PartialEq, ::prost::Message)]
656    pub struct Range {
657        #[prost(string, optional, tag = "1")]
658        pub data_element_path: ::core::option::Option<::prost::alloc::string::String>,
659        #[prost(float, optional, tag = "2")]
660        pub min_value: ::core::option::Option<f32>,
661        #[prost(float, optional, tag = "3")]
662        pub max_value: ::core::option::Option<f32>,
663    }
664    #[derive(serde::Serialize, serde::Deserialize)]
665    #[derive(Clone, PartialEq, ::prost::Message)]
666    pub struct StdDev {
667        #[prost(string, optional, tag = "1")]
668        pub data_element_path: ::core::option::Option<::prost::alloc::string::String>,
669        #[prost(float, optional, tag = "2")]
670        pub mean: ::core::option::Option<f32>,
671        #[prost(float, optional, tag = "3")]
672        pub std_dev: ::core::option::Option<f32>,
673    }
674    #[derive(serde::Serialize, serde::Deserialize)]
675    #[derive(Clone, PartialEq, ::prost::Message)]
676    pub struct CompactTable {
677        #[prost(string, optional, tag = "1")]
678        pub name: ::core::option::Option<::prost::alloc::string::String>,
679        #[prost(message, repeated, tag = "2")]
680        pub map_values: ::prost::alloc::vec::Vec<compact_table::MapValuesEntry>,
681        #[prost(message, repeated, tag = "3")]
682        pub map_mappings: ::prost::alloc::vec::Vec<compact_table::MapMappingsEntry>,
683    }
684    /// Nested message and enum types in `CompactTable`.
685    pub mod compact_table {
686        #[derive(serde::Serialize, serde::Deserialize)]
687        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
688        pub struct Entry {
689            #[prost(uint32, optional, tag = "1")]
690            pub value: ::core::option::Option<u32>,
691            #[prost(uint32, optional, tag = "2")]
692            pub mapping: ::core::option::Option<u32>,
693            #[prost(uint64, optional, tag = "3")]
694            pub count: ::core::option::Option<u64>,
695        }
696        #[derive(serde::Serialize, serde::Deserialize)]
697        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
698        pub struct MapValuesEntry {
699            #[prost(uint32, optional, tag = "1")]
700            pub key: ::core::option::Option<u32>,
701            #[prost(message, optional, tag = "2")]
702            pub value: ::core::option::Option<Entry>,
703        }
704        #[derive(serde::Serialize, serde::Deserialize)]
705        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
706        pub struct MapMappingsEntry {
707            #[prost(uint32, optional, tag = "1")]
708            pub key: ::core::option::Option<u32>,
709            #[prost(message, optional, tag = "2")]
710            pub value: ::core::option::Option<Entry>,
711        }
712    }
713    #[derive(serde::Serialize, serde::Deserialize)]
714    #[derive(Clone, PartialEq, ::prost::Message)]
715    pub struct SequenceTable {
716        #[prost(string, optional, tag = "1")]
717        pub name: ::core::option::Option<::prost::alloc::string::String>,
718        #[prost(message, repeated, tag = "2")]
719        pub map_values: ::prost::alloc::vec::Vec<sequence_table::MapValuesEntry>,
720        #[prost(message, repeated, tag = "3")]
721        pub map_mappings: ::prost::alloc::vec::Vec<sequence_table::MapMappingsEntry>,
722        #[prost(uint64, optional, tag = "4")]
723        pub total_count: ::core::option::Option<u64>,
724    }
725    /// Nested message and enum types in `SequenceTable`.
726    pub mod sequence_table {
727        #[derive(serde::Serialize, serde::Deserialize)]
728        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
729        pub struct Entry {
730            #[prost(uint32, repeated, packed = "false", tag = "1")]
731            pub values: ::prost::alloc::vec::Vec<u32>,
732            #[prost(uint32, optional, tag = "2")]
733            pub crc: ::core::option::Option<u32>,
734            #[prost(uint32, optional, tag = "3")]
735            pub count: ::core::option::Option<u32>,
736        }
737        #[derive(serde::Serialize, serde::Deserialize)]
738        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
739        pub struct MapValuesEntry {
740            #[prost(uint32, optional, tag = "1")]
741            pub key: ::core::option::Option<u32>,
742            #[prost(message, optional, tag = "2")]
743            pub value: ::core::option::Option<Entry>,
744        }
745        #[derive(serde::Serialize, serde::Deserialize)]
746        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
747        pub struct MapMappingsEntry {
748            #[prost(string, optional, tag = "1")]
749            pub key: ::core::option::Option<::prost::alloc::string::String>,
750            #[prost(message, optional, tag = "2")]
751            pub value: ::core::option::Option<Entry>,
752        }
753    }
754    #[derive(serde::Serialize, serde::Deserialize)]
755    #[derive(Clone, PartialEq, ::prost::Message)]
756    pub struct KMeans {
757        #[prost(string, optional, tag = "1")]
758        pub name: ::core::option::Option<::prost::alloc::string::String>,
759        #[prost(message, repeated, tag = "2")]
760        pub clusters: ::prost::alloc::vec::Vec<k_means::Cluster>,
761    }
762    /// Nested message and enum types in `KMeans`.
763    pub mod k_means {
764        #[derive(serde::Serialize, serde::Deserialize)]
765        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
766        pub struct Cluster {
767            #[prost(float, optional, tag = "1")]
768            pub x: ::core::option::Option<f32>,
769            #[prost(float, optional, tag = "2")]
770            pub y: ::core::option::Option<f32>,
771            #[prost(float, optional, tag = "3")]
772            pub radius: ::core::option::Option<f32>,
773            #[prost(float, optional, tag = "4")]
774            pub radius_75pct: ::core::option::Option<f32>,
775            #[prost(float, optional, tag = "5")]
776            pub radius_50pct: ::core::option::Option<f32>,
777            #[prost(float, optional, tag = "6")]
778            pub radius_25pct: ::core::option::Option<f32>,
779        }
780    }
781    #[derive(serde::Serialize, serde::Deserialize)]
782    #[derive(Clone, PartialEq, ::prost::Message)]
783    pub struct SnapshotHistogram {
784        #[prost(float, optional, tag = "1")]
785        pub min_value: ::core::option::Option<f32>,
786        #[prost(float, optional, tag = "2")]
787        pub max_value: ::core::option::Option<f32>,
788        #[prost(uint32, optional, tag = "3")]
789        pub num_buckets: ::core::option::Option<u32>,
790        #[prost(uint32, repeated, packed = "false", tag = "4")]
791        pub bucket_counts: ::prost::alloc::vec::Vec<u32>,
792    }
793    #[derive(serde::Serialize, serde::Deserialize)]
794    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
795    pub struct AppInfo {
796        #[prost(string, optional, tag = "1")]
797        pub country_allow: ::core::option::Option<::prost::alloc::string::String>,
798        #[prost(string, optional, tag = "2")]
799        pub country_deny: ::core::option::Option<::prost::alloc::string::String>,
800        #[prost(bool, optional, tag = "3")]
801        pub platform_win: ::core::option::Option<bool>,
802        #[prost(bool, optional, tag = "4")]
803        pub platform_mac: ::core::option::Option<bool>,
804        #[prost(bool, optional, tag = "5")]
805        pub platform_linux: ::core::option::Option<bool>,
806        #[prost(bool, optional, tag = "6")]
807        pub adult_violence: ::core::option::Option<bool>,
808        #[prost(bool, optional, tag = "7")]
809        pub adult_sex: ::core::option::Option<bool>,
810    }
811    #[derive(serde::Serialize, serde::Deserialize)]
812    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
813    pub struct AppInfoEntry {
814        #[prost(uint32, optional, tag = "1")]
815        pub key: ::core::option::Option<u32>,
816        #[prost(message, optional, tag = "2")]
817        pub value: ::core::option::Option<AppInfo>,
818    }
819}
820#[derive(serde::Serialize, serde::Deserialize)]
821#[derive(Clone, PartialEq, ::prost::Message)]
822pub struct CMsgSteamLearnInferenceBackendResponse {
823    #[prost(message, repeated, tag = "1")]
824    pub outputs: ::prost::alloc::vec::Vec<
825        c_msg_steam_learn_inference_backend_response::Output,
826    >,
827}
828/// Nested message and enum types in `CMsgSteamLearn_InferenceBackend_Response`.
829pub mod c_msg_steam_learn_inference_backend_response {
830    #[derive(serde::Serialize, serde::Deserialize)]
831    #[derive(Clone, PartialEq, ::prost::Message)]
832    pub struct Sequence {
833        #[prost(float, repeated, packed = "false", tag = "1")]
834        pub value: ::prost::alloc::vec::Vec<f32>,
835    }
836    #[derive(serde::Serialize, serde::Deserialize)]
837    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
838    pub struct RegressionOutput {
839        #[prost(float, optional, tag = "2")]
840        pub value: ::core::option::Option<f32>,
841    }
842    #[derive(serde::Serialize, serde::Deserialize)]
843    #[derive(Clone, PartialEq, ::prost::Message)]
844    pub struct NamedInferenceOutput {
845        #[prost(float, repeated, packed = "false", tag = "3")]
846        pub value: ::prost::alloc::vec::Vec<f32>,
847    }
848    #[derive(serde::Serialize, serde::Deserialize)]
849    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
850    pub struct BinaryCrossEntropyOutput {
851        #[prost(float, optional, tag = "1")]
852        pub value: ::core::option::Option<f32>,
853    }
854    #[derive(serde::Serialize, serde::Deserialize)]
855    #[derive(Clone, PartialEq, ::prost::Message)]
856    pub struct MutliBinaryCrossEntropyOutput {
857        #[prost(float, repeated, packed = "false", tag = "1")]
858        pub weight: ::prost::alloc::vec::Vec<f32>,
859        #[prost(float, repeated, packed = "false", tag = "2")]
860        pub value: ::prost::alloc::vec::Vec<f32>,
861        #[prost(message, repeated, tag = "3")]
862        pub value_sequence: ::prost::alloc::vec::Vec<Sequence>,
863    }
864    #[derive(serde::Serialize, serde::Deserialize)]
865    #[derive(Clone, PartialEq, ::prost::Message)]
866    pub struct CategoricalCrossEntropyOutput {
867        #[prost(float, repeated, packed = "false", tag = "1")]
868        pub weight: ::prost::alloc::vec::Vec<f32>,
869        #[prost(float, repeated, packed = "false", tag = "2")]
870        pub value: ::prost::alloc::vec::Vec<f32>,
871        #[prost(message, repeated, tag = "3")]
872        pub value_sequence: ::prost::alloc::vec::Vec<Sequence>,
873    }
874    #[derive(serde::Serialize, serde::Deserialize)]
875    #[derive(Clone, PartialEq, ::prost::Message)]
876    pub struct Output {
877        #[prost(oneof = "output::ResponseType", tags = "1, 2, 3, 4, 5")]
878        pub response_type: ::core::option::Option<output::ResponseType>,
879    }
880    /// Nested message and enum types in `Output`.
881    pub mod output {
882        #[derive(serde::Serialize, serde::Deserialize)]
883        #[derive(Clone, PartialEq, ::prost::Oneof)]
884        pub enum ResponseType {
885            #[prost(message, tag = "1")]
886            BinaryCrossentropy(super::BinaryCrossEntropyOutput),
887            #[prost(message, tag = "2")]
888            CategoricalCrossentropy(super::CategoricalCrossEntropyOutput),
889            #[prost(message, tag = "3")]
890            MultiBinaryCrossentropy(super::MutliBinaryCrossEntropyOutput),
891            #[prost(message, tag = "4")]
892            Regression(super::RegressionOutput),
893            #[prost(message, tag = "5")]
894            NamedInference(super::NamedInferenceOutput),
895        }
896    }
897}
898#[derive(serde::Serialize, serde::Deserialize)]
899#[derive(Clone, PartialEq, ::prost::Message)]
900pub struct CMsgSteamLearnInferenceResponse {
901    #[prost(
902        enumeration = "ESteamLearnInferenceResult",
903        optional,
904        tag = "1",
905        default = "SteamlearnInferenceError"
906    )]
907    pub inference_result: ::core::option::Option<i32>,
908    #[prost(message, optional, tag = "2")]
909    pub backend_response: ::core::option::Option<CMsgSteamLearnInferenceBackendResponse>,
910    #[prost(uint64, repeated, packed = "false", tag = "3")]
911    pub keys: ::prost::alloc::vec::Vec<u64>,
912}
913#[derive(serde::Serialize, serde::Deserialize)]
914#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
915#[repr(i32)]
916pub enum ESteamLearnDataType {
917    SteamlearnDatatypeInvalid = 0,
918    SteamlearnDatatypeInt32 = 1,
919    SteamlearnDatatypeFloat32 = 2,
920    SteamlearnDatatypeBool = 3,
921    SteamlearnDatatypeString = 4,
922    SteamlearnDatatypeObject = 5,
923}
924impl ESteamLearnDataType {
925    /// String value of the enum field names used in the ProtoBuf definition.
926    ///
927    /// The values are not transformed in any way and thus are considered stable
928    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
929    pub fn as_str_name(&self) -> &'static str {
930        match self {
931            Self::SteamlearnDatatypeInvalid => "STEAMLEARN_DATATYPE_INVALID",
932            Self::SteamlearnDatatypeInt32 => "STEAMLEARN_DATATYPE_INT32",
933            Self::SteamlearnDatatypeFloat32 => "STEAMLEARN_DATATYPE_FLOAT32",
934            Self::SteamlearnDatatypeBool => "STEAMLEARN_DATATYPE_BOOL",
935            Self::SteamlearnDatatypeString => "STEAMLEARN_DATATYPE_STRING",
936            Self::SteamlearnDatatypeObject => "STEAMLEARN_DATATYPE_OBJECT",
937        }
938    }
939    /// Creates an enum from field names used in the ProtoBuf definition.
940    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
941        match value {
942            "STEAMLEARN_DATATYPE_INVALID" => Some(Self::SteamlearnDatatypeInvalid),
943            "STEAMLEARN_DATATYPE_INT32" => Some(Self::SteamlearnDatatypeInt32),
944            "STEAMLEARN_DATATYPE_FLOAT32" => Some(Self::SteamlearnDatatypeFloat32),
945            "STEAMLEARN_DATATYPE_BOOL" => Some(Self::SteamlearnDatatypeBool),
946            "STEAMLEARN_DATATYPE_STRING" => Some(Self::SteamlearnDatatypeString),
947            "STEAMLEARN_DATATYPE_OBJECT" => Some(Self::SteamlearnDatatypeObject),
948            _ => None,
949        }
950    }
951}
952#[derive(serde::Serialize, serde::Deserialize)]
953#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
954#[repr(i32)]
955pub enum ESteammLearnRegisterDataSourceResult {
956    SteamlearnRegisterDataSourceResultError = 0,
957    SteamlearnRegisterDataSourceResultSuccessCreated = 1,
958    SteamlearnRegisterDataSourceResultSuccessFound = 2,
959    SteamlearnRegisterDataSourceResultErrorGeneric = 3,
960    SteamlearnRegisterDataSourceResultErrorInvalidName = 4,
961    SteamlearnRegisterDataSourceResultErrorInvalidVersion = 5,
962    SteamlearnRegisterDataSourceResultErrorDataChanged = 6,
963    SteamlearnRegisterDataSourceResultErrorDataInvalid = 7,
964    SteamlearnRegisterDataSourceResultErrorForbidden = 8,
965    SteamlearnRegisterDataSourceResultErrorInvalidTimestamp = 9,
966    SteamlearnRegisterDataSourceResultDisabled = 10,
967}
968impl ESteammLearnRegisterDataSourceResult {
969    /// String value of the enum field names used in the ProtoBuf definition.
970    ///
971    /// The values are not transformed in any way and thus are considered stable
972    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
973    pub fn as_str_name(&self) -> &'static str {
974        match self {
975            Self::SteamlearnRegisterDataSourceResultError => {
976                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR"
977            }
978            Self::SteamlearnRegisterDataSourceResultSuccessCreated => {
979                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_CREATED"
980            }
981            Self::SteamlearnRegisterDataSourceResultSuccessFound => {
982                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_FOUND"
983            }
984            Self::SteamlearnRegisterDataSourceResultErrorGeneric => {
985                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_GENERIC"
986            }
987            Self::SteamlearnRegisterDataSourceResultErrorInvalidName => {
988                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_NAME"
989            }
990            Self::SteamlearnRegisterDataSourceResultErrorInvalidVersion => {
991                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_VERSION"
992            }
993            Self::SteamlearnRegisterDataSourceResultErrorDataChanged => {
994                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_CHANGED"
995            }
996            Self::SteamlearnRegisterDataSourceResultErrorDataInvalid => {
997                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_INVALID"
998            }
999            Self::SteamlearnRegisterDataSourceResultErrorForbidden => {
1000                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_FORBIDDEN"
1001            }
1002            Self::SteamlearnRegisterDataSourceResultErrorInvalidTimestamp => {
1003                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_TIMESTAMP"
1004            }
1005            Self::SteamlearnRegisterDataSourceResultDisabled => {
1006                "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_DISABLED"
1007            }
1008        }
1009    }
1010    /// Creates an enum from field names used in the ProtoBuf definition.
1011    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1012        match value {
1013            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR" => {
1014                Some(Self::SteamlearnRegisterDataSourceResultError)
1015            }
1016            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_CREATED" => {
1017                Some(Self::SteamlearnRegisterDataSourceResultSuccessCreated)
1018            }
1019            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_FOUND" => {
1020                Some(Self::SteamlearnRegisterDataSourceResultSuccessFound)
1021            }
1022            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_GENERIC" => {
1023                Some(Self::SteamlearnRegisterDataSourceResultErrorGeneric)
1024            }
1025            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_NAME" => {
1026                Some(Self::SteamlearnRegisterDataSourceResultErrorInvalidName)
1027            }
1028            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_VERSION" => {
1029                Some(Self::SteamlearnRegisterDataSourceResultErrorInvalidVersion)
1030            }
1031            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_CHANGED" => {
1032                Some(Self::SteamlearnRegisterDataSourceResultErrorDataChanged)
1033            }
1034            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_INVALID" => {
1035                Some(Self::SteamlearnRegisterDataSourceResultErrorDataInvalid)
1036            }
1037            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_FORBIDDEN" => {
1038                Some(Self::SteamlearnRegisterDataSourceResultErrorForbidden)
1039            }
1040            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_TIMESTAMP" => {
1041                Some(Self::SteamlearnRegisterDataSourceResultErrorInvalidTimestamp)
1042            }
1043            "STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_DISABLED" => {
1044                Some(Self::SteamlearnRegisterDataSourceResultDisabled)
1045            }
1046            _ => None,
1047        }
1048    }
1049}
1050#[derive(serde::Serialize, serde::Deserialize)]
1051#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1052#[repr(i32)]
1053pub enum ESteamLearnCacheDataResult {
1054    SteamlearnCacheDataError = 0,
1055    SteamlearnCacheDataSuccess = 1,
1056    SteamlearnCacheDataErrorUnknownDataSource = 2,
1057    SteamlearnCacheDataErrorUncachedDataSource = 3,
1058    SteamlearnCacheDataErrorInvalidKeys = 4,
1059    SteamlearnCacheDataErrorForbidden = 5,
1060    SteamlearnCacheDataErrorInvalidTimestamp = 6,
1061    SteamlearnCacheDataDisabled = 7,
1062}
1063impl ESteamLearnCacheDataResult {
1064    /// String value of the enum field names used in the ProtoBuf definition.
1065    ///
1066    /// The values are not transformed in any way and thus are considered stable
1067    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1068    pub fn as_str_name(&self) -> &'static str {
1069        match self {
1070            Self::SteamlearnCacheDataError => "STEAMLEARN_CACHE_DATA_ERROR",
1071            Self::SteamlearnCacheDataSuccess => "STEAMLEARN_CACHE_DATA_SUCCESS",
1072            Self::SteamlearnCacheDataErrorUnknownDataSource => {
1073                "STEAMLEARN_CACHE_DATA_ERROR_UNKNOWN_DATA_SOURCE"
1074            }
1075            Self::SteamlearnCacheDataErrorUncachedDataSource => {
1076                "STEAMLEARN_CACHE_DATA_ERROR_UNCACHED_DATA_SOURCE"
1077            }
1078            Self::SteamlearnCacheDataErrorInvalidKeys => {
1079                "STEAMLEARN_CACHE_DATA_ERROR_INVALID_KEYS"
1080            }
1081            Self::SteamlearnCacheDataErrorForbidden => {
1082                "STEAMLEARN_CACHE_DATA_ERROR_FORBIDDEN"
1083            }
1084            Self::SteamlearnCacheDataErrorInvalidTimestamp => {
1085                "STEAMLEARN_CACHE_DATA_ERROR_INVALID_TIMESTAMP"
1086            }
1087            Self::SteamlearnCacheDataDisabled => "STEAMLEARN_CACHE_DATA_DISABLED",
1088        }
1089    }
1090    /// Creates an enum from field names used in the ProtoBuf definition.
1091    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1092        match value {
1093            "STEAMLEARN_CACHE_DATA_ERROR" => Some(Self::SteamlearnCacheDataError),
1094            "STEAMLEARN_CACHE_DATA_SUCCESS" => Some(Self::SteamlearnCacheDataSuccess),
1095            "STEAMLEARN_CACHE_DATA_ERROR_UNKNOWN_DATA_SOURCE" => {
1096                Some(Self::SteamlearnCacheDataErrorUnknownDataSource)
1097            }
1098            "STEAMLEARN_CACHE_DATA_ERROR_UNCACHED_DATA_SOURCE" => {
1099                Some(Self::SteamlearnCacheDataErrorUncachedDataSource)
1100            }
1101            "STEAMLEARN_CACHE_DATA_ERROR_INVALID_KEYS" => {
1102                Some(Self::SteamlearnCacheDataErrorInvalidKeys)
1103            }
1104            "STEAMLEARN_CACHE_DATA_ERROR_FORBIDDEN" => {
1105                Some(Self::SteamlearnCacheDataErrorForbidden)
1106            }
1107            "STEAMLEARN_CACHE_DATA_ERROR_INVALID_TIMESTAMP" => {
1108                Some(Self::SteamlearnCacheDataErrorInvalidTimestamp)
1109            }
1110            "STEAMLEARN_CACHE_DATA_DISABLED" => Some(Self::SteamlearnCacheDataDisabled),
1111            _ => None,
1112        }
1113    }
1114}
1115#[derive(serde::Serialize, serde::Deserialize)]
1116#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1117#[repr(i32)]
1118pub enum ESteamLearnSnapshotProjectResult {
1119    SteamlearnSnapshotProjectError = 0,
1120    SteamlearnSnapshotProjectSuccessStored = 1,
1121    SteamlearnSnapshotProjectSuccessQueued = 2,
1122    SteamlearnSnapshotProjectErrorInvalidProjectId = 3,
1123    SteamlearnSnapshotProjectErrorUnknownDataSource = 4,
1124    SteamlearnSnapshotProjectErrorInvalidDataSourceKey = 5,
1125    SteamlearnSnapshotProjectErrorMissingCacheDuration = 6,
1126    SteamlearnSnapshotProjectErrorNoPublishedConfig = 7,
1127    SteamlearnSnapshotProjectErrorForbidden = 8,
1128    SteamlearnSnapshotProjectErrorInvalidTimestamp = 9,
1129    SteamlearnSnapshotProjectErrorInternalDataSourceError = 10,
1130    SteamlearnSnapshotProjectDisabled = 11,
1131    SteamlearnSnapshotProjectErrorInvalidPublishedVersion = 12,
1132}
1133impl ESteamLearnSnapshotProjectResult {
1134    /// String value of the enum field names used in the ProtoBuf definition.
1135    ///
1136    /// The values are not transformed in any way and thus are considered stable
1137    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1138    pub fn as_str_name(&self) -> &'static str {
1139        match self {
1140            Self::SteamlearnSnapshotProjectError => "STEAMLEARN_SNAPSHOT_PROJECT_ERROR",
1141            Self::SteamlearnSnapshotProjectSuccessStored => {
1142                "STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_STORED"
1143            }
1144            Self::SteamlearnSnapshotProjectSuccessQueued => {
1145                "STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_QUEUED"
1146            }
1147            Self::SteamlearnSnapshotProjectErrorInvalidProjectId => {
1148                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PROJECT_ID"
1149            }
1150            Self::SteamlearnSnapshotProjectErrorUnknownDataSource => {
1151                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_UNKNOWN_DATA_SOURCE"
1152            }
1153            Self::SteamlearnSnapshotProjectErrorInvalidDataSourceKey => {
1154                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_DATA_SOURCE_KEY"
1155            }
1156            Self::SteamlearnSnapshotProjectErrorMissingCacheDuration => {
1157                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_MISSING_CACHE_DURATION"
1158            }
1159            Self::SteamlearnSnapshotProjectErrorNoPublishedConfig => {
1160                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_NO_PUBLISHED_CONFIG"
1161            }
1162            Self::SteamlearnSnapshotProjectErrorForbidden => {
1163                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_FORBIDDEN"
1164            }
1165            Self::SteamlearnSnapshotProjectErrorInvalidTimestamp => {
1166                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_TIMESTAMP"
1167            }
1168            Self::SteamlearnSnapshotProjectErrorInternalDataSourceError => {
1169                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INTERNAL_DATA_SOURCE_ERROR"
1170            }
1171            Self::SteamlearnSnapshotProjectDisabled => {
1172                "STEAMLEARN_SNAPSHOT_PROJECT_DISABLED"
1173            }
1174            Self::SteamlearnSnapshotProjectErrorInvalidPublishedVersion => {
1175                "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PUBLISHED_VERSION"
1176            }
1177        }
1178    }
1179    /// Creates an enum from field names used in the ProtoBuf definition.
1180    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1181        match value {
1182            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR" => {
1183                Some(Self::SteamlearnSnapshotProjectError)
1184            }
1185            "STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_STORED" => {
1186                Some(Self::SteamlearnSnapshotProjectSuccessStored)
1187            }
1188            "STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_QUEUED" => {
1189                Some(Self::SteamlearnSnapshotProjectSuccessQueued)
1190            }
1191            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PROJECT_ID" => {
1192                Some(Self::SteamlearnSnapshotProjectErrorInvalidProjectId)
1193            }
1194            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_UNKNOWN_DATA_SOURCE" => {
1195                Some(Self::SteamlearnSnapshotProjectErrorUnknownDataSource)
1196            }
1197            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_DATA_SOURCE_KEY" => {
1198                Some(Self::SteamlearnSnapshotProjectErrorInvalidDataSourceKey)
1199            }
1200            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_MISSING_CACHE_DURATION" => {
1201                Some(Self::SteamlearnSnapshotProjectErrorMissingCacheDuration)
1202            }
1203            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_NO_PUBLISHED_CONFIG" => {
1204                Some(Self::SteamlearnSnapshotProjectErrorNoPublishedConfig)
1205            }
1206            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_FORBIDDEN" => {
1207                Some(Self::SteamlearnSnapshotProjectErrorForbidden)
1208            }
1209            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_TIMESTAMP" => {
1210                Some(Self::SteamlearnSnapshotProjectErrorInvalidTimestamp)
1211            }
1212            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INTERNAL_DATA_SOURCE_ERROR" => {
1213                Some(Self::SteamlearnSnapshotProjectErrorInternalDataSourceError)
1214            }
1215            "STEAMLEARN_SNAPSHOT_PROJECT_DISABLED" => {
1216                Some(Self::SteamlearnSnapshotProjectDisabled)
1217            }
1218            "STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PUBLISHED_VERSION" => {
1219                Some(Self::SteamlearnSnapshotProjectErrorInvalidPublishedVersion)
1220            }
1221            _ => None,
1222        }
1223    }
1224}
1225#[derive(serde::Serialize, serde::Deserialize)]
1226#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1227#[repr(i32)]
1228pub enum ESteamLearnGetAccessTokensResult {
1229    SteamlearnGetAccessTokensError = 0,
1230    SteamlearnGetAccessTokensSuccess = 1,
1231}
1232impl ESteamLearnGetAccessTokensResult {
1233    /// String value of the enum field names used in the ProtoBuf definition.
1234    ///
1235    /// The values are not transformed in any way and thus are considered stable
1236    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1237    pub fn as_str_name(&self) -> &'static str {
1238        match self {
1239            Self::SteamlearnGetAccessTokensError => "STEAMLEARN_GET_ACCESS_TOKENS_ERROR",
1240            Self::SteamlearnGetAccessTokensSuccess => {
1241                "STEAMLEARN_GET_ACCESS_TOKENS_SUCCESS"
1242            }
1243        }
1244    }
1245    /// Creates an enum from field names used in the ProtoBuf definition.
1246    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1247        match value {
1248            "STEAMLEARN_GET_ACCESS_TOKENS_ERROR" => {
1249                Some(Self::SteamlearnGetAccessTokensError)
1250            }
1251            "STEAMLEARN_GET_ACCESS_TOKENS_SUCCESS" => {
1252                Some(Self::SteamlearnGetAccessTokensSuccess)
1253            }
1254            _ => None,
1255        }
1256    }
1257}
1258#[derive(serde::Serialize, serde::Deserialize)]
1259#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1260#[repr(i32)]
1261pub enum ESteamLearnInferenceResult {
1262    SteamlearnInferenceError = 0,
1263    SteamlearnInferenceSuccess = 1,
1264    SteamlearnInferenceErrorInvalidProjectId = 2,
1265    SteamlearnInferenceErrorMissingCachedSchemaData = 3,
1266    SteamlearnInferenceErrorNoPublishedConfig = 4,
1267    SteamlearnInferenceErrorForbidden = 5,
1268    SteamlearnInferenceErrorInvalidTimestamp = 6,
1269    SteamlearnInferenceErrorInvalidPublishedVersion = 7,
1270    SteamlearnInferenceErrorNoFetchIdFound = 8,
1271    SteamlearnInferenceErrorTooBusy = 9,
1272    SteamlearnInferenceErrorUnsuppliedDataFail = 10,
1273    SteamlearnInferenceErrorUnsuppliedDataNoKeys = 11,
1274    SteamlearnInferenceDisabled = 12,
1275    SteamlearnInferenceErrorNoOutput = 13,
1276    SteamlearnInferenceErrorInvalidNamedInference = 14,
1277}
1278impl ESteamLearnInferenceResult {
1279    /// String value of the enum field names used in the ProtoBuf definition.
1280    ///
1281    /// The values are not transformed in any way and thus are considered stable
1282    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1283    pub fn as_str_name(&self) -> &'static str {
1284        match self {
1285            Self::SteamlearnInferenceError => "STEAMLEARN_INFERENCE_ERROR",
1286            Self::SteamlearnInferenceSuccess => "STEAMLEARN_INFERENCE_SUCCESS",
1287            Self::SteamlearnInferenceErrorInvalidProjectId => {
1288                "STEAMLEARN_INFERENCE_ERROR_INVALID_PROJECT_ID"
1289            }
1290            Self::SteamlearnInferenceErrorMissingCachedSchemaData => {
1291                "STEAMLEARN_INFERENCE_ERROR_MISSING_CACHED_SCHEMA_DATA"
1292            }
1293            Self::SteamlearnInferenceErrorNoPublishedConfig => {
1294                "STEAMLEARN_INFERENCE_ERROR_NO_PUBLISHED_CONFIG"
1295            }
1296            Self::SteamlearnInferenceErrorForbidden => {
1297                "STEAMLEARN_INFERENCE_ERROR_FORBIDDEN"
1298            }
1299            Self::SteamlearnInferenceErrorInvalidTimestamp => {
1300                "STEAMLEARN_INFERENCE_ERROR_INVALID_TIMESTAMP"
1301            }
1302            Self::SteamlearnInferenceErrorInvalidPublishedVersion => {
1303                "STEAMLEARN_INFERENCE_ERROR_INVALID_PUBLISHED_VERSION"
1304            }
1305            Self::SteamlearnInferenceErrorNoFetchIdFound => {
1306                "STEAMLEARN_INFERENCE_ERROR_NO_FETCH_ID_FOUND"
1307            }
1308            Self::SteamlearnInferenceErrorTooBusy => {
1309                "STEAMLEARN_INFERENCE_ERROR_TOO_BUSY"
1310            }
1311            Self::SteamlearnInferenceErrorUnsuppliedDataFail => {
1312                "STEAMLEARN_INFERENCE_ERROR_UNSUPPLIED_DATA_FAIL"
1313            }
1314            Self::SteamlearnInferenceErrorUnsuppliedDataNoKeys => {
1315                "STEAMLEARN_INFERENCE_ERROR_UNSUPPLIED_DATA_NO_KEYS"
1316            }
1317            Self::SteamlearnInferenceDisabled => "STEAMLEARN_INFERENCE_DISABLED",
1318            Self::SteamlearnInferenceErrorNoOutput => {
1319                "STEAMLEARN_INFERENCE_ERROR_NO_OUTPUT"
1320            }
1321            Self::SteamlearnInferenceErrorInvalidNamedInference => {
1322                "STEAMLEARN_INFERENCE_ERROR_INVALID_NAMED_INFERENCE"
1323            }
1324        }
1325    }
1326    /// Creates an enum from field names used in the ProtoBuf definition.
1327    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1328        match value {
1329            "STEAMLEARN_INFERENCE_ERROR" => Some(Self::SteamlearnInferenceError),
1330            "STEAMLEARN_INFERENCE_SUCCESS" => Some(Self::SteamlearnInferenceSuccess),
1331            "STEAMLEARN_INFERENCE_ERROR_INVALID_PROJECT_ID" => {
1332                Some(Self::SteamlearnInferenceErrorInvalidProjectId)
1333            }
1334            "STEAMLEARN_INFERENCE_ERROR_MISSING_CACHED_SCHEMA_DATA" => {
1335                Some(Self::SteamlearnInferenceErrorMissingCachedSchemaData)
1336            }
1337            "STEAMLEARN_INFERENCE_ERROR_NO_PUBLISHED_CONFIG" => {
1338                Some(Self::SteamlearnInferenceErrorNoPublishedConfig)
1339            }
1340            "STEAMLEARN_INFERENCE_ERROR_FORBIDDEN" => {
1341                Some(Self::SteamlearnInferenceErrorForbidden)
1342            }
1343            "STEAMLEARN_INFERENCE_ERROR_INVALID_TIMESTAMP" => {
1344                Some(Self::SteamlearnInferenceErrorInvalidTimestamp)
1345            }
1346            "STEAMLEARN_INFERENCE_ERROR_INVALID_PUBLISHED_VERSION" => {
1347                Some(Self::SteamlearnInferenceErrorInvalidPublishedVersion)
1348            }
1349            "STEAMLEARN_INFERENCE_ERROR_NO_FETCH_ID_FOUND" => {
1350                Some(Self::SteamlearnInferenceErrorNoFetchIdFound)
1351            }
1352            "STEAMLEARN_INFERENCE_ERROR_TOO_BUSY" => {
1353                Some(Self::SteamlearnInferenceErrorTooBusy)
1354            }
1355            "STEAMLEARN_INFERENCE_ERROR_UNSUPPLIED_DATA_FAIL" => {
1356                Some(Self::SteamlearnInferenceErrorUnsuppliedDataFail)
1357            }
1358            "STEAMLEARN_INFERENCE_ERROR_UNSUPPLIED_DATA_NO_KEYS" => {
1359                Some(Self::SteamlearnInferenceErrorUnsuppliedDataNoKeys)
1360            }
1361            "STEAMLEARN_INFERENCE_DISABLED" => Some(Self::SteamlearnInferenceDisabled),
1362            "STEAMLEARN_INFERENCE_ERROR_NO_OUTPUT" => {
1363                Some(Self::SteamlearnInferenceErrorNoOutput)
1364            }
1365            "STEAMLEARN_INFERENCE_ERROR_INVALID_NAMED_INFERENCE" => {
1366                Some(Self::SteamlearnInferenceErrorInvalidNamedInference)
1367            }
1368            _ => None,
1369        }
1370    }
1371}
1372#[derive(serde::Serialize, serde::Deserialize)]
1373#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1374#[repr(i32)]
1375pub enum ESteamLearnInferenceMetadataResult {
1376    SteamlearnInferenceMetadataError = 0,
1377    SteamlearnInferenceMetadataSuccess = 1,
1378    SteamlearnInferenceMetadataErrorInvalidProjectId = 2,
1379    SteamlearnInferenceMetadataErrorNoPublishedConfig = 3,
1380    SteamlearnInferenceMetadataErrorForbidden = 4,
1381    SteamlearnInferenceMetadataErrorInvalidTimestamp = 5,
1382    SteamlearnInferenceMetadataErrorInvalidPublishedVersion = 6,
1383    SteamlearnInferenceMetadataErrorNoFetchIdFound = 7,
1384}
1385impl ESteamLearnInferenceMetadataResult {
1386    /// String value of the enum field names used in the ProtoBuf definition.
1387    ///
1388    /// The values are not transformed in any way and thus are considered stable
1389    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1390    pub fn as_str_name(&self) -> &'static str {
1391        match self {
1392            Self::SteamlearnInferenceMetadataError => {
1393                "STEAMLEARN_INFERENCE_METADATA_ERROR"
1394            }
1395            Self::SteamlearnInferenceMetadataSuccess => {
1396                "STEAMLEARN_INFERENCE_METADATA_SUCCESS"
1397            }
1398            Self::SteamlearnInferenceMetadataErrorInvalidProjectId => {
1399                "STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PROJECT_ID"
1400            }
1401            Self::SteamlearnInferenceMetadataErrorNoPublishedConfig => {
1402                "STEAMLEARN_INFERENCE_METADATA_ERROR_NO_PUBLISHED_CONFIG"
1403            }
1404            Self::SteamlearnInferenceMetadataErrorForbidden => {
1405                "STEAMLEARN_INFERENCE_METADATA_ERROR_FORBIDDEN"
1406            }
1407            Self::SteamlearnInferenceMetadataErrorInvalidTimestamp => {
1408                "STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_TIMESTAMP"
1409            }
1410            Self::SteamlearnInferenceMetadataErrorInvalidPublishedVersion => {
1411                "STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PUBLISHED_VERSION"
1412            }
1413            Self::SteamlearnInferenceMetadataErrorNoFetchIdFound => {
1414                "STEAMLEARN_INFERENCE_METADATA_ERROR_NO_FETCH_ID_FOUND"
1415            }
1416        }
1417    }
1418    /// Creates an enum from field names used in the ProtoBuf definition.
1419    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1420        match value {
1421            "STEAMLEARN_INFERENCE_METADATA_ERROR" => {
1422                Some(Self::SteamlearnInferenceMetadataError)
1423            }
1424            "STEAMLEARN_INFERENCE_METADATA_SUCCESS" => {
1425                Some(Self::SteamlearnInferenceMetadataSuccess)
1426            }
1427            "STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PROJECT_ID" => {
1428                Some(Self::SteamlearnInferenceMetadataErrorInvalidProjectId)
1429            }
1430            "STEAMLEARN_INFERENCE_METADATA_ERROR_NO_PUBLISHED_CONFIG" => {
1431                Some(Self::SteamlearnInferenceMetadataErrorNoPublishedConfig)
1432            }
1433            "STEAMLEARN_INFERENCE_METADATA_ERROR_FORBIDDEN" => {
1434                Some(Self::SteamlearnInferenceMetadataErrorForbidden)
1435            }
1436            "STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_TIMESTAMP" => {
1437                Some(Self::SteamlearnInferenceMetadataErrorInvalidTimestamp)
1438            }
1439            "STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PUBLISHED_VERSION" => {
1440                Some(Self::SteamlearnInferenceMetadataErrorInvalidPublishedVersion)
1441            }
1442            "STEAMLEARN_INFERENCE_METADATA_ERROR_NO_FETCH_ID_FOUND" => {
1443                Some(Self::SteamlearnInferenceMetadataErrorNoFetchIdFound)
1444            }
1445            _ => None,
1446        }
1447    }
1448}
1449#[derive(serde::Serialize, serde::Deserialize)]
1450#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1451pub struct CExtraMsgBlock {
1452    #[prost(uint32, optional, tag = "1")]
1453    pub msg_type: ::core::option::Option<u32>,
1454    #[prost(bytes = "vec", optional, tag = "2")]
1455    pub contents: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1456    #[prost(uint64, optional, tag = "3")]
1457    pub msg_key: ::core::option::Option<u64>,
1458    #[prost(bool, optional, tag = "4")]
1459    pub is_compressed: ::core::option::Option<bool>,
1460}
1461#[derive(serde::Serialize, serde::Deserialize)]
1462#[derive(Clone, PartialEq, ::prost::Message)]
1463pub struct CMsgSteamLearnServerInfo {
1464    #[prost(message, optional, tag = "4")]
1465    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
1466    #[prost(message, repeated, tag = "5")]
1467    pub project_infos: ::prost::alloc::vec::Vec<
1468        c_msg_steam_learn_server_info::ProjectInfo,
1469    >,
1470}
1471/// Nested message and enum types in `CMsgSteamLearnServerInfo`.
1472pub mod c_msg_steam_learn_server_info {
1473    #[derive(serde::Serialize, serde::Deserialize)]
1474    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1475    pub struct ProjectInfo {
1476        #[prost(uint32, optional, tag = "1")]
1477        pub project_id: ::core::option::Option<u32>,
1478        #[prost(uint32, optional, tag = "2")]
1479        pub snapshot_published_version: ::core::option::Option<u32>,
1480        #[prost(uint32, optional, tag = "3")]
1481        pub inference_published_version: ::core::option::Option<u32>,
1482        #[prost(uint32, optional, tag = "6")]
1483        pub snapshot_percentage: ::core::option::Option<u32>,
1484        #[prost(bool, optional, tag = "7")]
1485        pub snapshot_enabled: ::core::option::Option<bool>,
1486    }
1487}
1488#[derive(serde::Serialize, serde::Deserialize)]
1489#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1490pub struct CMsgGcAssertJobData {
1491    #[prost(string, optional, tag = "1")]
1492    pub message_type: ::core::option::Option<::prost::alloc::string::String>,
1493    #[prost(bytes = "vec", optional, tag = "2")]
1494    pub message_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1495}
1496#[derive(serde::Serialize, serde::Deserialize)]
1497#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1498pub struct CMsgGcConCommand {
1499    #[prost(string, optional, tag = "1")]
1500    pub command: ::core::option::Option<::prost::alloc::string::String>,
1501}
1502#[derive(serde::Serialize, serde::Deserialize)]
1503#[derive(Clone, PartialEq, ::prost::Message)]
1504pub struct CMsgSdoAssert {
1505    #[prost(int32, optional, tag = "1")]
1506    pub sdo_type: ::core::option::Option<i32>,
1507    #[prost(message, repeated, tag = "2")]
1508    pub requests: ::prost::alloc::vec::Vec<c_msg_sdo_assert::Request>,
1509}
1510/// Nested message and enum types in `CMsgSDOAssert`.
1511pub mod c_msg_sdo_assert {
1512    #[derive(serde::Serialize, serde::Deserialize)]
1513    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1514    pub struct Request {
1515        #[prost(uint64, repeated, packed = "false", tag = "1")]
1516        pub key: ::prost::alloc::vec::Vec<u64>,
1517        #[prost(string, optional, tag = "2")]
1518        pub requesting_job: ::core::option::Option<::prost::alloc::string::String>,
1519    }
1520}
1521#[derive(serde::Serialize, serde::Deserialize)]
1522#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1523pub struct CMsgSoidOwner {
1524    #[prost(uint32, optional, tag = "1")]
1525    pub r#type: ::core::option::Option<u32>,
1526    #[prost(uint64, optional, tag = "2")]
1527    pub id: ::core::option::Option<u64>,
1528}
1529#[derive(serde::Serialize, serde::Deserialize)]
1530#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1531pub struct CMsgSoSingleObject {
1532    #[prost(int32, optional, tag = "2")]
1533    pub type_id: ::core::option::Option<i32>,
1534    #[prost(bytes = "vec", optional, tag = "3")]
1535    pub object_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1536    #[prost(fixed64, optional, tag = "4")]
1537    pub version: ::core::option::Option<u64>,
1538    #[prost(message, optional, tag = "5")]
1539    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
1540    #[prost(uint32, optional, tag = "6")]
1541    pub service_id: ::core::option::Option<u32>,
1542}
1543#[derive(serde::Serialize, serde::Deserialize)]
1544#[derive(Clone, PartialEq, ::prost::Message)]
1545pub struct CMsgSoMultipleObjects {
1546    #[prost(message, repeated, tag = "2")]
1547    pub objects_modified: ::prost::alloc::vec::Vec<
1548        c_msg_so_multiple_objects::SingleObject,
1549    >,
1550    #[prost(fixed64, optional, tag = "3")]
1551    pub version: ::core::option::Option<u64>,
1552    #[prost(message, repeated, tag = "4")]
1553    pub objects_added: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
1554    #[prost(message, repeated, tag = "5")]
1555    pub objects_removed: ::prost::alloc::vec::Vec<
1556        c_msg_so_multiple_objects::SingleObject,
1557    >,
1558    #[prost(message, optional, tag = "6")]
1559    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
1560    #[prost(uint32, optional, tag = "7")]
1561    pub service_id: ::core::option::Option<u32>,
1562}
1563/// Nested message and enum types in `CMsgSOMultipleObjects`.
1564pub mod c_msg_so_multiple_objects {
1565    #[derive(serde::Serialize, serde::Deserialize)]
1566    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1567    pub struct SingleObject {
1568        #[prost(int32, optional, tag = "1")]
1569        pub type_id: ::core::option::Option<i32>,
1570        #[prost(bytes = "vec", optional, tag = "2")]
1571        pub object_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1572    }
1573}
1574#[derive(serde::Serialize, serde::Deserialize)]
1575#[derive(Clone, PartialEq, ::prost::Message)]
1576pub struct CMsgSoCacheSubscribed {
1577    #[prost(message, repeated, tag = "2")]
1578    pub objects: ::prost::alloc::vec::Vec<c_msg_so_cache_subscribed::SubscribedType>,
1579    #[prost(fixed64, optional, tag = "3")]
1580    pub version: ::core::option::Option<u64>,
1581    #[prost(message, optional, tag = "4")]
1582    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
1583    #[prost(uint32, optional, tag = "5")]
1584    pub service_id: ::core::option::Option<u32>,
1585    #[prost(uint32, repeated, packed = "false", tag = "6")]
1586    pub service_list: ::prost::alloc::vec::Vec<u32>,
1587    #[prost(fixed64, optional, tag = "7")]
1588    pub sync_version: ::core::option::Option<u64>,
1589}
1590/// Nested message and enum types in `CMsgSOCacheSubscribed`.
1591pub mod c_msg_so_cache_subscribed {
1592    #[derive(serde::Serialize, serde::Deserialize)]
1593    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1594    pub struct SubscribedType {
1595        #[prost(int32, optional, tag = "1")]
1596        pub type_id: ::core::option::Option<i32>,
1597        #[prost(bytes = "vec", repeated, tag = "2")]
1598        pub object_data: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
1599    }
1600}
1601#[derive(serde::Serialize, serde::Deserialize)]
1602#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1603pub struct CMsgSoCacheSubscribedUpToDate {
1604    #[prost(fixed64, optional, tag = "1")]
1605    pub version: ::core::option::Option<u64>,
1606    #[prost(message, optional, tag = "2")]
1607    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
1608    #[prost(uint32, optional, tag = "3")]
1609    pub service_id: ::core::option::Option<u32>,
1610    #[prost(uint32, repeated, packed = "false", tag = "4")]
1611    pub service_list: ::prost::alloc::vec::Vec<u32>,
1612    #[prost(fixed64, optional, tag = "5")]
1613    pub sync_version: ::core::option::Option<u64>,
1614}
1615#[derive(serde::Serialize, serde::Deserialize)]
1616#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1617pub struct CMsgSoCacheUnsubscribed {
1618    #[prost(message, optional, tag = "2")]
1619    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
1620}
1621#[derive(serde::Serialize, serde::Deserialize)]
1622#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1623pub struct CMsgSoCacheSubscriptionCheck {
1624    #[prost(fixed64, optional, tag = "2")]
1625    pub version: ::core::option::Option<u64>,
1626    #[prost(message, optional, tag = "3")]
1627    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
1628    #[prost(uint32, optional, tag = "4")]
1629    pub service_id: ::core::option::Option<u32>,
1630    #[prost(uint32, repeated, packed = "false", tag = "5")]
1631    pub service_list: ::prost::alloc::vec::Vec<u32>,
1632    #[prost(fixed64, optional, tag = "6")]
1633    pub sync_version: ::core::option::Option<u64>,
1634}
1635#[derive(serde::Serialize, serde::Deserialize)]
1636#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1637pub struct CMsgSoCacheSubscriptionRefresh {
1638    #[prost(message, optional, tag = "2")]
1639    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
1640}
1641#[derive(serde::Serialize, serde::Deserialize)]
1642#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1643pub struct CMsgSoCacheVersion {
1644    #[prost(fixed64, optional, tag = "1")]
1645    pub version: ::core::option::Option<u64>,
1646}
1647#[derive(serde::Serialize, serde::Deserialize)]
1648#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1649pub struct CMsgGcMultiplexMessage {
1650    #[prost(uint32, optional, tag = "1")]
1651    pub msgtype: ::core::option::Option<u32>,
1652    #[prost(bytes = "vec", optional, tag = "2")]
1653    pub payload: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1654    #[prost(fixed64, repeated, packed = "false", tag = "3")]
1655    pub steamids: ::prost::alloc::vec::Vec<u64>,
1656}
1657#[derive(serde::Serialize, serde::Deserialize)]
1658#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1659pub struct CMsgGcToGcSubGcStarting {
1660    #[prost(int32, optional, tag = "1", default = "-1")]
1661    pub dir_index: ::core::option::Option<i32>,
1662}
1663#[derive(serde::Serialize, serde::Deserialize)]
1664#[derive(Clone, PartialEq, ::prost::Message)]
1665pub struct CgcToGcMsgMasterAck {
1666    #[prost(int32, optional, tag = "1", default = "-1")]
1667    pub dir_index: ::core::option::Option<i32>,
1668    #[prost(string, optional, tag = "3")]
1669    pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
1670    #[prost(string, optional, tag = "4")]
1671    pub process_name: ::core::option::Option<::prost::alloc::string::String>,
1672    #[prost(message, repeated, tag = "6")]
1673    pub directory: ::prost::alloc::vec::Vec<cgc_to_gc_msg_master_ack::Process>,
1674}
1675/// Nested message and enum types in `CGCToGCMsgMasterAck`.
1676pub mod cgc_to_gc_msg_master_ack {
1677    #[derive(serde::Serialize, serde::Deserialize)]
1678    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1679    pub struct Process {
1680        #[prost(int32, optional, tag = "1", default = "-1")]
1681        pub dir_index: ::core::option::Option<i32>,
1682        #[prost(uint32, repeated, packed = "false", tag = "2")]
1683        pub type_instances: ::prost::alloc::vec::Vec<u32>,
1684    }
1685}
1686#[derive(serde::Serialize, serde::Deserialize)]
1687#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1688pub struct CgcToGcMsgMasterAckResponse {
1689    #[prost(int32, optional, tag = "1", default = "2")]
1690    pub eresult: ::core::option::Option<i32>,
1691}
1692#[derive(serde::Serialize, serde::Deserialize)]
1693#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1694pub struct CMsgGcToGcUniverseStartup {
1695    #[prost(bool, optional, tag = "1")]
1696    pub is_initial_startup: ::core::option::Option<bool>,
1697}
1698#[derive(serde::Serialize, serde::Deserialize)]
1699#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1700pub struct CMsgGcToGcUniverseStartupResponse {
1701    #[prost(int32, optional, tag = "1")]
1702    pub eresult: ::core::option::Option<i32>,
1703}
1704#[derive(serde::Serialize, serde::Deserialize)]
1705#[derive(Clone, PartialEq, ::prost::Message)]
1706pub struct CgcToGcMsgMasterStartupComplete {
1707    #[prost(message, repeated, tag = "1")]
1708    pub gc_info: ::prost::alloc::vec::Vec<cgc_to_gc_msg_master_startup_complete::GcInfo>,
1709}
1710/// Nested message and enum types in `CGCToGCMsgMasterStartupComplete`.
1711pub mod cgc_to_gc_msg_master_startup_complete {
1712    #[derive(serde::Serialize, serde::Deserialize)]
1713    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1714    pub struct GcInfo {
1715        #[prost(int32, optional, tag = "1", default = "-1")]
1716        pub dir_index: ::core::option::Option<i32>,
1717        #[prost(string, optional, tag = "2")]
1718        pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
1719    }
1720}
1721#[derive(serde::Serialize, serde::Deserialize)]
1722#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1723pub struct CgcToGcMsgRouted {
1724    #[prost(uint32, optional, tag = "1")]
1725    pub msg_type: ::core::option::Option<u32>,
1726    #[prost(fixed64, optional, tag = "2")]
1727    pub sender_id: ::core::option::Option<u64>,
1728    #[prost(bytes = "vec", optional, tag = "3")]
1729    pub net_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1730}
1731#[derive(serde::Serialize, serde::Deserialize)]
1732#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1733pub struct CgcToGcMsgRoutedReply {
1734    #[prost(uint32, optional, tag = "1")]
1735    pub msg_type: ::core::option::Option<u32>,
1736    #[prost(bytes = "vec", optional, tag = "2")]
1737    pub net_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1738}
1739#[derive(serde::Serialize, serde::Deserialize)]
1740#[derive(Clone, PartialEq, ::prost::Message)]
1741pub struct CMsgGcUpdateSubGcSessionInfo {
1742    #[prost(message, repeated, tag = "1")]
1743    pub updates: ::prost::alloc::vec::Vec<
1744        c_msg_gc_update_sub_gc_session_info::CMsgUpdate,
1745    >,
1746}
1747/// Nested message and enum types in `CMsgGCUpdateSubGCSessionInfo`.
1748pub mod c_msg_gc_update_sub_gc_session_info {
1749    #[derive(serde::Serialize, serde::Deserialize)]
1750    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1751    pub struct CMsgUpdate {
1752        #[prost(fixed64, optional, tag = "1")]
1753        pub steamid: ::core::option::Option<u64>,
1754        #[prost(fixed32, optional, tag = "2")]
1755        pub ip: ::core::option::Option<u32>,
1756        #[prost(bool, optional, tag = "3")]
1757        pub trusted: ::core::option::Option<bool>,
1758    }
1759}
1760#[derive(serde::Serialize, serde::Deserialize)]
1761#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1762pub struct CMsgGcRequestSubGcSessionInfo {
1763    #[prost(fixed64, optional, tag = "1")]
1764    pub steamid: ::core::option::Option<u64>,
1765}
1766#[derive(serde::Serialize, serde::Deserialize)]
1767#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1768pub struct CMsgGcRequestSubGcSessionInfoResponse {
1769    #[prost(fixed32, optional, tag = "1")]
1770    pub ip: ::core::option::Option<u32>,
1771    #[prost(bool, optional, tag = "2")]
1772    pub trusted: ::core::option::Option<bool>,
1773    #[prost(uint32, optional, tag = "3")]
1774    pub port: ::core::option::Option<u32>,
1775    #[prost(bool, optional, tag = "4")]
1776    pub success: ::core::option::Option<bool>,
1777}
1778#[derive(serde::Serialize, serde::Deserialize)]
1779#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1780pub struct CMsgSoCacheHaveVersion {
1781    #[prost(message, optional, tag = "1")]
1782    pub soid: ::core::option::Option<CMsgSoidOwner>,
1783    #[prost(fixed64, optional, tag = "2")]
1784    pub version: ::core::option::Option<u64>,
1785    #[prost(uint32, optional, tag = "3")]
1786    pub service_id: ::core::option::Option<u32>,
1787    #[prost(uint32, optional, tag = "4")]
1788    pub cached_file_version: ::core::option::Option<u32>,
1789}
1790#[derive(serde::Serialize, serde::Deserialize)]
1791#[derive(Clone, PartialEq, ::prost::Message)]
1792pub struct CMsgClientHello {
1793    #[prost(uint32, optional, tag = "1")]
1794    pub version: ::core::option::Option<u32>,
1795    #[prost(message, repeated, tag = "2")]
1796    pub socache_have_versions: ::prost::alloc::vec::Vec<CMsgSoCacheHaveVersion>,
1797    #[prost(uint32, optional, tag = "3")]
1798    pub client_session_need: ::core::option::Option<u32>,
1799    #[prost(
1800        enumeration = "PartnerAccountType",
1801        optional,
1802        tag = "4",
1803        default = "PartnerNone"
1804    )]
1805    pub client_launcher: ::core::option::Option<i32>,
1806    #[prost(string, optional, tag = "5")]
1807    pub secret_key: ::core::option::Option<::prost::alloc::string::String>,
1808    #[prost(uint32, optional, tag = "6")]
1809    pub client_language: ::core::option::Option<u32>,
1810    #[prost(enumeration = "ESourceEngine", optional, tag = "7", default = "KEseSource1")]
1811    pub engine: ::core::option::Option<i32>,
1812    #[prost(bytes = "vec", optional, tag = "8")]
1813    pub steamdatagram_login: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1814    #[prost(uint32, optional, tag = "9")]
1815    pub platform_id: ::core::option::Option<u32>,
1816    #[prost(bytes = "vec", optional, tag = "10")]
1817    pub game_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1818    #[prost(int32, optional, tag = "11")]
1819    pub os_type: ::core::option::Option<i32>,
1820    #[prost(uint32, optional, tag = "12")]
1821    pub render_system: ::core::option::Option<u32>,
1822    #[prost(uint32, optional, tag = "13")]
1823    pub render_system_req: ::core::option::Option<u32>,
1824    #[prost(uint32, optional, tag = "14")]
1825    pub screen_width: ::core::option::Option<u32>,
1826    #[prost(uint32, optional, tag = "15")]
1827    pub screen_height: ::core::option::Option<u32>,
1828    #[prost(uint32, optional, tag = "16")]
1829    pub screen_refresh: ::core::option::Option<u32>,
1830    #[prost(uint32, optional, tag = "17")]
1831    pub render_width: ::core::option::Option<u32>,
1832    #[prost(uint32, optional, tag = "18")]
1833    pub render_height: ::core::option::Option<u32>,
1834    #[prost(uint32, optional, tag = "19")]
1835    pub swap_width: ::core::option::Option<u32>,
1836    #[prost(uint32, optional, tag = "20")]
1837    pub swap_height: ::core::option::Option<u32>,
1838    #[prost(bool, optional, tag = "22")]
1839    pub is_steam_china: ::core::option::Option<bool>,
1840    #[prost(bool, optional, tag = "24")]
1841    pub is_steam_china_client: ::core::option::Option<bool>,
1842    #[prost(string, optional, tag = "23")]
1843    pub platform_name: ::core::option::Option<::prost::alloc::string::String>,
1844}
1845#[derive(serde::Serialize, serde::Deserialize)]
1846#[derive(Clone, PartialEq, ::prost::Message)]
1847pub struct CMsgClientWelcome {
1848    #[prost(uint32, optional, tag = "1")]
1849    pub version: ::core::option::Option<u32>,
1850    #[prost(bytes = "vec", optional, tag = "2")]
1851    pub game_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1852    #[prost(message, repeated, tag = "3")]
1853    pub outofdate_subscribed_caches: ::prost::alloc::vec::Vec<CMsgSoCacheSubscribed>,
1854    #[prost(message, repeated, tag = "4")]
1855    pub uptodate_subscribed_caches: ::prost::alloc::vec::Vec<
1856        CMsgSoCacheSubscriptionCheck,
1857    >,
1858    #[prost(message, optional, tag = "5")]
1859    pub location: ::core::option::Option<c_msg_client_welcome::Location>,
1860    #[prost(uint32, optional, tag = "9")]
1861    pub gc_socache_file_version: ::core::option::Option<u32>,
1862    #[prost(string, optional, tag = "10")]
1863    pub txn_country_code: ::core::option::Option<::prost::alloc::string::String>,
1864    #[prost(bytes = "vec", optional, tag = "11")]
1865    pub game_data2: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1866    #[prost(uint32, optional, tag = "12")]
1867    pub rtime32_gc_welcome_timestamp: ::core::option::Option<u32>,
1868    #[prost(uint32, optional, tag = "13")]
1869    pub currency: ::core::option::Option<u32>,
1870    #[prost(uint32, optional, tag = "14")]
1871    pub balance: ::core::option::Option<u32>,
1872    #[prost(string, optional, tag = "15")]
1873    pub balance_url: ::core::option::Option<::prost::alloc::string::String>,
1874    #[prost(bool, optional, tag = "16")]
1875    pub has_accepted_china_ssa: ::core::option::Option<bool>,
1876    #[prost(bool, optional, tag = "17")]
1877    pub is_banned_steam_china: ::core::option::Option<bool>,
1878    #[prost(message, optional, tag = "18")]
1879    pub additional_welcome_msgs: ::core::option::Option<CExtraMsgBlock>,
1880    #[prost(message, optional, tag = "20")]
1881    pub steam_learn_server_info: ::core::option::Option<CMsgSteamLearnServerInfo>,
1882}
1883/// Nested message and enum types in `CMsgClientWelcome`.
1884pub mod c_msg_client_welcome {
1885    #[derive(serde::Serialize, serde::Deserialize)]
1886    #[derive(Clone, PartialEq, ::prost::Message)]
1887    pub struct Location {
1888        #[prost(float, optional, tag = "1")]
1889        pub latitude: ::core::option::Option<f32>,
1890        #[prost(float, optional, tag = "2")]
1891        pub longitude: ::core::option::Option<f32>,
1892        #[prost(string, optional, tag = "3")]
1893        pub country: ::core::option::Option<::prost::alloc::string::String>,
1894    }
1895}
1896#[derive(serde::Serialize, serde::Deserialize)]
1897#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1898pub struct CMsgConnectionStatus {
1899    #[prost(
1900        enumeration = "GcConnectionStatus",
1901        optional,
1902        tag = "1",
1903        default = "HaveSession"
1904    )]
1905    pub status: ::core::option::Option<i32>,
1906    #[prost(uint32, optional, tag = "2")]
1907    pub client_session_need: ::core::option::Option<u32>,
1908    #[prost(int32, optional, tag = "3")]
1909    pub queue_position: ::core::option::Option<i32>,
1910    #[prost(int32, optional, tag = "4")]
1911    pub queue_size: ::core::option::Option<i32>,
1912    #[prost(int32, optional, tag = "5")]
1913    pub wait_seconds: ::core::option::Option<i32>,
1914    #[prost(int32, optional, tag = "6")]
1915    pub estimated_wait_seconds_remaining: ::core::option::Option<i32>,
1916}
1917#[derive(serde::Serialize, serde::Deserialize)]
1918#[derive(Clone, PartialEq, ::prost::Message)]
1919pub struct CMsgGcToGcsoCacheSubscribe {
1920    #[prost(fixed64, optional, tag = "1")]
1921    pub subscriber: ::core::option::Option<u64>,
1922    #[prost(fixed64, optional, tag = "2")]
1923    pub subscribe_to_id: ::core::option::Option<u64>,
1924    #[prost(fixed64, optional, tag = "3")]
1925    pub sync_version: ::core::option::Option<u64>,
1926    #[prost(message, repeated, tag = "4")]
1927    pub have_versions: ::prost::alloc::vec::Vec<
1928        c_msg_gc_to_gcso_cache_subscribe::CMsgHaveVersions,
1929    >,
1930    #[prost(uint32, optional, tag = "5")]
1931    pub subscribe_to_type: ::core::option::Option<u32>,
1932}
1933/// Nested message and enum types in `CMsgGCToGCSOCacheSubscribe`.
1934pub mod c_msg_gc_to_gcso_cache_subscribe {
1935    #[derive(serde::Serialize, serde::Deserialize)]
1936    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1937    pub struct CMsgHaveVersions {
1938        #[prost(uint32, optional, tag = "1")]
1939        pub service_id: ::core::option::Option<u32>,
1940        #[prost(uint64, optional, tag = "2")]
1941        pub version: ::core::option::Option<u64>,
1942    }
1943}
1944#[derive(serde::Serialize, serde::Deserialize)]
1945#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1946pub struct CMsgGcToGcsoCacheUnsubscribe {
1947    #[prost(fixed64, optional, tag = "1")]
1948    pub subscriber: ::core::option::Option<u64>,
1949    #[prost(fixed64, optional, tag = "2")]
1950    pub unsubscribe_from_id: ::core::option::Option<u64>,
1951    #[prost(uint32, optional, tag = "3")]
1952    pub unsubscribe_from_type: ::core::option::Option<u32>,
1953}
1954#[derive(serde::Serialize, serde::Deserialize)]
1955#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1956pub struct CMsgGcClientPing {}
1957#[derive(serde::Serialize, serde::Deserialize)]
1958#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1959pub struct CMsgGcToGcForwardAccountDetails {
1960    #[prost(fixed64, optional, tag = "1")]
1961    pub steamid: ::core::option::Option<u64>,
1962    #[prost(message, optional, tag = "2")]
1963    pub account_details: ::core::option::Option<CgcSystemMsgGetAccountDetailsResponse>,
1964    #[prost(uint32, optional, tag = "3")]
1965    pub age_seconds: ::core::option::Option<u32>,
1966}
1967#[derive(serde::Serialize, serde::Deserialize)]
1968#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1969pub struct CMsgGcToGcLoadSessionSoCache {
1970    #[prost(uint32, optional, tag = "1")]
1971    pub account_id: ::core::option::Option<u32>,
1972    #[prost(message, optional, tag = "2")]
1973    pub forward_account_details: ::core::option::Option<CMsgGcToGcForwardAccountDetails>,
1974}
1975#[derive(serde::Serialize, serde::Deserialize)]
1976#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1977pub struct CMsgGcToGcLoadSessionSoCacheResponse {}
1978#[derive(serde::Serialize, serde::Deserialize)]
1979#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1980pub struct CMsgGcToGcUpdateSessionStats {
1981    #[prost(uint32, optional, tag = "1")]
1982    pub user_sessions: ::core::option::Option<u32>,
1983    #[prost(uint32, optional, tag = "2")]
1984    pub server_sessions: ::core::option::Option<u32>,
1985    #[prost(bool, optional, tag = "3")]
1986    pub in_logon_surge: ::core::option::Option<bool>,
1987}
1988#[derive(serde::Serialize, serde::Deserialize)]
1989#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1990pub struct CMsgGcToClientRequestDropped {}
1991#[derive(serde::Serialize, serde::Deserialize)]
1992#[derive(Clone, PartialEq, ::prost::Message)]
1993pub struct CWorkshopPopulateItemDescriptionsRequest {
1994    #[prost(uint32, optional, tag = "1")]
1995    pub appid: ::core::option::Option<u32>,
1996    #[prost(message, repeated, tag = "2")]
1997    pub languages: ::prost::alloc::vec::Vec<
1998        c_workshop_populate_item_descriptions_request::ItemDescriptionsLanguageBlock,
1999    >,
2000}
2001/// Nested message and enum types in `CWorkshop_PopulateItemDescriptions_Request`.
2002pub mod c_workshop_populate_item_descriptions_request {
2003    #[derive(serde::Serialize, serde::Deserialize)]
2004    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2005    pub struct SingleItemDescription {
2006        #[prost(uint32, optional, tag = "1")]
2007        pub gameitemid: ::core::option::Option<u32>,
2008        #[prost(string, optional, tag = "2")]
2009        pub item_description: ::core::option::Option<::prost::alloc::string::String>,
2010    }
2011    #[derive(serde::Serialize, serde::Deserialize)]
2012    #[derive(Clone, PartialEq, ::prost::Message)]
2013    pub struct ItemDescriptionsLanguageBlock {
2014        #[prost(string, optional, tag = "1")]
2015        pub language: ::core::option::Option<::prost::alloc::string::String>,
2016        #[prost(message, repeated, tag = "2")]
2017        pub descriptions: ::prost::alloc::vec::Vec<SingleItemDescription>,
2018    }
2019}
2020#[derive(serde::Serialize, serde::Deserialize)]
2021#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2022pub struct CWorkshopGetContributorsRequest {
2023    #[prost(uint32, optional, tag = "1")]
2024    pub appid: ::core::option::Option<u32>,
2025    #[prost(uint32, optional, tag = "2")]
2026    pub gameitemid: ::core::option::Option<u32>,
2027}
2028#[derive(serde::Serialize, serde::Deserialize)]
2029#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2030pub struct CWorkshopGetContributorsResponse {
2031    #[prost(fixed64, repeated, packed = "false", tag = "1")]
2032    pub contributors: ::prost::alloc::vec::Vec<u64>,
2033}
2034#[derive(serde::Serialize, serde::Deserialize)]
2035#[derive(Clone, PartialEq, ::prost::Message)]
2036pub struct CWorkshopSetItemPaymentRulesRequest {
2037    #[prost(uint32, optional, tag = "1")]
2038    pub appid: ::core::option::Option<u32>,
2039    #[prost(uint32, optional, tag = "2")]
2040    pub gameitemid: ::core::option::Option<u32>,
2041    #[prost(message, repeated, tag = "3")]
2042    pub associated_workshop_files: ::prost::alloc::vec::Vec<
2043        c_workshop_set_item_payment_rules_request::WorkshopItemPaymentRule,
2044    >,
2045    #[prost(message, repeated, tag = "4")]
2046    pub partner_accounts: ::prost::alloc::vec::Vec<
2047        c_workshop_set_item_payment_rules_request::PartnerItemPaymentRule,
2048    >,
2049    #[prost(bool, optional, tag = "5")]
2050    pub validate_only: ::core::option::Option<bool>,
2051    #[prost(bool, optional, tag = "6")]
2052    pub make_workshop_files_subscribable: ::core::option::Option<bool>,
2053    #[prost(message, optional, tag = "7")]
2054    pub associated_workshop_file_for_direct_payments: ::core::option::Option<
2055        c_workshop_set_item_payment_rules_request::WorkshopDirectPaymentRule,
2056    >,
2057}
2058/// Nested message and enum types in `CWorkshop_SetItemPaymentRules_Request`.
2059pub mod c_workshop_set_item_payment_rules_request {
2060    #[derive(serde::Serialize, serde::Deserialize)]
2061    #[derive(Clone, PartialEq, ::prost::Message)]
2062    pub struct WorkshopItemPaymentRule {
2063        #[prost(uint64, optional, tag = "1")]
2064        pub workshop_file_id: ::core::option::Option<u64>,
2065        #[prost(float, optional, tag = "2")]
2066        pub revenue_percentage: ::core::option::Option<f32>,
2067        #[prost(string, optional, tag = "3")]
2068        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
2069        #[prost(uint32, optional, tag = "4", default = "1")]
2070        pub rule_type: ::core::option::Option<u32>,
2071    }
2072    #[derive(serde::Serialize, serde::Deserialize)]
2073    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2074    pub struct WorkshopDirectPaymentRule {
2075        #[prost(uint64, optional, tag = "1")]
2076        pub workshop_file_id: ::core::option::Option<u64>,
2077        #[prost(string, optional, tag = "2")]
2078        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
2079    }
2080    #[derive(serde::Serialize, serde::Deserialize)]
2081    #[derive(Clone, PartialEq, ::prost::Message)]
2082    pub struct PartnerItemPaymentRule {
2083        #[prost(uint32, optional, tag = "1")]
2084        pub account_id: ::core::option::Option<u32>,
2085        #[prost(float, optional, tag = "2")]
2086        pub revenue_percentage: ::core::option::Option<f32>,
2087        #[prost(string, optional, tag = "3")]
2088        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
2089    }
2090}
2091#[derive(serde::Serialize, serde::Deserialize)]
2092#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2093pub struct CWorkshopSetItemPaymentRulesResponse {
2094    #[prost(string, repeated, tag = "1")]
2095    pub validation_errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2096}
2097#[derive(serde::Serialize, serde::Deserialize)]
2098#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2099pub struct CCommunityClanAnnouncementInfo {
2100    #[prost(uint64, optional, tag = "1")]
2101    pub gid: ::core::option::Option<u64>,
2102    #[prost(uint64, optional, tag = "2")]
2103    pub clanid: ::core::option::Option<u64>,
2104    #[prost(uint64, optional, tag = "3")]
2105    pub posterid: ::core::option::Option<u64>,
2106    #[prost(string, optional, tag = "4")]
2107    pub headline: ::core::option::Option<::prost::alloc::string::String>,
2108    #[prost(uint32, optional, tag = "5")]
2109    pub posttime: ::core::option::Option<u32>,
2110    #[prost(uint32, optional, tag = "6")]
2111    pub updatetime: ::core::option::Option<u32>,
2112    #[prost(string, optional, tag = "7")]
2113    pub body: ::core::option::Option<::prost::alloc::string::String>,
2114    #[prost(int32, optional, tag = "8")]
2115    pub commentcount: ::core::option::Option<i32>,
2116    #[prost(string, repeated, tag = "9")]
2117    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2118    #[prost(int32, optional, tag = "10")]
2119    pub language: ::core::option::Option<i32>,
2120    #[prost(bool, optional, tag = "11")]
2121    pub hidden: ::core::option::Option<bool>,
2122    #[prost(fixed64, optional, tag = "12")]
2123    pub forum_topic_id: ::core::option::Option<u64>,
2124}
2125#[derive(serde::Serialize, serde::Deserialize)]
2126#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2127pub struct CCommunityGetClanAnnouncementsRequest {
2128    #[prost(uint64, optional, tag = "1")]
2129    pub steamid: ::core::option::Option<u64>,
2130    #[prost(uint32, optional, tag = "2")]
2131    pub offset: ::core::option::Option<u32>,
2132    #[prost(uint32, optional, tag = "3")]
2133    pub count: ::core::option::Option<u32>,
2134    #[prost(uint32, optional, tag = "4")]
2135    pub maxchars: ::core::option::Option<u32>,
2136    #[prost(bool, optional, tag = "5")]
2137    pub strip_html: ::core::option::Option<bool>,
2138    #[prost(string, repeated, tag = "6")]
2139    pub required_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2140    #[prost(bool, optional, tag = "7")]
2141    pub require_no_tags: ::core::option::Option<bool>,
2142    #[prost(uint32, repeated, packed = "false", tag = "8")]
2143    pub language_preference: ::prost::alloc::vec::Vec<u32>,
2144    #[prost(bool, optional, tag = "9")]
2145    pub hidden_only: ::core::option::Option<bool>,
2146    #[prost(bool, optional, tag = "10")]
2147    pub only_gid: ::core::option::Option<bool>,
2148    #[prost(uint32, optional, tag = "11")]
2149    pub rtime_oldest_date: ::core::option::Option<u32>,
2150    #[prost(bool, optional, tag = "12")]
2151    pub include_hidden: ::core::option::Option<bool>,
2152    #[prost(bool, optional, tag = "13")]
2153    pub include_partner_events: ::core::option::Option<bool>,
2154}
2155#[derive(serde::Serialize, serde::Deserialize)]
2156#[derive(Clone, PartialEq, ::prost::Message)]
2157pub struct CCommunityGetClanAnnouncementsResponse {
2158    #[prost(uint32, optional, tag = "1")]
2159    pub maxchars: ::core::option::Option<u32>,
2160    #[prost(bool, optional, tag = "2")]
2161    pub strip_html: ::core::option::Option<bool>,
2162    #[prost(message, repeated, tag = "3")]
2163    pub announcements: ::prost::alloc::vec::Vec<CCommunityClanAnnouncementInfo>,
2164}
2165#[derive(serde::Serialize, serde::Deserialize)]
2166#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2167pub struct CBroadcastPostGameDataFrameRequest {
2168    #[prost(uint32, optional, tag = "1")]
2169    pub appid: ::core::option::Option<u32>,
2170    #[prost(fixed64, optional, tag = "2")]
2171    pub steamid: ::core::option::Option<u64>,
2172    #[prost(fixed64, optional, tag = "3")]
2173    pub broadcast_id: ::core::option::Option<u64>,
2174    #[prost(bytes = "vec", optional, tag = "4")]
2175    pub frame_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2176}
2177#[derive(serde::Serialize, serde::Deserialize)]
2178#[derive(Clone, PartialEq, ::prost::Message)]
2179pub struct CMsgSerializedSoCache {
2180    #[prost(uint32, optional, tag = "1")]
2181    pub file_version: ::core::option::Option<u32>,
2182    #[prost(message, repeated, tag = "2")]
2183    pub caches: ::prost::alloc::vec::Vec<c_msg_serialized_so_cache::Cache>,
2184    #[prost(uint32, optional, tag = "3")]
2185    pub gc_socache_file_version: ::core::option::Option<u32>,
2186}
2187/// Nested message and enum types in `CMsgSerializedSOCache`.
2188pub mod c_msg_serialized_so_cache {
2189    #[derive(serde::Serialize, serde::Deserialize)]
2190    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2191    pub struct TypeCache {
2192        #[prost(uint32, optional, tag = "1")]
2193        pub r#type: ::core::option::Option<u32>,
2194        #[prost(bytes = "vec", repeated, tag = "2")]
2195        pub objects: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
2196        #[prost(uint32, optional, tag = "3")]
2197        pub service_id: ::core::option::Option<u32>,
2198    }
2199    #[derive(serde::Serialize, serde::Deserialize)]
2200    #[derive(Clone, PartialEq, ::prost::Message)]
2201    pub struct Cache {
2202        #[prost(uint32, optional, tag = "1")]
2203        pub r#type: ::core::option::Option<u32>,
2204        #[prost(uint64, optional, tag = "2")]
2205        pub id: ::core::option::Option<u64>,
2206        #[prost(message, repeated, tag = "3")]
2207        pub versions: ::prost::alloc::vec::Vec<cache::Version>,
2208        #[prost(message, repeated, tag = "4")]
2209        pub type_caches: ::prost::alloc::vec::Vec<TypeCache>,
2210    }
2211    /// Nested message and enum types in `Cache`.
2212    pub mod cache {
2213        #[derive(serde::Serialize, serde::Deserialize)]
2214        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2215        pub struct Version {
2216            #[prost(uint32, optional, tag = "1")]
2217            pub service: ::core::option::Option<u32>,
2218            #[prost(uint64, optional, tag = "2")]
2219            pub version: ::core::option::Option<u64>,
2220        }
2221    }
2222}
2223#[derive(serde::Serialize, serde::Deserialize)]
2224#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2225pub struct CMsgGcToClientPollConvarRequest {
2226    #[prost(string, optional, tag = "1")]
2227    pub convar_name: ::core::option::Option<::prost::alloc::string::String>,
2228    #[prost(uint32, optional, tag = "2")]
2229    pub poll_id: ::core::option::Option<u32>,
2230}
2231#[derive(serde::Serialize, serde::Deserialize)]
2232#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2233pub struct CMsgGcToClientPollConvarResponse {
2234    #[prost(uint32, optional, tag = "1")]
2235    pub poll_id: ::core::option::Option<u32>,
2236    #[prost(string, optional, tag = "2")]
2237    pub convar_value: ::core::option::Option<::prost::alloc::string::String>,
2238}
2239#[derive(serde::Serialize, serde::Deserialize)]
2240#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2241pub struct CgcMsgCompressedMsgToClient {
2242    #[prost(uint32, optional, tag = "1")]
2243    pub msg_id: ::core::option::Option<u32>,
2244    #[prost(bytes = "vec", optional, tag = "2")]
2245    pub compressed_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2246}
2247#[derive(serde::Serialize, serde::Deserialize)]
2248#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2249pub struct CMsgGcToGcMasterBroadcastMessage {
2250    #[prost(uint32, optional, tag = "1")]
2251    pub users_per_second: ::core::option::Option<u32>,
2252    #[prost(bool, optional, tag = "2")]
2253    pub send_to_users: ::core::option::Option<bool>,
2254    #[prost(bool, optional, tag = "3")]
2255    pub send_to_servers: ::core::option::Option<bool>,
2256    #[prost(uint32, optional, tag = "4")]
2257    pub msg_id: ::core::option::Option<u32>,
2258    #[prost(bytes = "vec", optional, tag = "5")]
2259    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2260    #[prost(bool, optional, tag = "6")]
2261    pub trusted_servers_only: ::core::option::Option<bool>,
2262}
2263#[derive(serde::Serialize, serde::Deserialize)]
2264#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2265pub struct CMsgGcToGcMasterSubscribeToCache {
2266    #[prost(uint32, optional, tag = "1")]
2267    pub soid_type: ::core::option::Option<u32>,
2268    #[prost(fixed64, optional, tag = "2")]
2269    pub soid_id: ::core::option::Option<u64>,
2270    #[prost(uint32, repeated, packed = "false", tag = "3")]
2271    pub account_ids: ::prost::alloc::vec::Vec<u32>,
2272    #[prost(fixed64, repeated, packed = "false", tag = "4")]
2273    pub steam_ids: ::prost::alloc::vec::Vec<u64>,
2274}
2275#[derive(serde::Serialize, serde::Deserialize)]
2276#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2277pub struct CMsgGcToGcMasterSubscribeToCacheResponse {}
2278#[derive(serde::Serialize, serde::Deserialize)]
2279#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2280pub struct CMsgGcToGcMasterSubscribeToCacheAsync {
2281    #[prost(message, optional, tag = "1")]
2282    pub subscribe_msg: ::core::option::Option<CMsgGcToGcMasterSubscribeToCache>,
2283}
2284#[derive(serde::Serialize, serde::Deserialize)]
2285#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2286pub struct CMsgGcToGcMasterUnsubscribeFromCache {
2287    #[prost(uint32, optional, tag = "1")]
2288    pub soid_type: ::core::option::Option<u32>,
2289    #[prost(fixed64, optional, tag = "2")]
2290    pub soid_id: ::core::option::Option<u64>,
2291    #[prost(uint32, repeated, packed = "false", tag = "3")]
2292    pub account_ids: ::prost::alloc::vec::Vec<u32>,
2293    #[prost(fixed64, repeated, packed = "false", tag = "4")]
2294    pub steam_ids: ::prost::alloc::vec::Vec<u64>,
2295}
2296#[derive(serde::Serialize, serde::Deserialize)]
2297#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2298pub struct CMsgGcToGcMasterDestroyCache {
2299    #[prost(uint32, optional, tag = "1")]
2300    pub soid_type: ::core::option::Option<u32>,
2301    #[prost(fixed64, optional, tag = "2")]
2302    pub soid_id: ::core::option::Option<u64>,
2303}
2304#[derive(serde::Serialize, serde::Deserialize)]
2305#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2306#[repr(i32)]
2307pub enum ESourceEngine {
2308    KEseSource1 = 0,
2309    KEseSource2 = 1,
2310}
2311impl ESourceEngine {
2312    /// String value of the enum field names used in the ProtoBuf definition.
2313    ///
2314    /// The values are not transformed in any way and thus are considered stable
2315    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2316    pub fn as_str_name(&self) -> &'static str {
2317        match self {
2318            Self::KEseSource1 => "k_ESE_Source1",
2319            Self::KEseSource2 => "k_ESE_Source2",
2320        }
2321    }
2322    /// Creates an enum from field names used in the ProtoBuf definition.
2323    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2324        match value {
2325            "k_ESE_Source1" => Some(Self::KEseSource1),
2326            "k_ESE_Source2" => Some(Self::KEseSource2),
2327            _ => None,
2328        }
2329    }
2330}
2331#[derive(serde::Serialize, serde::Deserialize)]
2332#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2333#[repr(i32)]
2334pub enum PartnerAccountType {
2335    PartnerNone = 0,
2336    PartnerPerfectWorld = 1,
2337    PartnerInvalid = 3,
2338}
2339impl PartnerAccountType {
2340    /// String value of the enum field names used in the ProtoBuf definition.
2341    ///
2342    /// The values are not transformed in any way and thus are considered stable
2343    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2344    pub fn as_str_name(&self) -> &'static str {
2345        match self {
2346            Self::PartnerNone => "PARTNER_NONE",
2347            Self::PartnerPerfectWorld => "PARTNER_PERFECT_WORLD",
2348            Self::PartnerInvalid => "PARTNER_INVALID",
2349        }
2350    }
2351    /// Creates an enum from field names used in the ProtoBuf definition.
2352    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2353        match value {
2354            "PARTNER_NONE" => Some(Self::PartnerNone),
2355            "PARTNER_PERFECT_WORLD" => Some(Self::PartnerPerfectWorld),
2356            "PARTNER_INVALID" => Some(Self::PartnerInvalid),
2357            _ => None,
2358        }
2359    }
2360}
2361#[derive(serde::Serialize, serde::Deserialize)]
2362#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2363#[repr(i32)]
2364pub enum GcConnectionStatus {
2365    HaveSession = 0,
2366    GcGoingDown = 1,
2367    NoSession = 2,
2368    NoSessionInLogonQueue = 3,
2369    NoSteam = 4,
2370    Suspended = 5,
2371    SteamGoingDown = 6,
2372}
2373impl GcConnectionStatus {
2374    /// String value of the enum field names used in the ProtoBuf definition.
2375    ///
2376    /// The values are not transformed in any way and thus are considered stable
2377    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2378    pub fn as_str_name(&self) -> &'static str {
2379        match self {
2380            Self::HaveSession => "GCConnectionStatus_HAVE_SESSION",
2381            Self::GcGoingDown => "GCConnectionStatus_GC_GOING_DOWN",
2382            Self::NoSession => "GCConnectionStatus_NO_SESSION",
2383            Self::NoSessionInLogonQueue => "GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE",
2384            Self::NoSteam => "GCConnectionStatus_NO_STEAM",
2385            Self::Suspended => "GCConnectionStatus_SUSPENDED",
2386            Self::SteamGoingDown => "GCConnectionStatus_STEAM_GOING_DOWN",
2387        }
2388    }
2389    /// Creates an enum from field names used in the ProtoBuf definition.
2390    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2391        match value {
2392            "GCConnectionStatus_HAVE_SESSION" => Some(Self::HaveSession),
2393            "GCConnectionStatus_GC_GOING_DOWN" => Some(Self::GcGoingDown),
2394            "GCConnectionStatus_NO_SESSION" => Some(Self::NoSession),
2395            "GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE" => {
2396                Some(Self::NoSessionInLogonQueue)
2397            }
2398            "GCConnectionStatus_NO_STEAM" => Some(Self::NoSteam),
2399            "GCConnectionStatus_SUSPENDED" => Some(Self::Suspended),
2400            "GCConnectionStatus_STEAM_GOING_DOWN" => Some(Self::SteamGoingDown),
2401            _ => None,
2402        }
2403    }
2404}
2405#[derive(serde::Serialize, serde::Deserialize)]
2406#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2407pub struct CgcStorePurchaseInitLineItem {
2408    #[prost(uint32, optional, tag = "1")]
2409    pub item_def_id: ::core::option::Option<u32>,
2410    #[prost(uint32, optional, tag = "2")]
2411    pub quantity: ::core::option::Option<u32>,
2412    #[prost(uint32, optional, tag = "3")]
2413    pub cost_in_local_currency: ::core::option::Option<u32>,
2414    #[prost(uint32, optional, tag = "4")]
2415    pub purchase_type: ::core::option::Option<u32>,
2416    #[prost(uint64, optional, tag = "5")]
2417    pub source_reference_id: ::core::option::Option<u64>,
2418    #[prost(int32, optional, tag = "6")]
2419    pub price_index: ::core::option::Option<i32>,
2420}
2421#[derive(serde::Serialize, serde::Deserialize)]
2422#[derive(Clone, PartialEq, ::prost::Message)]
2423pub struct CMsgGcStorePurchaseInit {
2424    #[prost(string, optional, tag = "1")]
2425    pub country: ::core::option::Option<::prost::alloc::string::String>,
2426    #[prost(int32, optional, tag = "2")]
2427    pub language: ::core::option::Option<i32>,
2428    #[prost(int32, optional, tag = "3")]
2429    pub currency: ::core::option::Option<i32>,
2430    #[prost(message, repeated, tag = "4")]
2431    pub line_items: ::prost::alloc::vec::Vec<CgcStorePurchaseInitLineItem>,
2432}
2433#[derive(serde::Serialize, serde::Deserialize)]
2434#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2435pub struct CMsgGcStorePurchaseInitResponse {
2436    #[prost(int32, optional, tag = "1")]
2437    pub result: ::core::option::Option<i32>,
2438    #[prost(uint64, optional, tag = "2")]
2439    pub txn_id: ::core::option::Option<u64>,
2440}
2441#[derive(serde::Serialize, serde::Deserialize)]
2442#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2443pub struct CMsgClientPingData {
2444    #[prost(fixed32, repeated, tag = "4")]
2445    pub relay_codes: ::prost::alloc::vec::Vec<u32>,
2446    #[prost(uint32, repeated, tag = "5")]
2447    pub relay_pings: ::prost::alloc::vec::Vec<u32>,
2448    #[prost(uint32, repeated, tag = "8")]
2449    pub region_codes: ::prost::alloc::vec::Vec<u32>,
2450    #[prost(uint32, repeated, tag = "9")]
2451    pub region_pings: ::prost::alloc::vec::Vec<u32>,
2452    #[prost(uint32, optional, tag = "10")]
2453    pub region_ping_failed_bitmask: ::core::option::Option<u32>,
2454}
2455#[derive(serde::Serialize, serde::Deserialize)]
2456#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2457pub struct CMsgInviteToParty {
2458    #[prost(fixed64, optional, tag = "1")]
2459    pub steam_id: ::core::option::Option<u64>,
2460    #[prost(uint32, optional, tag = "2")]
2461    pub client_version: ::core::option::Option<u32>,
2462    #[prost(uint32, optional, tag = "3")]
2463    pub team_id: ::core::option::Option<u32>,
2464    #[prost(bool, optional, tag = "4")]
2465    pub as_coach: ::core::option::Option<bool>,
2466    #[prost(message, optional, tag = "5")]
2467    pub ping_data: ::core::option::Option<CMsgClientPingData>,
2468}
2469#[derive(serde::Serialize, serde::Deserialize)]
2470#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2471pub struct CMsgInviteToLobby {
2472    #[prost(fixed64, optional, tag = "1")]
2473    pub steam_id: ::core::option::Option<u64>,
2474    #[prost(uint32, optional, tag = "2")]
2475    pub client_version: ::core::option::Option<u32>,
2476}
2477#[derive(serde::Serialize, serde::Deserialize)]
2478#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2479pub struct CMsgInvitationCreated {
2480    #[prost(uint64, optional, tag = "1")]
2481    pub group_id: ::core::option::Option<u64>,
2482    #[prost(fixed64, optional, tag = "2")]
2483    pub steam_id: ::core::option::Option<u64>,
2484    #[prost(bool, optional, tag = "3")]
2485    pub user_offline: ::core::option::Option<bool>,
2486}
2487#[derive(serde::Serialize, serde::Deserialize)]
2488#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2489pub struct CMsgPartyInviteResponse {
2490    #[prost(uint64, optional, tag = "1")]
2491    pub party_id: ::core::option::Option<u64>,
2492    #[prost(bool, optional, tag = "2")]
2493    pub accept: ::core::option::Option<bool>,
2494    #[prost(uint32, optional, tag = "3")]
2495    pub client_version: ::core::option::Option<u32>,
2496    #[prost(message, optional, tag = "8")]
2497    pub ping_data: ::core::option::Option<CMsgClientPingData>,
2498}
2499#[derive(serde::Serialize, serde::Deserialize)]
2500#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2501pub struct CMsgLobbyInviteResponse {
2502    #[prost(fixed64, optional, tag = "1")]
2503    pub lobby_id: ::core::option::Option<u64>,
2504    #[prost(bool, optional, tag = "2")]
2505    pub accept: ::core::option::Option<bool>,
2506    #[prost(uint32, optional, tag = "3")]
2507    pub client_version: ::core::option::Option<u32>,
2508    #[prost(fixed64, optional, tag = "6")]
2509    pub custom_game_crc: ::core::option::Option<u64>,
2510    #[prost(fixed32, optional, tag = "7")]
2511    pub custom_game_timestamp: ::core::option::Option<u32>,
2512}
2513#[derive(serde::Serialize, serde::Deserialize)]
2514#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2515pub struct CMsgKickFromParty {
2516    #[prost(fixed64, optional, tag = "1")]
2517    pub steam_id: ::core::option::Option<u64>,
2518}
2519#[derive(serde::Serialize, serde::Deserialize)]
2520#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2521pub struct CMsgLeaveParty {}
2522#[derive(serde::Serialize, serde::Deserialize)]
2523#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2524pub struct CMsgCustomGameInstallStatus {
2525    #[prost(
2526        enumeration = "ECustomGameInstallStatus",
2527        optional,
2528        tag = "1",
2529        default = "KECustomGameInstallStatusUnknown"
2530    )]
2531    pub status: ::core::option::Option<i32>,
2532    #[prost(string, optional, tag = "2")]
2533    pub message: ::core::option::Option<::prost::alloc::string::String>,
2534    #[prost(fixed32, optional, tag = "3")]
2535    pub latest_timestamp_from_steam: ::core::option::Option<u32>,
2536}
2537#[derive(serde::Serialize, serde::Deserialize)]
2538#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2539pub struct CMsgServerAvailable {
2540    #[prost(message, optional, tag = "1")]
2541    pub custom_game_install_status: ::core::option::Option<CMsgCustomGameInstallStatus>,
2542}
2543#[derive(serde::Serialize, serde::Deserialize)]
2544#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2545pub struct CMsgLanServerAvailable {
2546    #[prost(fixed64, optional, tag = "1")]
2547    pub lobby_id: ::core::option::Option<u64>,
2548}
2549#[derive(serde::Serialize, serde::Deserialize)]
2550#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2551pub struct CsoEconGameAccountClient {
2552    #[prost(uint32, optional, tag = "1", default = "0")]
2553    pub additional_backpack_slots: ::core::option::Option<u32>,
2554    #[prost(bool, optional, tag = "2", default = "false")]
2555    pub trial_account: ::core::option::Option<bool>,
2556    #[prost(bool, optional, tag = "3", default = "true")]
2557    pub eligible_for_online_play: ::core::option::Option<bool>,
2558    #[prost(bool, optional, tag = "4")]
2559    pub need_to_choose_most_helpful_friend: ::core::option::Option<bool>,
2560    #[prost(bool, optional, tag = "5")]
2561    pub in_coaches_list: ::core::option::Option<bool>,
2562    #[prost(fixed32, optional, tag = "6")]
2563    pub trade_ban_expiration: ::core::option::Option<u32>,
2564    #[prost(fixed32, optional, tag = "7")]
2565    pub duel_ban_expiration: ::core::option::Option<u32>,
2566    #[prost(bool, optional, tag = "9", default = "false")]
2567    pub made_first_purchase: ::core::option::Option<bool>,
2568}
2569#[derive(serde::Serialize, serde::Deserialize)]
2570#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2571pub struct CMsgApplyStrangePart {
2572    #[prost(uint64, optional, tag = "1")]
2573    pub strange_part_item_id: ::core::option::Option<u64>,
2574    #[prost(uint64, optional, tag = "2")]
2575    pub item_item_id: ::core::option::Option<u64>,
2576}
2577#[derive(serde::Serialize, serde::Deserialize)]
2578#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2579pub struct CMsgApplyPennantUpgrade {
2580    #[prost(uint64, optional, tag = "1")]
2581    pub upgrade_item_id: ::core::option::Option<u64>,
2582    #[prost(uint64, optional, tag = "2")]
2583    pub pennant_item_id: ::core::option::Option<u64>,
2584}
2585#[derive(serde::Serialize, serde::Deserialize)]
2586#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2587pub struct CMsgApplyEggEssence {
2588    #[prost(uint64, optional, tag = "1")]
2589    pub essence_item_id: ::core::option::Option<u64>,
2590    #[prost(uint64, optional, tag = "2")]
2591    pub egg_item_id: ::core::option::Option<u64>,
2592}
2593#[derive(serde::Serialize, serde::Deserialize)]
2594#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2595pub struct CsoEconItemAttribute {
2596    #[prost(uint32, optional, tag = "1", default = "65535")]
2597    pub def_index: ::core::option::Option<u32>,
2598    #[prost(uint32, optional, tag = "2")]
2599    pub value: ::core::option::Option<u32>,
2600    #[prost(bytes = "vec", optional, tag = "3")]
2601    pub value_bytes: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2602}
2603#[derive(serde::Serialize, serde::Deserialize)]
2604#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2605pub struct CsoEconItemEquipped {
2606    #[prost(uint32, optional, tag = "1")]
2607    pub new_class: ::core::option::Option<u32>,
2608    #[prost(uint32, optional, tag = "2")]
2609    pub new_slot: ::core::option::Option<u32>,
2610}
2611#[derive(serde::Serialize, serde::Deserialize)]
2612#[derive(Clone, PartialEq, ::prost::Message)]
2613pub struct CsoEconItem {
2614    #[prost(uint64, optional, tag = "1")]
2615    pub id: ::core::option::Option<u64>,
2616    #[prost(uint32, optional, tag = "2")]
2617    pub account_id: ::core::option::Option<u32>,
2618    #[prost(uint32, optional, tag = "3")]
2619    pub inventory: ::core::option::Option<u32>,
2620    #[prost(uint32, optional, tag = "4")]
2621    pub def_index: ::core::option::Option<u32>,
2622    #[prost(uint32, optional, tag = "5", default = "1")]
2623    pub quantity: ::core::option::Option<u32>,
2624    #[prost(uint32, optional, tag = "6", default = "1")]
2625    pub level: ::core::option::Option<u32>,
2626    #[prost(uint32, optional, tag = "7", default = "4")]
2627    pub quality: ::core::option::Option<u32>,
2628    #[prost(uint32, optional, tag = "8", default = "0")]
2629    pub flags: ::core::option::Option<u32>,
2630    #[prost(uint32, optional, tag = "9", default = "0")]
2631    pub origin: ::core::option::Option<u32>,
2632    #[prost(message, repeated, tag = "12")]
2633    pub attribute: ::prost::alloc::vec::Vec<CsoEconItemAttribute>,
2634    #[prost(message, optional, boxed, tag = "13")]
2635    pub interior_item: ::core::option::Option<::prost::alloc::boxed::Box<CsoEconItem>>,
2636    #[prost(uint32, optional, tag = "15", default = "0")]
2637    pub style: ::core::option::Option<u32>,
2638    #[prost(uint64, optional, tag = "16")]
2639    pub original_id: ::core::option::Option<u64>,
2640    #[prost(message, repeated, tag = "18")]
2641    pub equipped_state: ::prost::alloc::vec::Vec<CsoEconItemEquipped>,
2642}
2643#[derive(serde::Serialize, serde::Deserialize)]
2644#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2645pub struct CMsgSortItems {
2646    #[prost(uint32, optional, tag = "1")]
2647    pub sort_type: ::core::option::Option<u32>,
2648}
2649#[derive(serde::Serialize, serde::Deserialize)]
2650#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2651pub struct CMsgItemAcknowledged {
2652    #[prost(uint32, optional, tag = "1")]
2653    pub account_id: ::core::option::Option<u32>,
2654    #[prost(uint32, optional, tag = "2")]
2655    pub inventory: ::core::option::Option<u32>,
2656    #[prost(uint32, optional, tag = "3")]
2657    pub def_index: ::core::option::Option<u32>,
2658    #[prost(uint32, optional, tag = "4")]
2659    pub quality: ::core::option::Option<u32>,
2660    #[prost(uint32, optional, tag = "5")]
2661    pub rarity: ::core::option::Option<u32>,
2662    #[prost(uint32, optional, tag = "6")]
2663    pub origin: ::core::option::Option<u32>,
2664}
2665#[derive(serde::Serialize, serde::Deserialize)]
2666#[derive(Clone, PartialEq, ::prost::Message)]
2667pub struct CMsgSetItemPositions {
2668    #[prost(message, repeated, tag = "1")]
2669    pub item_positions: ::prost::alloc::vec::Vec<c_msg_set_item_positions::ItemPosition>,
2670}
2671/// Nested message and enum types in `CMsgSetItemPositions`.
2672pub mod c_msg_set_item_positions {
2673    #[derive(serde::Serialize, serde::Deserialize)]
2674    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2675    pub struct ItemPosition {
2676        #[prost(uint64, optional, tag = "1")]
2677        pub item_id: ::core::option::Option<u64>,
2678        #[prost(uint32, optional, tag = "2")]
2679        pub position: ::core::option::Option<u32>,
2680    }
2681}
2682#[derive(serde::Serialize, serde::Deserialize)]
2683#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2684pub struct CMsgGcStorePurchaseCancel {
2685    #[prost(uint64, optional, tag = "1")]
2686    pub txn_id: ::core::option::Option<u64>,
2687}
2688#[derive(serde::Serialize, serde::Deserialize)]
2689#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2690pub struct CMsgGcStorePurchaseCancelResponse {
2691    #[prost(uint32, optional, tag = "1")]
2692    pub result: ::core::option::Option<u32>,
2693}
2694#[derive(serde::Serialize, serde::Deserialize)]
2695#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2696pub struct CMsgGcStorePurchaseFinalize {
2697    #[prost(uint64, optional, tag = "1")]
2698    pub txn_id: ::core::option::Option<u64>,
2699}
2700#[derive(serde::Serialize, serde::Deserialize)]
2701#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2702pub struct CMsgGcStorePurchaseFinalizeResponse {
2703    #[prost(uint32, optional, tag = "1")]
2704    pub result: ::core::option::Option<u32>,
2705    #[prost(uint64, repeated, packed = "false", tag = "2")]
2706    pub item_ids: ::prost::alloc::vec::Vec<u64>,
2707}
2708#[derive(serde::Serialize, serde::Deserialize)]
2709#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2710pub struct CMsgGcToGcBannedWordListUpdated {
2711    #[prost(uint32, optional, tag = "1")]
2712    pub group_id: ::core::option::Option<u32>,
2713}
2714#[derive(serde::Serialize, serde::Deserialize)]
2715#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2716pub struct CMsgGcToGcDirtySdoCache {
2717    #[prost(uint32, optional, tag = "1")]
2718    pub sdo_type: ::core::option::Option<u32>,
2719    #[prost(uint64, optional, tag = "2")]
2720    pub key_uint64: ::core::option::Option<u64>,
2721}
2722#[derive(serde::Serialize, serde::Deserialize)]
2723#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2724pub struct CMsgSdoNoMemcached {}
2725#[derive(serde::Serialize, serde::Deserialize)]
2726#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2727pub struct CMsgGcToGcUpdateSqlKeyValue {
2728    #[prost(string, optional, tag = "1")]
2729    pub key_name: ::core::option::Option<::prost::alloc::string::String>,
2730}
2731#[derive(serde::Serialize, serde::Deserialize)]
2732#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2733pub struct CMsgGcServerVersionUpdated {
2734    #[prost(uint32, optional, tag = "1")]
2735    pub server_version: ::core::option::Option<u32>,
2736}
2737#[derive(serde::Serialize, serde::Deserialize)]
2738#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2739pub struct CMsgGcClientVersionUpdated {
2740    #[prost(uint32, optional, tag = "1")]
2741    pub client_version: ::core::option::Option<u32>,
2742}
2743#[derive(serde::Serialize, serde::Deserialize)]
2744#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2745pub struct CMsgGcToGcWebApiAccountChanged {}
2746#[derive(serde::Serialize, serde::Deserialize)]
2747#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2748pub struct CMsgExtractGems {
2749    #[prost(uint64, optional, tag = "1")]
2750    pub tool_item_id: ::core::option::Option<u64>,
2751    #[prost(uint64, optional, tag = "2")]
2752    pub item_item_id: ::core::option::Option<u64>,
2753    #[prost(uint32, optional, tag = "3", default = "65535")]
2754    pub item_socket_id: ::core::option::Option<u32>,
2755}
2756#[derive(serde::Serialize, serde::Deserialize)]
2757#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2758pub struct CMsgExtractGemsResponse {
2759    #[prost(uint64, optional, tag = "1")]
2760    pub item_id: ::core::option::Option<u64>,
2761    #[prost(
2762        enumeration = "c_msg_extract_gems_response::EExtractGems",
2763        optional,
2764        tag = "2",
2765        default = "KExtractGemsSucceeded"
2766    )]
2767    pub response: ::core::option::Option<i32>,
2768}
2769/// Nested message and enum types in `CMsgExtractGemsResponse`.
2770pub mod c_msg_extract_gems_response {
2771    #[derive(serde::Serialize, serde::Deserialize)]
2772    #[derive(
2773        Clone,
2774        Copy,
2775        Debug,
2776        PartialEq,
2777        Eq,
2778        Hash,
2779        PartialOrd,
2780        Ord,
2781        ::prost::Enumeration
2782    )]
2783    #[repr(i32)]
2784    pub enum EExtractGems {
2785        KExtractGemsSucceeded = 0,
2786        KExtractGemsFailedToolIsInvalid = 1,
2787        KExtractGemsFailedItemIsInvalid = 2,
2788        KExtractGemsFailedToolCannotRemoveGem = 3,
2789        KExtractGemsFailedFailedToRemoveGem = 4,
2790    }
2791    impl EExtractGems {
2792        /// String value of the enum field names used in the ProtoBuf definition.
2793        ///
2794        /// The values are not transformed in any way and thus are considered stable
2795        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2796        pub fn as_str_name(&self) -> &'static str {
2797            match self {
2798                Self::KExtractGemsSucceeded => "k_ExtractGems_Succeeded",
2799                Self::KExtractGemsFailedToolIsInvalid => {
2800                    "k_ExtractGems_Failed_ToolIsInvalid"
2801                }
2802                Self::KExtractGemsFailedItemIsInvalid => {
2803                    "k_ExtractGems_Failed_ItemIsInvalid"
2804                }
2805                Self::KExtractGemsFailedToolCannotRemoveGem => {
2806                    "k_ExtractGems_Failed_ToolCannotRemoveGem"
2807                }
2808                Self::KExtractGemsFailedFailedToRemoveGem => {
2809                    "k_ExtractGems_Failed_FailedToRemoveGem"
2810                }
2811            }
2812        }
2813        /// Creates an enum from field names used in the ProtoBuf definition.
2814        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2815            match value {
2816                "k_ExtractGems_Succeeded" => Some(Self::KExtractGemsSucceeded),
2817                "k_ExtractGems_Failed_ToolIsInvalid" => {
2818                    Some(Self::KExtractGemsFailedToolIsInvalid)
2819                }
2820                "k_ExtractGems_Failed_ItemIsInvalid" => {
2821                    Some(Self::KExtractGemsFailedItemIsInvalid)
2822                }
2823                "k_ExtractGems_Failed_ToolCannotRemoveGem" => {
2824                    Some(Self::KExtractGemsFailedToolCannotRemoveGem)
2825                }
2826                "k_ExtractGems_Failed_FailedToRemoveGem" => {
2827                    Some(Self::KExtractGemsFailedFailedToRemoveGem)
2828                }
2829                _ => None,
2830            }
2831        }
2832    }
2833}
2834#[derive(serde::Serialize, serde::Deserialize)]
2835#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2836pub struct CMsgAddSocket {
2837    #[prost(uint64, optional, tag = "1")]
2838    pub tool_item_id: ::core::option::Option<u64>,
2839    #[prost(uint64, optional, tag = "2")]
2840    pub item_item_id: ::core::option::Option<u64>,
2841    #[prost(bool, optional, tag = "3")]
2842    pub unusual: ::core::option::Option<bool>,
2843}
2844#[derive(serde::Serialize, serde::Deserialize)]
2845#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2846pub struct CMsgAddSocketResponse {
2847    #[prost(uint64, optional, tag = "1")]
2848    pub item_id: ::core::option::Option<u64>,
2849    #[prost(uint32, repeated, packed = "false", tag = "2")]
2850    pub updated_socket_index: ::prost::alloc::vec::Vec<u32>,
2851    #[prost(
2852        enumeration = "c_msg_add_socket_response::EAddSocket",
2853        optional,
2854        tag = "3",
2855        default = "KAddSocketSucceeded"
2856    )]
2857    pub response: ::core::option::Option<i32>,
2858}
2859/// Nested message and enum types in `CMsgAddSocketResponse`.
2860pub mod c_msg_add_socket_response {
2861    #[derive(serde::Serialize, serde::Deserialize)]
2862    #[derive(
2863        Clone,
2864        Copy,
2865        Debug,
2866        PartialEq,
2867        Eq,
2868        Hash,
2869        PartialOrd,
2870        Ord,
2871        ::prost::Enumeration
2872    )]
2873    #[repr(i32)]
2874    pub enum EAddSocket {
2875        KAddSocketSucceeded = 0,
2876        KAddSocketFailedToolIsInvalid = 1,
2877        KAddSocketFailedItemCannotBeSocketed = 2,
2878        KAddSocketFailedFailedToAddSocket = 3,
2879    }
2880    impl EAddSocket {
2881        /// String value of the enum field names used in the ProtoBuf definition.
2882        ///
2883        /// The values are not transformed in any way and thus are considered stable
2884        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2885        pub fn as_str_name(&self) -> &'static str {
2886            match self {
2887                Self::KAddSocketSucceeded => "k_AddSocket_Succeeded",
2888                Self::KAddSocketFailedToolIsInvalid => "k_AddSocket_Failed_ToolIsInvalid",
2889                Self::KAddSocketFailedItemCannotBeSocketed => {
2890                    "k_AddSocket_Failed_ItemCannotBeSocketed"
2891                }
2892                Self::KAddSocketFailedFailedToAddSocket => {
2893                    "k_AddSocket_Failed_FailedToAddSocket"
2894                }
2895            }
2896        }
2897        /// Creates an enum from field names used in the ProtoBuf definition.
2898        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2899            match value {
2900                "k_AddSocket_Succeeded" => Some(Self::KAddSocketSucceeded),
2901                "k_AddSocket_Failed_ToolIsInvalid" => {
2902                    Some(Self::KAddSocketFailedToolIsInvalid)
2903                }
2904                "k_AddSocket_Failed_ItemCannotBeSocketed" => {
2905                    Some(Self::KAddSocketFailedItemCannotBeSocketed)
2906                }
2907                "k_AddSocket_Failed_FailedToAddSocket" => {
2908                    Some(Self::KAddSocketFailedFailedToAddSocket)
2909                }
2910                _ => None,
2911            }
2912        }
2913    }
2914}
2915#[derive(serde::Serialize, serde::Deserialize)]
2916#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2917pub struct CMsgAddItemToSocketData {
2918    #[prost(uint64, optional, tag = "1")]
2919    pub gem_item_id: ::core::option::Option<u64>,
2920    #[prost(uint32, optional, tag = "2", default = "65535")]
2921    pub socket_index: ::core::option::Option<u32>,
2922}
2923#[derive(serde::Serialize, serde::Deserialize)]
2924#[derive(Clone, PartialEq, ::prost::Message)]
2925pub struct CMsgAddItemToSocket {
2926    #[prost(uint64, optional, tag = "1")]
2927    pub item_item_id: ::core::option::Option<u64>,
2928    #[prost(message, repeated, tag = "2")]
2929    pub gems_to_socket: ::prost::alloc::vec::Vec<CMsgAddItemToSocketData>,
2930}
2931#[derive(serde::Serialize, serde::Deserialize)]
2932#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2933pub struct CMsgAddItemToSocketResponse {
2934    #[prost(uint64, optional, tag = "1")]
2935    pub item_item_id: ::core::option::Option<u64>,
2936    #[prost(uint32, repeated, packed = "false", tag = "2")]
2937    pub updated_socket_index: ::prost::alloc::vec::Vec<u32>,
2938    #[prost(
2939        enumeration = "c_msg_add_item_to_socket_response::EAddGem",
2940        optional,
2941        tag = "3",
2942        default = "KAddGemSucceeded"
2943    )]
2944    pub response: ::core::option::Option<i32>,
2945}
2946/// Nested message and enum types in `CMsgAddItemToSocketResponse`.
2947pub mod c_msg_add_item_to_socket_response {
2948    #[derive(serde::Serialize, serde::Deserialize)]
2949    #[derive(
2950        Clone,
2951        Copy,
2952        Debug,
2953        PartialEq,
2954        Eq,
2955        Hash,
2956        PartialOrd,
2957        Ord,
2958        ::prost::Enumeration
2959    )]
2960    #[repr(i32)]
2961    pub enum EAddGem {
2962        KAddGemSucceeded = 0,
2963        KAddGemFailedGemIsInvalid = 1,
2964        KAddGemFailedItemIsInvalid = 2,
2965        KAddGemFailedFailedToAddGem = 3,
2966        KAddGemFailedInvalidGemTypeForSocket = 4,
2967        KAddGemFailedInvalidGemTypeForHero = 5,
2968        KAddGemFailedInvalidGemTypeForSlot = 6,
2969        KAddGemFailedSocketContainsUnremovableGem = 7,
2970    }
2971    impl EAddGem {
2972        /// String value of the enum field names used in the ProtoBuf definition.
2973        ///
2974        /// The values are not transformed in any way and thus are considered stable
2975        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2976        pub fn as_str_name(&self) -> &'static str {
2977            match self {
2978                Self::KAddGemSucceeded => "k_AddGem_Succeeded",
2979                Self::KAddGemFailedGemIsInvalid => "k_AddGem_Failed_GemIsInvalid",
2980                Self::KAddGemFailedItemIsInvalid => "k_AddGem_Failed_ItemIsInvalid",
2981                Self::KAddGemFailedFailedToAddGem => "k_AddGem_Failed_FailedToAddGem",
2982                Self::KAddGemFailedInvalidGemTypeForSocket => {
2983                    "k_AddGem_Failed_InvalidGemTypeForSocket"
2984                }
2985                Self::KAddGemFailedInvalidGemTypeForHero => {
2986                    "k_AddGem_Failed_InvalidGemTypeForHero"
2987                }
2988                Self::KAddGemFailedInvalidGemTypeForSlot => {
2989                    "k_AddGem_Failed_InvalidGemTypeForSlot"
2990                }
2991                Self::KAddGemFailedSocketContainsUnremovableGem => {
2992                    "k_AddGem_Failed_SocketContainsUnremovableGem"
2993                }
2994            }
2995        }
2996        /// Creates an enum from field names used in the ProtoBuf definition.
2997        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2998            match value {
2999                "k_AddGem_Succeeded" => Some(Self::KAddGemSucceeded),
3000                "k_AddGem_Failed_GemIsInvalid" => Some(Self::KAddGemFailedGemIsInvalid),
3001                "k_AddGem_Failed_ItemIsInvalid" => Some(Self::KAddGemFailedItemIsInvalid),
3002                "k_AddGem_Failed_FailedToAddGem" => {
3003                    Some(Self::KAddGemFailedFailedToAddGem)
3004                }
3005                "k_AddGem_Failed_InvalidGemTypeForSocket" => {
3006                    Some(Self::KAddGemFailedInvalidGemTypeForSocket)
3007                }
3008                "k_AddGem_Failed_InvalidGemTypeForHero" => {
3009                    Some(Self::KAddGemFailedInvalidGemTypeForHero)
3010                }
3011                "k_AddGem_Failed_InvalidGemTypeForSlot" => {
3012                    Some(Self::KAddGemFailedInvalidGemTypeForSlot)
3013                }
3014                "k_AddGem_Failed_SocketContainsUnremovableGem" => {
3015                    Some(Self::KAddGemFailedSocketContainsUnremovableGem)
3016                }
3017                _ => None,
3018            }
3019        }
3020    }
3021}
3022#[derive(serde::Serialize, serde::Deserialize)]
3023#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3024pub struct CMsgResetStrangeGemCount {
3025    #[prost(uint64, optional, tag = "1")]
3026    pub item_item_id: ::core::option::Option<u64>,
3027    #[prost(uint32, optional, tag = "2", default = "65535")]
3028    pub socket_index: ::core::option::Option<u32>,
3029}
3030#[derive(serde::Serialize, serde::Deserialize)]
3031#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3032pub struct CMsgResetStrangeGemCountResponse {
3033    #[prost(
3034        enumeration = "c_msg_reset_strange_gem_count_response::EResetGem",
3035        optional,
3036        tag = "1",
3037        default = "KResetGemSucceeded"
3038    )]
3039    pub response: ::core::option::Option<i32>,
3040}
3041/// Nested message and enum types in `CMsgResetStrangeGemCountResponse`.
3042pub mod c_msg_reset_strange_gem_count_response {
3043    #[derive(serde::Serialize, serde::Deserialize)]
3044    #[derive(
3045        Clone,
3046        Copy,
3047        Debug,
3048        PartialEq,
3049        Eq,
3050        Hash,
3051        PartialOrd,
3052        Ord,
3053        ::prost::Enumeration
3054    )]
3055    #[repr(i32)]
3056    pub enum EResetGem {
3057        KResetGemSucceeded = 0,
3058        KResetGemFailedFailedToResetGem = 1,
3059        KResetGemFailedItemIsInvalid = 2,
3060        KResetGemFailedInvalidSocketId = 3,
3061        KResetGemFailedSocketCannotBeReset = 4,
3062    }
3063    impl EResetGem {
3064        /// String value of the enum field names used in the ProtoBuf definition.
3065        ///
3066        /// The values are not transformed in any way and thus are considered stable
3067        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3068        pub fn as_str_name(&self) -> &'static str {
3069            match self {
3070                Self::KResetGemSucceeded => "k_ResetGem_Succeeded",
3071                Self::KResetGemFailedFailedToResetGem => {
3072                    "k_ResetGem_Failed_FailedToResetGem"
3073                }
3074                Self::KResetGemFailedItemIsInvalid => "k_ResetGem_Failed_ItemIsInvalid",
3075                Self::KResetGemFailedInvalidSocketId => {
3076                    "k_ResetGem_Failed_InvalidSocketId"
3077                }
3078                Self::KResetGemFailedSocketCannotBeReset => {
3079                    "k_ResetGem_Failed_SocketCannotBeReset"
3080                }
3081            }
3082        }
3083        /// Creates an enum from field names used in the ProtoBuf definition.
3084        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3085            match value {
3086                "k_ResetGem_Succeeded" => Some(Self::KResetGemSucceeded),
3087                "k_ResetGem_Failed_FailedToResetGem" => {
3088                    Some(Self::KResetGemFailedFailedToResetGem)
3089                }
3090                "k_ResetGem_Failed_ItemIsInvalid" => {
3091                    Some(Self::KResetGemFailedItemIsInvalid)
3092                }
3093                "k_ResetGem_Failed_InvalidSocketId" => {
3094                    Some(Self::KResetGemFailedInvalidSocketId)
3095                }
3096                "k_ResetGem_Failed_SocketCannotBeReset" => {
3097                    Some(Self::KResetGemFailedSocketCannotBeReset)
3098                }
3099                _ => None,
3100            }
3101        }
3102    }
3103}
3104#[derive(serde::Serialize, serde::Deserialize)]
3105#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3106pub struct CMsgGcToClientPollFileRequest {
3107    #[prost(string, optional, tag = "1")]
3108    pub file_name: ::core::option::Option<::prost::alloc::string::String>,
3109    #[prost(uint32, optional, tag = "2")]
3110    pub client_version: ::core::option::Option<u32>,
3111    #[prost(uint32, optional, tag = "3")]
3112    pub poll_id: ::core::option::Option<u32>,
3113}
3114#[derive(serde::Serialize, serde::Deserialize)]
3115#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3116pub struct CMsgGcToClientPollFileResponse {
3117    #[prost(uint32, optional, tag = "1")]
3118    pub poll_id: ::core::option::Option<u32>,
3119    #[prost(uint32, optional, tag = "2")]
3120    pub file_size: ::core::option::Option<u32>,
3121    #[prost(uint32, optional, tag = "3")]
3122    pub file_crc: ::core::option::Option<u32>,
3123}
3124#[derive(serde::Serialize, serde::Deserialize)]
3125#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3126pub struct CMsgGcToGcPerformManualOp {
3127    #[prost(uint64, optional, tag = "1")]
3128    pub op_id: ::core::option::Option<u64>,
3129    #[prost(uint32, optional, tag = "2")]
3130    pub group_code: ::core::option::Option<u32>,
3131}
3132#[derive(serde::Serialize, serde::Deserialize)]
3133#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3134pub struct CMsgGcToGcPerformManualOpCompleted {
3135    #[prost(bool, optional, tag = "1")]
3136    pub success: ::core::option::Option<bool>,
3137    #[prost(int32, optional, tag = "2", default = "-1")]
3138    pub source_gc: ::core::option::Option<i32>,
3139}
3140#[derive(serde::Serialize, serde::Deserialize)]
3141#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3142pub struct CMsgGcToGcReloadServerRegionSettings {}
3143#[derive(serde::Serialize, serde::Deserialize)]
3144#[derive(Clone, PartialEq, ::prost::Message)]
3145pub struct CMsgGcAdditionalWelcomeMsgList {
3146    #[prost(message, repeated, tag = "1")]
3147    pub welcome_messages: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
3148}
3149#[derive(serde::Serialize, serde::Deserialize)]
3150#[derive(Clone, PartialEq, ::prost::Message)]
3151pub struct CMsgApplyRemoteConVars {
3152    #[prost(message, repeated, tag = "1")]
3153    pub con_vars: ::prost::alloc::vec::Vec<c_msg_apply_remote_con_vars::ConVar>,
3154}
3155/// Nested message and enum types in `CMsgApplyRemoteConVars`.
3156pub mod c_msg_apply_remote_con_vars {
3157    #[derive(serde::Serialize, serde::Deserialize)]
3158    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3159    pub struct ConVar {
3160        #[prost(string, optional, tag = "1")]
3161        pub name: ::core::option::Option<::prost::alloc::string::String>,
3162        #[prost(string, optional, tag = "2")]
3163        pub value: ::core::option::Option<::prost::alloc::string::String>,
3164        #[prost(uint32, optional, tag = "3")]
3165        pub version_min: ::core::option::Option<u32>,
3166        #[prost(uint32, optional, tag = "4")]
3167        pub version_max: ::core::option::Option<u32>,
3168        #[prost(
3169            enumeration = "super::EgcPlatform",
3170            optional,
3171            tag = "5",
3172            default = "KEGcPlatformNone"
3173        )]
3174        pub platform: ::core::option::Option<i32>,
3175    }
3176}
3177#[derive(serde::Serialize, serde::Deserialize)]
3178#[derive(Clone, PartialEq, ::prost::Message)]
3179pub struct CMsgGcToClientApplyRemoteConVars {
3180    #[prost(message, optional, tag = "1")]
3181    pub msg: ::core::option::Option<CMsgApplyRemoteConVars>,
3182}
3183#[derive(serde::Serialize, serde::Deserialize)]
3184#[derive(Clone, PartialEq, ::prost::Message)]
3185pub struct CMsgGcToServerApplyRemoteConVars {
3186    #[prost(message, optional, tag = "1")]
3187    pub msg: ::core::option::Option<CMsgApplyRemoteConVars>,
3188}
3189#[derive(serde::Serialize, serde::Deserialize)]
3190#[derive(Clone, PartialEq, ::prost::Message)]
3191pub struct CMsgClientToGcIntegrityStatus {
3192    #[prost(string, optional, tag = "1")]
3193    pub report: ::core::option::Option<::prost::alloc::string::String>,
3194    #[prost(bool, optional, tag = "2")]
3195    pub secure_allowed: ::core::option::Option<bool>,
3196    #[prost(message, repeated, tag = "3")]
3197    pub diagnostics: ::prost::alloc::vec::Vec<
3198        c_msg_client_to_gc_integrity_status::Keyvalue,
3199    >,
3200}
3201/// Nested message and enum types in `CMsgClientToGCIntegrityStatus`.
3202pub mod c_msg_client_to_gc_integrity_status {
3203    #[derive(serde::Serialize, serde::Deserialize)]
3204    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3205    pub struct Keyvalue {
3206        #[prost(uint32, optional, tag = "1")]
3207        pub id: ::core::option::Option<u32>,
3208        #[prost(uint32, optional, tag = "2")]
3209        pub extended: ::core::option::Option<u32>,
3210        #[prost(uint64, optional, tag = "3")]
3211        pub value: ::core::option::Option<u64>,
3212        #[prost(string, optional, tag = "4")]
3213        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
3214    }
3215}
3216#[derive(serde::Serialize, serde::Deserialize)]
3217#[derive(Clone, PartialEq, ::prost::Message)]
3218pub struct CMsgClientToGcAggregateMetrics {
3219    #[prost(message, repeated, tag = "1")]
3220    pub metrics: ::prost::alloc::vec::Vec<
3221        c_msg_client_to_gc_aggregate_metrics::SingleMetric,
3222    >,
3223}
3224/// Nested message and enum types in `CMsgClientToGCAggregateMetrics`.
3225pub mod c_msg_client_to_gc_aggregate_metrics {
3226    #[derive(serde::Serialize, serde::Deserialize)]
3227    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3228    pub struct SingleMetric {
3229        #[prost(string, optional, tag = "1")]
3230        pub metric_name: ::core::option::Option<::prost::alloc::string::String>,
3231        #[prost(uint32, optional, tag = "2")]
3232        pub metric_count: ::core::option::Option<u32>,
3233    }
3234}
3235#[derive(serde::Serialize, serde::Deserialize)]
3236#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3237pub struct CMsgGcToClientAggregateMetricsBackoff {
3238    #[prost(float, optional, tag = "1")]
3239    pub upload_rate_modifier: ::core::option::Option<f32>,
3240}
3241#[derive(serde::Serialize, serde::Deserialize)]
3242#[derive(Clone, PartialEq, ::prost::Message)]
3243pub struct CMsgGcToServerSteamLearnAccessTokensChanged {
3244    #[prost(message, optional, tag = "1")]
3245    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
3246}
3247#[derive(serde::Serialize, serde::Deserialize)]
3248#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3249pub struct CMsgGcToServerSteamLearnUseHttp {
3250    #[prost(bool, optional, tag = "1")]
3251    pub use_http: ::core::option::Option<bool>,
3252}
3253#[derive(serde::Serialize, serde::Deserialize)]
3254#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3255#[repr(i32)]
3256pub enum EgcBaseMsg {
3257    KEMsgGcInviteToParty = 4501,
3258    KEMsgGcInvitationCreated = 4502,
3259    KEMsgGcPartyInviteResponse = 4503,
3260    KEMsgGcKickFromParty = 4504,
3261    KEMsgGcLeaveParty = 4505,
3262    KEMsgGcServerAvailable = 4506,
3263    KEMsgGcClientConnectToServer = 4507,
3264    KEMsgGcGameServerInfo = 4508,
3265    KEMsgGclanServerAvailable = 4511,
3266    KEMsgGcInviteToLobby = 4512,
3267    KEMsgGcLobbyInviteResponse = 4513,
3268    KEMsgGcToClientPollFileRequest = 4514,
3269    KEMsgGcToClientPollFileResponse = 4515,
3270    KEMsgGcToGcPerformManualOp = 4516,
3271    KEMsgGcToGcPerformManualOpCompleted = 4517,
3272    KEMsgGcToGcReloadServerRegionSettings = 4518,
3273    KEMsgGcAdditionalWelcomeMsgList = 4519,
3274    KEMsgGcToClientApplyRemoteConVars = 4520,
3275    KEMsgGcToServerApplyRemoteConVars = 4521,
3276    KEMsgClientToGcIntegrityStatus = 4522,
3277    KEMsgClientToGcAggregateMetrics = 4523,
3278    KEMsgGcToClientAggregateMetricsBackoff = 4524,
3279    KEMsgGcToServerSteamLearnAccessTokensChanged = 4525,
3280    KEMsgGcToServerSteamLearnUseHttp = 4526,
3281}
3282impl EgcBaseMsg {
3283    /// String value of the enum field names used in the ProtoBuf definition.
3284    ///
3285    /// The values are not transformed in any way and thus are considered stable
3286    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3287    pub fn as_str_name(&self) -> &'static str {
3288        match self {
3289            Self::KEMsgGcInviteToParty => "k_EMsgGCInviteToParty",
3290            Self::KEMsgGcInvitationCreated => "k_EMsgGCInvitationCreated",
3291            Self::KEMsgGcPartyInviteResponse => "k_EMsgGCPartyInviteResponse",
3292            Self::KEMsgGcKickFromParty => "k_EMsgGCKickFromParty",
3293            Self::KEMsgGcLeaveParty => "k_EMsgGCLeaveParty",
3294            Self::KEMsgGcServerAvailable => "k_EMsgGCServerAvailable",
3295            Self::KEMsgGcClientConnectToServer => "k_EMsgGCClientConnectToServer",
3296            Self::KEMsgGcGameServerInfo => "k_EMsgGCGameServerInfo",
3297            Self::KEMsgGclanServerAvailable => "k_EMsgGCLANServerAvailable",
3298            Self::KEMsgGcInviteToLobby => "k_EMsgGCInviteToLobby",
3299            Self::KEMsgGcLobbyInviteResponse => "k_EMsgGCLobbyInviteResponse",
3300            Self::KEMsgGcToClientPollFileRequest => "k_EMsgGCToClientPollFileRequest",
3301            Self::KEMsgGcToClientPollFileResponse => "k_EMsgGCToClientPollFileResponse",
3302            Self::KEMsgGcToGcPerformManualOp => "k_EMsgGCToGCPerformManualOp",
3303            Self::KEMsgGcToGcPerformManualOpCompleted => {
3304                "k_EMsgGCToGCPerformManualOpCompleted"
3305            }
3306            Self::KEMsgGcToGcReloadServerRegionSettings => {
3307                "k_EMsgGCToGCReloadServerRegionSettings"
3308            }
3309            Self::KEMsgGcAdditionalWelcomeMsgList => "k_EMsgGCAdditionalWelcomeMsgList",
3310            Self::KEMsgGcToClientApplyRemoteConVars => {
3311                "k_EMsgGCToClientApplyRemoteConVars"
3312            }
3313            Self::KEMsgGcToServerApplyRemoteConVars => {
3314                "k_EMsgGCToServerApplyRemoteConVars"
3315            }
3316            Self::KEMsgClientToGcIntegrityStatus => "k_EMsgClientToGCIntegrityStatus",
3317            Self::KEMsgClientToGcAggregateMetrics => "k_EMsgClientToGCAggregateMetrics",
3318            Self::KEMsgGcToClientAggregateMetricsBackoff => {
3319                "k_EMsgGCToClientAggregateMetricsBackoff"
3320            }
3321            Self::KEMsgGcToServerSteamLearnAccessTokensChanged => {
3322                "k_EMsgGCToServerSteamLearnAccessTokensChanged"
3323            }
3324            Self::KEMsgGcToServerSteamLearnUseHttp => "k_EMsgGCToServerSteamLearnUseHTTP",
3325        }
3326    }
3327    /// Creates an enum from field names used in the ProtoBuf definition.
3328    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3329        match value {
3330            "k_EMsgGCInviteToParty" => Some(Self::KEMsgGcInviteToParty),
3331            "k_EMsgGCInvitationCreated" => Some(Self::KEMsgGcInvitationCreated),
3332            "k_EMsgGCPartyInviteResponse" => Some(Self::KEMsgGcPartyInviteResponse),
3333            "k_EMsgGCKickFromParty" => Some(Self::KEMsgGcKickFromParty),
3334            "k_EMsgGCLeaveParty" => Some(Self::KEMsgGcLeaveParty),
3335            "k_EMsgGCServerAvailable" => Some(Self::KEMsgGcServerAvailable),
3336            "k_EMsgGCClientConnectToServer" => Some(Self::KEMsgGcClientConnectToServer),
3337            "k_EMsgGCGameServerInfo" => Some(Self::KEMsgGcGameServerInfo),
3338            "k_EMsgGCLANServerAvailable" => Some(Self::KEMsgGclanServerAvailable),
3339            "k_EMsgGCInviteToLobby" => Some(Self::KEMsgGcInviteToLobby),
3340            "k_EMsgGCLobbyInviteResponse" => Some(Self::KEMsgGcLobbyInviteResponse),
3341            "k_EMsgGCToClientPollFileRequest" => {
3342                Some(Self::KEMsgGcToClientPollFileRequest)
3343            }
3344            "k_EMsgGCToClientPollFileResponse" => {
3345                Some(Self::KEMsgGcToClientPollFileResponse)
3346            }
3347            "k_EMsgGCToGCPerformManualOp" => Some(Self::KEMsgGcToGcPerformManualOp),
3348            "k_EMsgGCToGCPerformManualOpCompleted" => {
3349                Some(Self::KEMsgGcToGcPerformManualOpCompleted)
3350            }
3351            "k_EMsgGCToGCReloadServerRegionSettings" => {
3352                Some(Self::KEMsgGcToGcReloadServerRegionSettings)
3353            }
3354            "k_EMsgGCAdditionalWelcomeMsgList" => {
3355                Some(Self::KEMsgGcAdditionalWelcomeMsgList)
3356            }
3357            "k_EMsgGCToClientApplyRemoteConVars" => {
3358                Some(Self::KEMsgGcToClientApplyRemoteConVars)
3359            }
3360            "k_EMsgGCToServerApplyRemoteConVars" => {
3361                Some(Self::KEMsgGcToServerApplyRemoteConVars)
3362            }
3363            "k_EMsgClientToGCIntegrityStatus" => {
3364                Some(Self::KEMsgClientToGcIntegrityStatus)
3365            }
3366            "k_EMsgClientToGCAggregateMetrics" => {
3367                Some(Self::KEMsgClientToGcAggregateMetrics)
3368            }
3369            "k_EMsgGCToClientAggregateMetricsBackoff" => {
3370                Some(Self::KEMsgGcToClientAggregateMetricsBackoff)
3371            }
3372            "k_EMsgGCToServerSteamLearnAccessTokensChanged" => {
3373                Some(Self::KEMsgGcToServerSteamLearnAccessTokensChanged)
3374            }
3375            "k_EMsgGCToServerSteamLearnUseHTTP" => {
3376                Some(Self::KEMsgGcToServerSteamLearnUseHttp)
3377            }
3378            _ => None,
3379        }
3380    }
3381}
3382#[derive(serde::Serialize, serde::Deserialize)]
3383#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3384#[repr(i32)]
3385pub enum ECustomGameInstallStatus {
3386    KECustomGameInstallStatusUnknown = 0,
3387    KECustomGameInstallStatusReady = 1,
3388    KECustomGameInstallStatusBusy = 2,
3389    KECustomGameInstallStatusFailedGeneric = 101,
3390    KECustomGameInstallStatusFailedInternalError = 102,
3391    KECustomGameInstallStatusRequestedTimestampTooOld = 103,
3392    KECustomGameInstallStatusRequestedTimestampTooNew = 104,
3393    KECustomGameInstallStatusCrcMismatch = 105,
3394    KECustomGameInstallStatusFailedSteam = 106,
3395    KECustomGameInstallStatusFailedCanceled = 107,
3396}
3397impl ECustomGameInstallStatus {
3398    /// String value of the enum field names used in the ProtoBuf definition.
3399    ///
3400    /// The values are not transformed in any way and thus are considered stable
3401    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3402    pub fn as_str_name(&self) -> &'static str {
3403        match self {
3404            Self::KECustomGameInstallStatusUnknown => {
3405                "k_ECustomGameInstallStatus_Unknown"
3406            }
3407            Self::KECustomGameInstallStatusReady => "k_ECustomGameInstallStatus_Ready",
3408            Self::KECustomGameInstallStatusBusy => "k_ECustomGameInstallStatus_Busy",
3409            Self::KECustomGameInstallStatusFailedGeneric => {
3410                "k_ECustomGameInstallStatus_FailedGeneric"
3411            }
3412            Self::KECustomGameInstallStatusFailedInternalError => {
3413                "k_ECustomGameInstallStatus_FailedInternalError"
3414            }
3415            Self::KECustomGameInstallStatusRequestedTimestampTooOld => {
3416                "k_ECustomGameInstallStatus_RequestedTimestampTooOld"
3417            }
3418            Self::KECustomGameInstallStatusRequestedTimestampTooNew => {
3419                "k_ECustomGameInstallStatus_RequestedTimestampTooNew"
3420            }
3421            Self::KECustomGameInstallStatusCrcMismatch => {
3422                "k_ECustomGameInstallStatus_CRCMismatch"
3423            }
3424            Self::KECustomGameInstallStatusFailedSteam => {
3425                "k_ECustomGameInstallStatus_FailedSteam"
3426            }
3427            Self::KECustomGameInstallStatusFailedCanceled => {
3428                "k_ECustomGameInstallStatus_FailedCanceled"
3429            }
3430        }
3431    }
3432    /// Creates an enum from field names used in the ProtoBuf definition.
3433    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3434        match value {
3435            "k_ECustomGameInstallStatus_Unknown" => {
3436                Some(Self::KECustomGameInstallStatusUnknown)
3437            }
3438            "k_ECustomGameInstallStatus_Ready" => {
3439                Some(Self::KECustomGameInstallStatusReady)
3440            }
3441            "k_ECustomGameInstallStatus_Busy" => {
3442                Some(Self::KECustomGameInstallStatusBusy)
3443            }
3444            "k_ECustomGameInstallStatus_FailedGeneric" => {
3445                Some(Self::KECustomGameInstallStatusFailedGeneric)
3446            }
3447            "k_ECustomGameInstallStatus_FailedInternalError" => {
3448                Some(Self::KECustomGameInstallStatusFailedInternalError)
3449            }
3450            "k_ECustomGameInstallStatus_RequestedTimestampTooOld" => {
3451                Some(Self::KECustomGameInstallStatusRequestedTimestampTooOld)
3452            }
3453            "k_ECustomGameInstallStatus_RequestedTimestampTooNew" => {
3454                Some(Self::KECustomGameInstallStatusRequestedTimestampTooNew)
3455            }
3456            "k_ECustomGameInstallStatus_CRCMismatch" => {
3457                Some(Self::KECustomGameInstallStatusCrcMismatch)
3458            }
3459            "k_ECustomGameInstallStatus_FailedSteam" => {
3460                Some(Self::KECustomGameInstallStatusFailedSteam)
3461            }
3462            "k_ECustomGameInstallStatus_FailedCanceled" => {
3463                Some(Self::KECustomGameInstallStatusFailedCanceled)
3464            }
3465            _ => None,
3466        }
3467    }
3468}
3469#[derive(serde::Serialize, serde::Deserialize)]
3470#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3471#[repr(i32)]
3472pub enum ENetworkDisconnectionReason {
3473    NetworkDisconnectInvalid = 0,
3474    NetworkDisconnectShutdown = 1,
3475    NetworkDisconnectDisconnectByUser = 2,
3476    NetworkDisconnectDisconnectByServer = 3,
3477    NetworkDisconnectLost = 4,
3478    NetworkDisconnectOverflow = 5,
3479    NetworkDisconnectSteamBanned = 6,
3480    NetworkDisconnectSteamInuse = 7,
3481    NetworkDisconnectSteamTicket = 8,
3482    NetworkDisconnectSteamLogon = 9,
3483    NetworkDisconnectSteamAuthcancelled = 10,
3484    NetworkDisconnectSteamAuthalreadyused = 11,
3485    NetworkDisconnectSteamAuthinvalid = 12,
3486    NetworkDisconnectSteamVacbanstate = 13,
3487    NetworkDisconnectSteamLoggedInElsewhere = 14,
3488    NetworkDisconnectSteamVacCheckTimedout = 15,
3489    NetworkDisconnectSteamDropped = 16,
3490    NetworkDisconnectSteamOwnership = 17,
3491    NetworkDisconnectServerinfoOverflow = 18,
3492    NetworkDisconnectTickmsgOverflow = 19,
3493    NetworkDisconnectStringtablemsgOverflow = 20,
3494    NetworkDisconnectDeltaentmsgOverflow = 21,
3495    NetworkDisconnectTempentmsgOverflow = 22,
3496    NetworkDisconnectSoundsmsgOverflow = 23,
3497    NetworkDisconnectSnapshotoverflow = 24,
3498    NetworkDisconnectSnapshoterror = 25,
3499    NetworkDisconnectReliableoverflow = 26,
3500    NetworkDisconnectBaddeltatick = 27,
3501    NetworkDisconnectNomoresplits = 28,
3502    NetworkDisconnectTimedout = 29,
3503    NetworkDisconnectDisconnected = 30,
3504    NetworkDisconnectLeavingsplit = 31,
3505    NetworkDisconnectDifferentclasstables = 32,
3506    NetworkDisconnectBadrelaypassword = 33,
3507    NetworkDisconnectBadspectatorpassword = 34,
3508    NetworkDisconnectHltvrestricted = 35,
3509    NetworkDisconnectNospectators = 36,
3510    NetworkDisconnectHltvunavailable = 37,
3511    NetworkDisconnectHltvstop = 38,
3512    NetworkDisconnectKicked = 39,
3513    NetworkDisconnectBanadded = 40,
3514    NetworkDisconnectKickbanadded = 41,
3515    NetworkDisconnectHltvdirect = 42,
3516    NetworkDisconnectPureserverClientextra = 43,
3517    NetworkDisconnectPureserverMismatch = 44,
3518    NetworkDisconnectUsercmd = 45,
3519    NetworkDisconnectRejectedByGame = 46,
3520    NetworkDisconnectMessageParseError = 47,
3521    NetworkDisconnectInvalidMessageError = 48,
3522    NetworkDisconnectBadServerPassword = 49,
3523    NetworkDisconnectDirectConnectReservation = 50,
3524    NetworkDisconnectConnectionFailure = 51,
3525    NetworkDisconnectNoPeerGroupHandlers = 52,
3526    NetworkDisconnectReconnection = 53,
3527    NetworkDisconnectLoopshutdown = 54,
3528    NetworkDisconnectLoopdeactivate = 55,
3529    NetworkDisconnectHostEndgame = 56,
3530    NetworkDisconnectLoopLevelloadActivate = 57,
3531    NetworkDisconnectCreateServerFailed = 58,
3532    NetworkDisconnectExiting = 59,
3533    NetworkDisconnectRequestHoststateIdle = 60,
3534    NetworkDisconnectRequestHoststateHltvrelay = 61,
3535    NetworkDisconnectClientConsistencyFail = 62,
3536    NetworkDisconnectClientUnableToCrcMap = 63,
3537    NetworkDisconnectClientNoMap = 64,
3538    NetworkDisconnectClientDifferentMap = 65,
3539    NetworkDisconnectServerRequiresSteam = 66,
3540    NetworkDisconnectSteamDenyMisc = 67,
3541    NetworkDisconnectSteamDenyBadAntiCheat = 68,
3542    NetworkDisconnectServerShutdown = 69,
3543    NetworkDisconnectReplayIncompatible = 71,
3544    NetworkDisconnectConnectRequestTimedout = 72,
3545    NetworkDisconnectServerIncompatible = 73,
3546    NetworkDisconnectLocalproblemManyrelays = 74,
3547    NetworkDisconnectLocalproblemHostedserverprimaryrelay = 75,
3548    NetworkDisconnectLocalproblemNetworkconfig = 76,
3549    NetworkDisconnectLocalproblemOther = 77,
3550    NetworkDisconnectRemoteTimeout = 79,
3551    NetworkDisconnectRemoteTimeoutConnecting = 80,
3552    NetworkDisconnectRemoteOther = 81,
3553    NetworkDisconnectRemoteBadcrypt = 82,
3554    NetworkDisconnectRemoteCertnottrusted = 83,
3555    NetworkDisconnectUnusual = 84,
3556    NetworkDisconnectInternalError = 85,
3557    NetworkDisconnectRejectBadchallenge = 128,
3558    NetworkDisconnectRejectNolobby = 129,
3559    NetworkDisconnectRejectBackgroundMap = 130,
3560    NetworkDisconnectRejectSinglePlayer = 131,
3561    NetworkDisconnectRejectHiddenGame = 132,
3562    NetworkDisconnectRejectLanrestrict = 133,
3563    NetworkDisconnectRejectBadpassword = 134,
3564    NetworkDisconnectRejectServerfull = 135,
3565    NetworkDisconnectRejectInvalidreservation = 136,
3566    NetworkDisconnectRejectFailedchannel = 137,
3567    NetworkDisconnectRejectConnectFromLobby = 138,
3568    NetworkDisconnectRejectReservedForLobby = 139,
3569    NetworkDisconnectRejectInvalidkeylength = 140,
3570    NetworkDisconnectRejectOldprotocol = 141,
3571    NetworkDisconnectRejectNewprotocol = 142,
3572    NetworkDisconnectRejectInvalidconnection = 143,
3573    NetworkDisconnectRejectInvalidcertlen = 144,
3574    NetworkDisconnectRejectInvalidsteamcertlen = 145,
3575    NetworkDisconnectRejectSteam = 146,
3576    NetworkDisconnectRejectServerauthdisabled = 147,
3577    NetworkDisconnectRejectServercdkeyauthinvalid = 148,
3578    NetworkDisconnectRejectBanned = 149,
3579    NetworkDisconnectKickedTeamkilling = 150,
3580    NetworkDisconnectKickedTkStart = 151,
3581    NetworkDisconnectKickedUntrustedaccount = 152,
3582    NetworkDisconnectKickedConvictedaccount = 153,
3583    NetworkDisconnectKickedCompetitivecooldown = 154,
3584    NetworkDisconnectKickedTeamhurting = 155,
3585    NetworkDisconnectKickedHostagekilling = 156,
3586    NetworkDisconnectKickedVotedoff = 157,
3587    NetworkDisconnectKickedIdle = 158,
3588    NetworkDisconnectKickedSuicide = 159,
3589    NetworkDisconnectKickedNosteamlogin = 160,
3590    NetworkDisconnectKickedNosteamticket = 161,
3591    NetworkDisconnectKickedInputautomation = 162,
3592    NetworkDisconnectKickedVacnetabnormalbehavior = 163,
3593    NetworkDisconnectKickedInsecureclient = 164,
3594}
3595impl ENetworkDisconnectionReason {
3596    /// String value of the enum field names used in the ProtoBuf definition.
3597    ///
3598    /// The values are not transformed in any way and thus are considered stable
3599    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3600    pub fn as_str_name(&self) -> &'static str {
3601        match self {
3602            Self::NetworkDisconnectInvalid => "NETWORK_DISCONNECT_INVALID",
3603            Self::NetworkDisconnectShutdown => "NETWORK_DISCONNECT_SHUTDOWN",
3604            Self::NetworkDisconnectDisconnectByUser => {
3605                "NETWORK_DISCONNECT_DISCONNECT_BY_USER"
3606            }
3607            Self::NetworkDisconnectDisconnectByServer => {
3608                "NETWORK_DISCONNECT_DISCONNECT_BY_SERVER"
3609            }
3610            Self::NetworkDisconnectLost => "NETWORK_DISCONNECT_LOST",
3611            Self::NetworkDisconnectOverflow => "NETWORK_DISCONNECT_OVERFLOW",
3612            Self::NetworkDisconnectSteamBanned => "NETWORK_DISCONNECT_STEAM_BANNED",
3613            Self::NetworkDisconnectSteamInuse => "NETWORK_DISCONNECT_STEAM_INUSE",
3614            Self::NetworkDisconnectSteamTicket => "NETWORK_DISCONNECT_STEAM_TICKET",
3615            Self::NetworkDisconnectSteamLogon => "NETWORK_DISCONNECT_STEAM_LOGON",
3616            Self::NetworkDisconnectSteamAuthcancelled => {
3617                "NETWORK_DISCONNECT_STEAM_AUTHCANCELLED"
3618            }
3619            Self::NetworkDisconnectSteamAuthalreadyused => {
3620                "NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED"
3621            }
3622            Self::NetworkDisconnectSteamAuthinvalid => {
3623                "NETWORK_DISCONNECT_STEAM_AUTHINVALID"
3624            }
3625            Self::NetworkDisconnectSteamVacbanstate => {
3626                "NETWORK_DISCONNECT_STEAM_VACBANSTATE"
3627            }
3628            Self::NetworkDisconnectSteamLoggedInElsewhere => {
3629                "NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE"
3630            }
3631            Self::NetworkDisconnectSteamVacCheckTimedout => {
3632                "NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT"
3633            }
3634            Self::NetworkDisconnectSteamDropped => "NETWORK_DISCONNECT_STEAM_DROPPED",
3635            Self::NetworkDisconnectSteamOwnership => "NETWORK_DISCONNECT_STEAM_OWNERSHIP",
3636            Self::NetworkDisconnectServerinfoOverflow => {
3637                "NETWORK_DISCONNECT_SERVERINFO_OVERFLOW"
3638            }
3639            Self::NetworkDisconnectTickmsgOverflow => {
3640                "NETWORK_DISCONNECT_TICKMSG_OVERFLOW"
3641            }
3642            Self::NetworkDisconnectStringtablemsgOverflow => {
3643                "NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW"
3644            }
3645            Self::NetworkDisconnectDeltaentmsgOverflow => {
3646                "NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW"
3647            }
3648            Self::NetworkDisconnectTempentmsgOverflow => {
3649                "NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW"
3650            }
3651            Self::NetworkDisconnectSoundsmsgOverflow => {
3652                "NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW"
3653            }
3654            Self::NetworkDisconnectSnapshotoverflow => {
3655                "NETWORK_DISCONNECT_SNAPSHOTOVERFLOW"
3656            }
3657            Self::NetworkDisconnectSnapshoterror => "NETWORK_DISCONNECT_SNAPSHOTERROR",
3658            Self::NetworkDisconnectReliableoverflow => {
3659                "NETWORK_DISCONNECT_RELIABLEOVERFLOW"
3660            }
3661            Self::NetworkDisconnectBaddeltatick => "NETWORK_DISCONNECT_BADDELTATICK",
3662            Self::NetworkDisconnectNomoresplits => "NETWORK_DISCONNECT_NOMORESPLITS",
3663            Self::NetworkDisconnectTimedout => "NETWORK_DISCONNECT_TIMEDOUT",
3664            Self::NetworkDisconnectDisconnected => "NETWORK_DISCONNECT_DISCONNECTED",
3665            Self::NetworkDisconnectLeavingsplit => "NETWORK_DISCONNECT_LEAVINGSPLIT",
3666            Self::NetworkDisconnectDifferentclasstables => {
3667                "NETWORK_DISCONNECT_DIFFERENTCLASSTABLES"
3668            }
3669            Self::NetworkDisconnectBadrelaypassword => {
3670                "NETWORK_DISCONNECT_BADRELAYPASSWORD"
3671            }
3672            Self::NetworkDisconnectBadspectatorpassword => {
3673                "NETWORK_DISCONNECT_BADSPECTATORPASSWORD"
3674            }
3675            Self::NetworkDisconnectHltvrestricted => "NETWORK_DISCONNECT_HLTVRESTRICTED",
3676            Self::NetworkDisconnectNospectators => "NETWORK_DISCONNECT_NOSPECTATORS",
3677            Self::NetworkDisconnectHltvunavailable => {
3678                "NETWORK_DISCONNECT_HLTVUNAVAILABLE"
3679            }
3680            Self::NetworkDisconnectHltvstop => "NETWORK_DISCONNECT_HLTVSTOP",
3681            Self::NetworkDisconnectKicked => "NETWORK_DISCONNECT_KICKED",
3682            Self::NetworkDisconnectBanadded => "NETWORK_DISCONNECT_BANADDED",
3683            Self::NetworkDisconnectKickbanadded => "NETWORK_DISCONNECT_KICKBANADDED",
3684            Self::NetworkDisconnectHltvdirect => "NETWORK_DISCONNECT_HLTVDIRECT",
3685            Self::NetworkDisconnectPureserverClientextra => {
3686                "NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA"
3687            }
3688            Self::NetworkDisconnectPureserverMismatch => {
3689                "NETWORK_DISCONNECT_PURESERVER_MISMATCH"
3690            }
3691            Self::NetworkDisconnectUsercmd => "NETWORK_DISCONNECT_USERCMD",
3692            Self::NetworkDisconnectRejectedByGame => {
3693                "NETWORK_DISCONNECT_REJECTED_BY_GAME"
3694            }
3695            Self::NetworkDisconnectMessageParseError => {
3696                "NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR"
3697            }
3698            Self::NetworkDisconnectInvalidMessageError => {
3699                "NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR"
3700            }
3701            Self::NetworkDisconnectBadServerPassword => {
3702                "NETWORK_DISCONNECT_BAD_SERVER_PASSWORD"
3703            }
3704            Self::NetworkDisconnectDirectConnectReservation => {
3705                "NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION"
3706            }
3707            Self::NetworkDisconnectConnectionFailure => {
3708                "NETWORK_DISCONNECT_CONNECTION_FAILURE"
3709            }
3710            Self::NetworkDisconnectNoPeerGroupHandlers => {
3711                "NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS"
3712            }
3713            Self::NetworkDisconnectReconnection => "NETWORK_DISCONNECT_RECONNECTION",
3714            Self::NetworkDisconnectLoopshutdown => "NETWORK_DISCONNECT_LOOPSHUTDOWN",
3715            Self::NetworkDisconnectLoopdeactivate => "NETWORK_DISCONNECT_LOOPDEACTIVATE",
3716            Self::NetworkDisconnectHostEndgame => "NETWORK_DISCONNECT_HOST_ENDGAME",
3717            Self::NetworkDisconnectLoopLevelloadActivate => {
3718                "NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE"
3719            }
3720            Self::NetworkDisconnectCreateServerFailed => {
3721                "NETWORK_DISCONNECT_CREATE_SERVER_FAILED"
3722            }
3723            Self::NetworkDisconnectExiting => "NETWORK_DISCONNECT_EXITING",
3724            Self::NetworkDisconnectRequestHoststateIdle => {
3725                "NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE"
3726            }
3727            Self::NetworkDisconnectRequestHoststateHltvrelay => {
3728                "NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY"
3729            }
3730            Self::NetworkDisconnectClientConsistencyFail => {
3731                "NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL"
3732            }
3733            Self::NetworkDisconnectClientUnableToCrcMap => {
3734                "NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP"
3735            }
3736            Self::NetworkDisconnectClientNoMap => "NETWORK_DISCONNECT_CLIENT_NO_MAP",
3737            Self::NetworkDisconnectClientDifferentMap => {
3738                "NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP"
3739            }
3740            Self::NetworkDisconnectServerRequiresSteam => {
3741                "NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM"
3742            }
3743            Self::NetworkDisconnectSteamDenyMisc => "NETWORK_DISCONNECT_STEAM_DENY_MISC",
3744            Self::NetworkDisconnectSteamDenyBadAntiCheat => {
3745                "NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT"
3746            }
3747            Self::NetworkDisconnectServerShutdown => "NETWORK_DISCONNECT_SERVER_SHUTDOWN",
3748            Self::NetworkDisconnectReplayIncompatible => {
3749                "NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE"
3750            }
3751            Self::NetworkDisconnectConnectRequestTimedout => {
3752                "NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT"
3753            }
3754            Self::NetworkDisconnectServerIncompatible => {
3755                "NETWORK_DISCONNECT_SERVER_INCOMPATIBLE"
3756            }
3757            Self::NetworkDisconnectLocalproblemManyrelays => {
3758                "NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS"
3759            }
3760            Self::NetworkDisconnectLocalproblemHostedserverprimaryrelay => {
3761                "NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY"
3762            }
3763            Self::NetworkDisconnectLocalproblemNetworkconfig => {
3764                "NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG"
3765            }
3766            Self::NetworkDisconnectLocalproblemOther => {
3767                "NETWORK_DISCONNECT_LOCALPROBLEM_OTHER"
3768            }
3769            Self::NetworkDisconnectRemoteTimeout => "NETWORK_DISCONNECT_REMOTE_TIMEOUT",
3770            Self::NetworkDisconnectRemoteTimeoutConnecting => {
3771                "NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING"
3772            }
3773            Self::NetworkDisconnectRemoteOther => "NETWORK_DISCONNECT_REMOTE_OTHER",
3774            Self::NetworkDisconnectRemoteBadcrypt => "NETWORK_DISCONNECT_REMOTE_BADCRYPT",
3775            Self::NetworkDisconnectRemoteCertnottrusted => {
3776                "NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED"
3777            }
3778            Self::NetworkDisconnectUnusual => "NETWORK_DISCONNECT_UNUSUAL",
3779            Self::NetworkDisconnectInternalError => "NETWORK_DISCONNECT_INTERNAL_ERROR",
3780            Self::NetworkDisconnectRejectBadchallenge => {
3781                "NETWORK_DISCONNECT_REJECT_BADCHALLENGE"
3782            }
3783            Self::NetworkDisconnectRejectNolobby => "NETWORK_DISCONNECT_REJECT_NOLOBBY",
3784            Self::NetworkDisconnectRejectBackgroundMap => {
3785                "NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP"
3786            }
3787            Self::NetworkDisconnectRejectSinglePlayer => {
3788                "NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER"
3789            }
3790            Self::NetworkDisconnectRejectHiddenGame => {
3791                "NETWORK_DISCONNECT_REJECT_HIDDEN_GAME"
3792            }
3793            Self::NetworkDisconnectRejectLanrestrict => {
3794                "NETWORK_DISCONNECT_REJECT_LANRESTRICT"
3795            }
3796            Self::NetworkDisconnectRejectBadpassword => {
3797                "NETWORK_DISCONNECT_REJECT_BADPASSWORD"
3798            }
3799            Self::NetworkDisconnectRejectServerfull => {
3800                "NETWORK_DISCONNECT_REJECT_SERVERFULL"
3801            }
3802            Self::NetworkDisconnectRejectInvalidreservation => {
3803                "NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION"
3804            }
3805            Self::NetworkDisconnectRejectFailedchannel => {
3806                "NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL"
3807            }
3808            Self::NetworkDisconnectRejectConnectFromLobby => {
3809                "NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY"
3810            }
3811            Self::NetworkDisconnectRejectReservedForLobby => {
3812                "NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY"
3813            }
3814            Self::NetworkDisconnectRejectInvalidkeylength => {
3815                "NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH"
3816            }
3817            Self::NetworkDisconnectRejectOldprotocol => {
3818                "NETWORK_DISCONNECT_REJECT_OLDPROTOCOL"
3819            }
3820            Self::NetworkDisconnectRejectNewprotocol => {
3821                "NETWORK_DISCONNECT_REJECT_NEWPROTOCOL"
3822            }
3823            Self::NetworkDisconnectRejectInvalidconnection => {
3824                "NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION"
3825            }
3826            Self::NetworkDisconnectRejectInvalidcertlen => {
3827                "NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN"
3828            }
3829            Self::NetworkDisconnectRejectInvalidsteamcertlen => {
3830                "NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN"
3831            }
3832            Self::NetworkDisconnectRejectSteam => "NETWORK_DISCONNECT_REJECT_STEAM",
3833            Self::NetworkDisconnectRejectServerauthdisabled => {
3834                "NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED"
3835            }
3836            Self::NetworkDisconnectRejectServercdkeyauthinvalid => {
3837                "NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID"
3838            }
3839            Self::NetworkDisconnectRejectBanned => "NETWORK_DISCONNECT_REJECT_BANNED",
3840            Self::NetworkDisconnectKickedTeamkilling => {
3841                "NETWORK_DISCONNECT_KICKED_TEAMKILLING"
3842            }
3843            Self::NetworkDisconnectKickedTkStart => "NETWORK_DISCONNECT_KICKED_TK_START",
3844            Self::NetworkDisconnectKickedUntrustedaccount => {
3845                "NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT"
3846            }
3847            Self::NetworkDisconnectKickedConvictedaccount => {
3848                "NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT"
3849            }
3850            Self::NetworkDisconnectKickedCompetitivecooldown => {
3851                "NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN"
3852            }
3853            Self::NetworkDisconnectKickedTeamhurting => {
3854                "NETWORK_DISCONNECT_KICKED_TEAMHURTING"
3855            }
3856            Self::NetworkDisconnectKickedHostagekilling => {
3857                "NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING"
3858            }
3859            Self::NetworkDisconnectKickedVotedoff => "NETWORK_DISCONNECT_KICKED_VOTEDOFF",
3860            Self::NetworkDisconnectKickedIdle => "NETWORK_DISCONNECT_KICKED_IDLE",
3861            Self::NetworkDisconnectKickedSuicide => "NETWORK_DISCONNECT_KICKED_SUICIDE",
3862            Self::NetworkDisconnectKickedNosteamlogin => {
3863                "NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN"
3864            }
3865            Self::NetworkDisconnectKickedNosteamticket => {
3866                "NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET"
3867            }
3868            Self::NetworkDisconnectKickedInputautomation => {
3869                "NETWORK_DISCONNECT_KICKED_INPUTAUTOMATION"
3870            }
3871            Self::NetworkDisconnectKickedVacnetabnormalbehavior => {
3872                "NETWORK_DISCONNECT_KICKED_VACNETABNORMALBEHAVIOR"
3873            }
3874            Self::NetworkDisconnectKickedInsecureclient => {
3875                "NETWORK_DISCONNECT_KICKED_INSECURECLIENT"
3876            }
3877        }
3878    }
3879    /// Creates an enum from field names used in the ProtoBuf definition.
3880    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3881        match value {
3882            "NETWORK_DISCONNECT_INVALID" => Some(Self::NetworkDisconnectInvalid),
3883            "NETWORK_DISCONNECT_SHUTDOWN" => Some(Self::NetworkDisconnectShutdown),
3884            "NETWORK_DISCONNECT_DISCONNECT_BY_USER" => {
3885                Some(Self::NetworkDisconnectDisconnectByUser)
3886            }
3887            "NETWORK_DISCONNECT_DISCONNECT_BY_SERVER" => {
3888                Some(Self::NetworkDisconnectDisconnectByServer)
3889            }
3890            "NETWORK_DISCONNECT_LOST" => Some(Self::NetworkDisconnectLost),
3891            "NETWORK_DISCONNECT_OVERFLOW" => Some(Self::NetworkDisconnectOverflow),
3892            "NETWORK_DISCONNECT_STEAM_BANNED" => Some(Self::NetworkDisconnectSteamBanned),
3893            "NETWORK_DISCONNECT_STEAM_INUSE" => Some(Self::NetworkDisconnectSteamInuse),
3894            "NETWORK_DISCONNECT_STEAM_TICKET" => Some(Self::NetworkDisconnectSteamTicket),
3895            "NETWORK_DISCONNECT_STEAM_LOGON" => Some(Self::NetworkDisconnectSteamLogon),
3896            "NETWORK_DISCONNECT_STEAM_AUTHCANCELLED" => {
3897                Some(Self::NetworkDisconnectSteamAuthcancelled)
3898            }
3899            "NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED" => {
3900                Some(Self::NetworkDisconnectSteamAuthalreadyused)
3901            }
3902            "NETWORK_DISCONNECT_STEAM_AUTHINVALID" => {
3903                Some(Self::NetworkDisconnectSteamAuthinvalid)
3904            }
3905            "NETWORK_DISCONNECT_STEAM_VACBANSTATE" => {
3906                Some(Self::NetworkDisconnectSteamVacbanstate)
3907            }
3908            "NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE" => {
3909                Some(Self::NetworkDisconnectSteamLoggedInElsewhere)
3910            }
3911            "NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT" => {
3912                Some(Self::NetworkDisconnectSteamVacCheckTimedout)
3913            }
3914            "NETWORK_DISCONNECT_STEAM_DROPPED" => {
3915                Some(Self::NetworkDisconnectSteamDropped)
3916            }
3917            "NETWORK_DISCONNECT_STEAM_OWNERSHIP" => {
3918                Some(Self::NetworkDisconnectSteamOwnership)
3919            }
3920            "NETWORK_DISCONNECT_SERVERINFO_OVERFLOW" => {
3921                Some(Self::NetworkDisconnectServerinfoOverflow)
3922            }
3923            "NETWORK_DISCONNECT_TICKMSG_OVERFLOW" => {
3924                Some(Self::NetworkDisconnectTickmsgOverflow)
3925            }
3926            "NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW" => {
3927                Some(Self::NetworkDisconnectStringtablemsgOverflow)
3928            }
3929            "NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW" => {
3930                Some(Self::NetworkDisconnectDeltaentmsgOverflow)
3931            }
3932            "NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW" => {
3933                Some(Self::NetworkDisconnectTempentmsgOverflow)
3934            }
3935            "NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW" => {
3936                Some(Self::NetworkDisconnectSoundsmsgOverflow)
3937            }
3938            "NETWORK_DISCONNECT_SNAPSHOTOVERFLOW" => {
3939                Some(Self::NetworkDisconnectSnapshotoverflow)
3940            }
3941            "NETWORK_DISCONNECT_SNAPSHOTERROR" => {
3942                Some(Self::NetworkDisconnectSnapshoterror)
3943            }
3944            "NETWORK_DISCONNECT_RELIABLEOVERFLOW" => {
3945                Some(Self::NetworkDisconnectReliableoverflow)
3946            }
3947            "NETWORK_DISCONNECT_BADDELTATICK" => {
3948                Some(Self::NetworkDisconnectBaddeltatick)
3949            }
3950            "NETWORK_DISCONNECT_NOMORESPLITS" => {
3951                Some(Self::NetworkDisconnectNomoresplits)
3952            }
3953            "NETWORK_DISCONNECT_TIMEDOUT" => Some(Self::NetworkDisconnectTimedout),
3954            "NETWORK_DISCONNECT_DISCONNECTED" => {
3955                Some(Self::NetworkDisconnectDisconnected)
3956            }
3957            "NETWORK_DISCONNECT_LEAVINGSPLIT" => {
3958                Some(Self::NetworkDisconnectLeavingsplit)
3959            }
3960            "NETWORK_DISCONNECT_DIFFERENTCLASSTABLES" => {
3961                Some(Self::NetworkDisconnectDifferentclasstables)
3962            }
3963            "NETWORK_DISCONNECT_BADRELAYPASSWORD" => {
3964                Some(Self::NetworkDisconnectBadrelaypassword)
3965            }
3966            "NETWORK_DISCONNECT_BADSPECTATORPASSWORD" => {
3967                Some(Self::NetworkDisconnectBadspectatorpassword)
3968            }
3969            "NETWORK_DISCONNECT_HLTVRESTRICTED" => {
3970                Some(Self::NetworkDisconnectHltvrestricted)
3971            }
3972            "NETWORK_DISCONNECT_NOSPECTATORS" => {
3973                Some(Self::NetworkDisconnectNospectators)
3974            }
3975            "NETWORK_DISCONNECT_HLTVUNAVAILABLE" => {
3976                Some(Self::NetworkDisconnectHltvunavailable)
3977            }
3978            "NETWORK_DISCONNECT_HLTVSTOP" => Some(Self::NetworkDisconnectHltvstop),
3979            "NETWORK_DISCONNECT_KICKED" => Some(Self::NetworkDisconnectKicked),
3980            "NETWORK_DISCONNECT_BANADDED" => Some(Self::NetworkDisconnectBanadded),
3981            "NETWORK_DISCONNECT_KICKBANADDED" => {
3982                Some(Self::NetworkDisconnectKickbanadded)
3983            }
3984            "NETWORK_DISCONNECT_HLTVDIRECT" => Some(Self::NetworkDisconnectHltvdirect),
3985            "NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA" => {
3986                Some(Self::NetworkDisconnectPureserverClientextra)
3987            }
3988            "NETWORK_DISCONNECT_PURESERVER_MISMATCH" => {
3989                Some(Self::NetworkDisconnectPureserverMismatch)
3990            }
3991            "NETWORK_DISCONNECT_USERCMD" => Some(Self::NetworkDisconnectUsercmd),
3992            "NETWORK_DISCONNECT_REJECTED_BY_GAME" => {
3993                Some(Self::NetworkDisconnectRejectedByGame)
3994            }
3995            "NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR" => {
3996                Some(Self::NetworkDisconnectMessageParseError)
3997            }
3998            "NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR" => {
3999                Some(Self::NetworkDisconnectInvalidMessageError)
4000            }
4001            "NETWORK_DISCONNECT_BAD_SERVER_PASSWORD" => {
4002                Some(Self::NetworkDisconnectBadServerPassword)
4003            }
4004            "NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION" => {
4005                Some(Self::NetworkDisconnectDirectConnectReservation)
4006            }
4007            "NETWORK_DISCONNECT_CONNECTION_FAILURE" => {
4008                Some(Self::NetworkDisconnectConnectionFailure)
4009            }
4010            "NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS" => {
4011                Some(Self::NetworkDisconnectNoPeerGroupHandlers)
4012            }
4013            "NETWORK_DISCONNECT_RECONNECTION" => {
4014                Some(Self::NetworkDisconnectReconnection)
4015            }
4016            "NETWORK_DISCONNECT_LOOPSHUTDOWN" => {
4017                Some(Self::NetworkDisconnectLoopshutdown)
4018            }
4019            "NETWORK_DISCONNECT_LOOPDEACTIVATE" => {
4020                Some(Self::NetworkDisconnectLoopdeactivate)
4021            }
4022            "NETWORK_DISCONNECT_HOST_ENDGAME" => Some(Self::NetworkDisconnectHostEndgame),
4023            "NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE" => {
4024                Some(Self::NetworkDisconnectLoopLevelloadActivate)
4025            }
4026            "NETWORK_DISCONNECT_CREATE_SERVER_FAILED" => {
4027                Some(Self::NetworkDisconnectCreateServerFailed)
4028            }
4029            "NETWORK_DISCONNECT_EXITING" => Some(Self::NetworkDisconnectExiting),
4030            "NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE" => {
4031                Some(Self::NetworkDisconnectRequestHoststateIdle)
4032            }
4033            "NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY" => {
4034                Some(Self::NetworkDisconnectRequestHoststateHltvrelay)
4035            }
4036            "NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL" => {
4037                Some(Self::NetworkDisconnectClientConsistencyFail)
4038            }
4039            "NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP" => {
4040                Some(Self::NetworkDisconnectClientUnableToCrcMap)
4041            }
4042            "NETWORK_DISCONNECT_CLIENT_NO_MAP" => {
4043                Some(Self::NetworkDisconnectClientNoMap)
4044            }
4045            "NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP" => {
4046                Some(Self::NetworkDisconnectClientDifferentMap)
4047            }
4048            "NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM" => {
4049                Some(Self::NetworkDisconnectServerRequiresSteam)
4050            }
4051            "NETWORK_DISCONNECT_STEAM_DENY_MISC" => {
4052                Some(Self::NetworkDisconnectSteamDenyMisc)
4053            }
4054            "NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT" => {
4055                Some(Self::NetworkDisconnectSteamDenyBadAntiCheat)
4056            }
4057            "NETWORK_DISCONNECT_SERVER_SHUTDOWN" => {
4058                Some(Self::NetworkDisconnectServerShutdown)
4059            }
4060            "NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE" => {
4061                Some(Self::NetworkDisconnectReplayIncompatible)
4062            }
4063            "NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT" => {
4064                Some(Self::NetworkDisconnectConnectRequestTimedout)
4065            }
4066            "NETWORK_DISCONNECT_SERVER_INCOMPATIBLE" => {
4067                Some(Self::NetworkDisconnectServerIncompatible)
4068            }
4069            "NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS" => {
4070                Some(Self::NetworkDisconnectLocalproblemManyrelays)
4071            }
4072            "NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY" => {
4073                Some(Self::NetworkDisconnectLocalproblemHostedserverprimaryrelay)
4074            }
4075            "NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG" => {
4076                Some(Self::NetworkDisconnectLocalproblemNetworkconfig)
4077            }
4078            "NETWORK_DISCONNECT_LOCALPROBLEM_OTHER" => {
4079                Some(Self::NetworkDisconnectLocalproblemOther)
4080            }
4081            "NETWORK_DISCONNECT_REMOTE_TIMEOUT" => {
4082                Some(Self::NetworkDisconnectRemoteTimeout)
4083            }
4084            "NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING" => {
4085                Some(Self::NetworkDisconnectRemoteTimeoutConnecting)
4086            }
4087            "NETWORK_DISCONNECT_REMOTE_OTHER" => Some(Self::NetworkDisconnectRemoteOther),
4088            "NETWORK_DISCONNECT_REMOTE_BADCRYPT" => {
4089                Some(Self::NetworkDisconnectRemoteBadcrypt)
4090            }
4091            "NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED" => {
4092                Some(Self::NetworkDisconnectRemoteCertnottrusted)
4093            }
4094            "NETWORK_DISCONNECT_UNUSUAL" => Some(Self::NetworkDisconnectUnusual),
4095            "NETWORK_DISCONNECT_INTERNAL_ERROR" => {
4096                Some(Self::NetworkDisconnectInternalError)
4097            }
4098            "NETWORK_DISCONNECT_REJECT_BADCHALLENGE" => {
4099                Some(Self::NetworkDisconnectRejectBadchallenge)
4100            }
4101            "NETWORK_DISCONNECT_REJECT_NOLOBBY" => {
4102                Some(Self::NetworkDisconnectRejectNolobby)
4103            }
4104            "NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP" => {
4105                Some(Self::NetworkDisconnectRejectBackgroundMap)
4106            }
4107            "NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER" => {
4108                Some(Self::NetworkDisconnectRejectSinglePlayer)
4109            }
4110            "NETWORK_DISCONNECT_REJECT_HIDDEN_GAME" => {
4111                Some(Self::NetworkDisconnectRejectHiddenGame)
4112            }
4113            "NETWORK_DISCONNECT_REJECT_LANRESTRICT" => {
4114                Some(Self::NetworkDisconnectRejectLanrestrict)
4115            }
4116            "NETWORK_DISCONNECT_REJECT_BADPASSWORD" => {
4117                Some(Self::NetworkDisconnectRejectBadpassword)
4118            }
4119            "NETWORK_DISCONNECT_REJECT_SERVERFULL" => {
4120                Some(Self::NetworkDisconnectRejectServerfull)
4121            }
4122            "NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION" => {
4123                Some(Self::NetworkDisconnectRejectInvalidreservation)
4124            }
4125            "NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL" => {
4126                Some(Self::NetworkDisconnectRejectFailedchannel)
4127            }
4128            "NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY" => {
4129                Some(Self::NetworkDisconnectRejectConnectFromLobby)
4130            }
4131            "NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY" => {
4132                Some(Self::NetworkDisconnectRejectReservedForLobby)
4133            }
4134            "NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH" => {
4135                Some(Self::NetworkDisconnectRejectInvalidkeylength)
4136            }
4137            "NETWORK_DISCONNECT_REJECT_OLDPROTOCOL" => {
4138                Some(Self::NetworkDisconnectRejectOldprotocol)
4139            }
4140            "NETWORK_DISCONNECT_REJECT_NEWPROTOCOL" => {
4141                Some(Self::NetworkDisconnectRejectNewprotocol)
4142            }
4143            "NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION" => {
4144                Some(Self::NetworkDisconnectRejectInvalidconnection)
4145            }
4146            "NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN" => {
4147                Some(Self::NetworkDisconnectRejectInvalidcertlen)
4148            }
4149            "NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN" => {
4150                Some(Self::NetworkDisconnectRejectInvalidsteamcertlen)
4151            }
4152            "NETWORK_DISCONNECT_REJECT_STEAM" => Some(Self::NetworkDisconnectRejectSteam),
4153            "NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED" => {
4154                Some(Self::NetworkDisconnectRejectServerauthdisabled)
4155            }
4156            "NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID" => {
4157                Some(Self::NetworkDisconnectRejectServercdkeyauthinvalid)
4158            }
4159            "NETWORK_DISCONNECT_REJECT_BANNED" => {
4160                Some(Self::NetworkDisconnectRejectBanned)
4161            }
4162            "NETWORK_DISCONNECT_KICKED_TEAMKILLING" => {
4163                Some(Self::NetworkDisconnectKickedTeamkilling)
4164            }
4165            "NETWORK_DISCONNECT_KICKED_TK_START" => {
4166                Some(Self::NetworkDisconnectKickedTkStart)
4167            }
4168            "NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT" => {
4169                Some(Self::NetworkDisconnectKickedUntrustedaccount)
4170            }
4171            "NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT" => {
4172                Some(Self::NetworkDisconnectKickedConvictedaccount)
4173            }
4174            "NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN" => {
4175                Some(Self::NetworkDisconnectKickedCompetitivecooldown)
4176            }
4177            "NETWORK_DISCONNECT_KICKED_TEAMHURTING" => {
4178                Some(Self::NetworkDisconnectKickedTeamhurting)
4179            }
4180            "NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING" => {
4181                Some(Self::NetworkDisconnectKickedHostagekilling)
4182            }
4183            "NETWORK_DISCONNECT_KICKED_VOTEDOFF" => {
4184                Some(Self::NetworkDisconnectKickedVotedoff)
4185            }
4186            "NETWORK_DISCONNECT_KICKED_IDLE" => Some(Self::NetworkDisconnectKickedIdle),
4187            "NETWORK_DISCONNECT_KICKED_SUICIDE" => {
4188                Some(Self::NetworkDisconnectKickedSuicide)
4189            }
4190            "NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN" => {
4191                Some(Self::NetworkDisconnectKickedNosteamlogin)
4192            }
4193            "NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET" => {
4194                Some(Self::NetworkDisconnectKickedNosteamticket)
4195            }
4196            "NETWORK_DISCONNECT_KICKED_INPUTAUTOMATION" => {
4197                Some(Self::NetworkDisconnectKickedInputautomation)
4198            }
4199            "NETWORK_DISCONNECT_KICKED_VACNETABNORMALBEHAVIOR" => {
4200                Some(Self::NetworkDisconnectKickedVacnetabnormalbehavior)
4201            }
4202            "NETWORK_DISCONNECT_KICKED_INSECURECLIENT" => {
4203                Some(Self::NetworkDisconnectKickedInsecureclient)
4204            }
4205            _ => None,
4206        }
4207    }
4208}
4209#[derive(serde::Serialize, serde::Deserialize)]
4210#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4211pub struct CMsgVector {
4212    #[prost(float, optional, tag = "1")]
4213    pub x: ::core::option::Option<f32>,
4214    #[prost(float, optional, tag = "2")]
4215    pub y: ::core::option::Option<f32>,
4216    #[prost(float, optional, tag = "3")]
4217    pub z: ::core::option::Option<f32>,
4218    #[prost(float, optional, tag = "4")]
4219    pub w: ::core::option::Option<f32>,
4220}
4221#[derive(serde::Serialize, serde::Deserialize)]
4222#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4223pub struct CMsgVector2D {
4224    #[prost(float, optional, tag = "1")]
4225    pub x: ::core::option::Option<f32>,
4226    #[prost(float, optional, tag = "2")]
4227    pub y: ::core::option::Option<f32>,
4228}
4229#[derive(serde::Serialize, serde::Deserialize)]
4230#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4231pub struct CMsgQAngle {
4232    #[prost(float, optional, tag = "1")]
4233    pub x: ::core::option::Option<f32>,
4234    #[prost(float, optional, tag = "2")]
4235    pub y: ::core::option::Option<f32>,
4236    #[prost(float, optional, tag = "3")]
4237    pub z: ::core::option::Option<f32>,
4238}
4239#[derive(serde::Serialize, serde::Deserialize)]
4240#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4241pub struct CMsgQuaternion {
4242    #[prost(float, optional, tag = "1")]
4243    pub x: ::core::option::Option<f32>,
4244    #[prost(float, optional, tag = "2")]
4245    pub y: ::core::option::Option<f32>,
4246    #[prost(float, optional, tag = "3")]
4247    pub z: ::core::option::Option<f32>,
4248    #[prost(float, optional, tag = "4")]
4249    pub w: ::core::option::Option<f32>,
4250}
4251#[derive(serde::Serialize, serde::Deserialize)]
4252#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4253pub struct CMsgTransform {
4254    #[prost(message, optional, tag = "1")]
4255    pub position: ::core::option::Option<CMsgVector>,
4256    #[prost(float, optional, tag = "2")]
4257    pub scale: ::core::option::Option<f32>,
4258    #[prost(message, optional, tag = "3")]
4259    pub orientation: ::core::option::Option<CMsgQuaternion>,
4260}
4261#[derive(serde::Serialize, serde::Deserialize)]
4262#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4263pub struct CMsgRgba {
4264    #[prost(int32, optional, tag = "1")]
4265    pub r: ::core::option::Option<i32>,
4266    #[prost(int32, optional, tag = "2")]
4267    pub g: ::core::option::Option<i32>,
4268    #[prost(int32, optional, tag = "3")]
4269    pub b: ::core::option::Option<i32>,
4270    #[prost(int32, optional, tag = "4")]
4271    pub a: ::core::option::Option<i32>,
4272}
4273#[derive(serde::Serialize, serde::Deserialize)]
4274#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4275pub struct CMsgPlayerInfo {
4276    #[prost(string, optional, tag = "1")]
4277    pub name: ::core::option::Option<::prost::alloc::string::String>,
4278    #[prost(fixed64, optional, tag = "2")]
4279    pub xuid: ::core::option::Option<u64>,
4280    #[prost(int32, optional, tag = "3")]
4281    pub userid: ::core::option::Option<i32>,
4282    #[prost(fixed64, optional, tag = "4")]
4283    pub steamid: ::core::option::Option<u64>,
4284    #[prost(bool, optional, tag = "5")]
4285    pub fakeplayer: ::core::option::Option<bool>,
4286    #[prost(bool, optional, tag = "6")]
4287    pub ishltv: ::core::option::Option<bool>,
4288}
4289#[derive(serde::Serialize, serde::Deserialize)]
4290#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4291pub struct CEntityMsg {
4292    #[prost(uint32, optional, tag = "1", default = "16777215")]
4293    pub target_entity: ::core::option::Option<u32>,
4294}
4295#[derive(serde::Serialize, serde::Deserialize)]
4296#[derive(Clone, PartialEq, ::prost::Message)]
4297pub struct CMsgCVars {
4298    #[prost(message, repeated, tag = "1")]
4299    pub cvars: ::prost::alloc::vec::Vec<c_msg_c_vars::CVar>,
4300}
4301/// Nested message and enum types in `CMsg_CVars`.
4302pub mod c_msg_c_vars {
4303    #[derive(serde::Serialize, serde::Deserialize)]
4304    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4305    pub struct CVar {
4306        #[prost(string, optional, tag = "1")]
4307        pub name: ::core::option::Option<::prost::alloc::string::String>,
4308        #[prost(string, optional, tag = "2")]
4309        pub value: ::core::option::Option<::prost::alloc::string::String>,
4310    }
4311}
4312#[derive(serde::Serialize, serde::Deserialize)]
4313#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4314pub struct CnetMsgNop {}
4315#[derive(serde::Serialize, serde::Deserialize)]
4316#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4317pub struct CnetMsgSplitScreenUser {
4318    #[prost(int32, optional, tag = "1")]
4319    pub slot: ::core::option::Option<i32>,
4320}
4321#[derive(serde::Serialize, serde::Deserialize)]
4322#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4323pub struct CnetMsgTick {
4324    #[prost(uint32, optional, tag = "1")]
4325    pub tick: ::core::option::Option<u32>,
4326    #[prost(uint32, optional, tag = "4")]
4327    pub host_computationtime: ::core::option::Option<u32>,
4328    #[prost(uint32, optional, tag = "5")]
4329    pub host_computationtime_std_deviation: ::core::option::Option<u32>,
4330    #[prost(uint32, optional, tag = "7")]
4331    pub legacy_host_loss: ::core::option::Option<u32>,
4332    #[prost(uint32, optional, tag = "8")]
4333    pub host_unfiltered_frametime: ::core::option::Option<u32>,
4334    #[prost(uint32, optional, tag = "9")]
4335    pub hltv_replay_flags: ::core::option::Option<u32>,
4336    #[prost(uint32, optional, tag = "10")]
4337    pub expected_long_tick: ::core::option::Option<u32>,
4338    #[prost(string, optional, tag = "11")]
4339    pub expected_long_tick_reason: ::core::option::Option<
4340        ::prost::alloc::string::String,
4341    >,
4342    #[prost(uint32, optional, tag = "12")]
4343    pub host_frame_dropped_pct_x10: ::core::option::Option<u32>,
4344    #[prost(uint32, optional, tag = "13")]
4345    pub host_frame_irregular_arrival_pct_x10: ::core::option::Option<u32>,
4346}
4347#[derive(serde::Serialize, serde::Deserialize)]
4348#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4349pub struct CnetMsgStringCmd {
4350    #[prost(string, optional, tag = "1")]
4351    pub command: ::core::option::Option<::prost::alloc::string::String>,
4352    #[prost(uint32, optional, tag = "2")]
4353    pub prediction_sync: ::core::option::Option<u32>,
4354}
4355#[derive(serde::Serialize, serde::Deserialize)]
4356#[derive(Clone, PartialEq, ::prost::Message)]
4357pub struct CnetMsgSetConVar {
4358    #[prost(message, optional, tag = "1")]
4359    pub convars: ::core::option::Option<CMsgCVars>,
4360}
4361#[derive(serde::Serialize, serde::Deserialize)]
4362#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4363pub struct CnetMsgSignonState {
4364    #[prost(
4365        enumeration = "SignonStateT",
4366        optional,
4367        tag = "1",
4368        default = "SignonstateNone"
4369    )]
4370    pub signon_state: ::core::option::Option<i32>,
4371    #[prost(uint32, optional, tag = "2")]
4372    pub spawn_count: ::core::option::Option<u32>,
4373    #[prost(uint32, optional, tag = "3")]
4374    pub num_server_players: ::core::option::Option<u32>,
4375    #[prost(string, repeated, tag = "4")]
4376    pub players_networkids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4377    #[prost(string, optional, tag = "5")]
4378    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
4379    #[prost(string, optional, tag = "6")]
4380    pub addons: ::core::option::Option<::prost::alloc::string::String>,
4381}
4382#[derive(serde::Serialize, serde::Deserialize)]
4383#[derive(Clone, PartialEq, ::prost::Message)]
4384pub struct CsvcMsgGameEvent {
4385    #[prost(string, optional, tag = "1")]
4386    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
4387    #[prost(int32, optional, tag = "2")]
4388    pub eventid: ::core::option::Option<i32>,
4389    #[prost(message, repeated, tag = "3")]
4390    pub keys: ::prost::alloc::vec::Vec<csvc_msg_game_event::KeyT>,
4391}
4392/// Nested message and enum types in `CSVCMsg_GameEvent`.
4393pub mod csvc_msg_game_event {
4394    #[derive(serde::Serialize, serde::Deserialize)]
4395    #[derive(Clone, PartialEq, ::prost::Message)]
4396    pub struct KeyT {
4397        #[prost(int32, optional, tag = "1")]
4398        pub r#type: ::core::option::Option<i32>,
4399        #[prost(string, optional, tag = "2")]
4400        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
4401        #[prost(float, optional, tag = "3")]
4402        pub val_float: ::core::option::Option<f32>,
4403        #[prost(int32, optional, tag = "4")]
4404        pub val_long: ::core::option::Option<i32>,
4405        #[prost(int32, optional, tag = "5")]
4406        pub val_short: ::core::option::Option<i32>,
4407        #[prost(int32, optional, tag = "6")]
4408        pub val_byte: ::core::option::Option<i32>,
4409        #[prost(bool, optional, tag = "7")]
4410        pub val_bool: ::core::option::Option<bool>,
4411        #[prost(uint64, optional, tag = "8")]
4412        pub val_uint64: ::core::option::Option<u64>,
4413    }
4414}
4415#[derive(serde::Serialize, serde::Deserialize)]
4416#[derive(Clone, PartialEq, ::prost::Message)]
4417pub struct CsvcMsgListGameEvents {
4418    #[prost(message, repeated, tag = "1")]
4419    pub events: ::prost::alloc::vec::Vec<csvc_msg_list_game_events::EventT>,
4420}
4421/// Nested message and enum types in `CSVCMsgList_GameEvents`.
4422pub mod csvc_msg_list_game_events {
4423    #[derive(serde::Serialize, serde::Deserialize)]
4424    #[derive(Clone, PartialEq, ::prost::Message)]
4425    pub struct EventT {
4426        #[prost(int32, optional, tag = "1")]
4427        pub tick: ::core::option::Option<i32>,
4428        #[prost(message, optional, tag = "2")]
4429        pub event: ::core::option::Option<super::CsvcMsgGameEvent>,
4430    }
4431}
4432#[derive(serde::Serialize, serde::Deserialize)]
4433#[derive(Clone, PartialEq, ::prost::Message)]
4434pub struct CnetMsgSpawnGroupLoad {
4435    #[prost(string, optional, tag = "1")]
4436    pub worldname: ::core::option::Option<::prost::alloc::string::String>,
4437    #[prost(string, optional, tag = "2")]
4438    pub entitylumpname: ::core::option::Option<::prost::alloc::string::String>,
4439    #[prost(string, optional, tag = "3")]
4440    pub entityfiltername: ::core::option::Option<::prost::alloc::string::String>,
4441    #[prost(uint32, optional, tag = "4")]
4442    pub spawngrouphandle: ::core::option::Option<u32>,
4443    #[prost(uint32, optional, tag = "5")]
4444    pub spawngroupownerhandle: ::core::option::Option<u32>,
4445    #[prost(message, optional, tag = "6")]
4446    pub world_offset_pos: ::core::option::Option<CMsgVector>,
4447    #[prost(message, optional, tag = "7")]
4448    pub world_offset_angle: ::core::option::Option<CMsgQAngle>,
4449    #[prost(bytes = "vec", optional, tag = "8")]
4450    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4451    #[prost(uint32, optional, tag = "9")]
4452    pub flags: ::core::option::Option<u32>,
4453    #[prost(int32, optional, tag = "10")]
4454    pub tickcount: ::core::option::Option<i32>,
4455    #[prost(bool, optional, tag = "11")]
4456    pub manifestincomplete: ::core::option::Option<bool>,
4457    #[prost(string, optional, tag = "12")]
4458    pub localnamefixup: ::core::option::Option<::prost::alloc::string::String>,
4459    #[prost(string, optional, tag = "13")]
4460    pub parentnamefixup: ::core::option::Option<::prost::alloc::string::String>,
4461    #[prost(int32, optional, tag = "14")]
4462    pub manifestloadpriority: ::core::option::Option<i32>,
4463    #[prost(uint32, optional, tag = "15")]
4464    pub worldgroupid: ::core::option::Option<u32>,
4465    #[prost(uint32, optional, tag = "16")]
4466    pub creationsequence: ::core::option::Option<u32>,
4467    #[prost(string, optional, tag = "17")]
4468    pub savegamefilename: ::core::option::Option<::prost::alloc::string::String>,
4469    #[prost(uint32, optional, tag = "18")]
4470    pub spawngroupparenthandle: ::core::option::Option<u32>,
4471    #[prost(bool, optional, tag = "19")]
4472    pub leveltransition: ::core::option::Option<bool>,
4473    #[prost(string, optional, tag = "20")]
4474    pub worldgroupname: ::core::option::Option<::prost::alloc::string::String>,
4475}
4476#[derive(serde::Serialize, serde::Deserialize)]
4477#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4478pub struct CnetMsgSpawnGroupManifestUpdate {
4479    #[prost(uint32, optional, tag = "1")]
4480    pub spawngrouphandle: ::core::option::Option<u32>,
4481    #[prost(bytes = "vec", optional, tag = "2")]
4482    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4483    #[prost(bool, optional, tag = "3")]
4484    pub manifestincomplete: ::core::option::Option<bool>,
4485}
4486#[derive(serde::Serialize, serde::Deserialize)]
4487#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4488pub struct CnetMsgSpawnGroupSetCreationTick {
4489    #[prost(uint32, optional, tag = "1")]
4490    pub spawngrouphandle: ::core::option::Option<u32>,
4491    #[prost(int32, optional, tag = "2")]
4492    pub tickcount: ::core::option::Option<i32>,
4493    #[prost(uint32, optional, tag = "3")]
4494    pub creationsequence: ::core::option::Option<u32>,
4495}
4496#[derive(serde::Serialize, serde::Deserialize)]
4497#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4498pub struct CnetMsgSpawnGroupUnload {
4499    #[prost(uint32, optional, tag = "1")]
4500    pub spawngrouphandle: ::core::option::Option<u32>,
4501    #[prost(uint32, optional, tag = "2")]
4502    pub flags: ::core::option::Option<u32>,
4503    #[prost(int32, optional, tag = "3")]
4504    pub tickcount: ::core::option::Option<i32>,
4505}
4506#[derive(serde::Serialize, serde::Deserialize)]
4507#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4508pub struct CnetMsgSpawnGroupLoadCompleted {
4509    #[prost(uint32, optional, tag = "1")]
4510    pub spawngrouphandle: ::core::option::Option<u32>,
4511}
4512#[derive(serde::Serialize, serde::Deserialize)]
4513#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4514pub struct CsvcMsgGameSessionConfiguration {
4515    #[prost(bool, optional, tag = "1")]
4516    pub is_multiplayer: ::core::option::Option<bool>,
4517    #[prost(bool, optional, tag = "2")]
4518    pub is_loadsavegame: ::core::option::Option<bool>,
4519    #[prost(bool, optional, tag = "3")]
4520    pub is_background_map: ::core::option::Option<bool>,
4521    #[prost(bool, optional, tag = "4")]
4522    pub is_headless: ::core::option::Option<bool>,
4523    #[prost(uint32, optional, tag = "5")]
4524    pub min_client_limit: ::core::option::Option<u32>,
4525    #[prost(uint32, optional, tag = "6")]
4526    pub max_client_limit: ::core::option::Option<u32>,
4527    #[prost(uint32, optional, tag = "7")]
4528    pub max_clients: ::core::option::Option<u32>,
4529    #[prost(fixed32, optional, tag = "8")]
4530    pub tick_interval: ::core::option::Option<u32>,
4531    #[prost(string, optional, tag = "9")]
4532    pub hostname: ::core::option::Option<::prost::alloc::string::String>,
4533    #[prost(string, optional, tag = "10")]
4534    pub savegamename: ::core::option::Option<::prost::alloc::string::String>,
4535    #[prost(string, optional, tag = "11")]
4536    pub s1_mapname: ::core::option::Option<::prost::alloc::string::String>,
4537    #[prost(string, optional, tag = "12")]
4538    pub gamemode: ::core::option::Option<::prost::alloc::string::String>,
4539    #[prost(string, optional, tag = "13")]
4540    pub server_ip_address: ::core::option::Option<::prost::alloc::string::String>,
4541    #[prost(bytes = "vec", optional, tag = "14")]
4542    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4543    #[prost(bool, optional, tag = "15")]
4544    pub is_localonly: ::core::option::Option<bool>,
4545    #[prost(bool, optional, tag = "19")]
4546    pub no_steam_server: ::core::option::Option<bool>,
4547    #[prost(bool, optional, tag = "16")]
4548    pub is_transition: ::core::option::Option<bool>,
4549    #[prost(string, optional, tag = "17")]
4550    pub previouslevel: ::core::option::Option<::prost::alloc::string::String>,
4551    #[prost(string, optional, tag = "18")]
4552    pub landmarkname: ::core::option::Option<::prost::alloc::string::String>,
4553}
4554#[derive(serde::Serialize, serde::Deserialize)]
4555#[derive(Clone, PartialEq, ::prost::Message)]
4556pub struct CnetMsgDebugOverlay {
4557    #[prost(int32, optional, tag = "1")]
4558    pub etype: ::core::option::Option<i32>,
4559    #[prost(message, repeated, tag = "2")]
4560    pub vectors: ::prost::alloc::vec::Vec<CMsgVector>,
4561    #[prost(message, repeated, tag = "3")]
4562    pub colors: ::prost::alloc::vec::Vec<CMsgRgba>,
4563    #[prost(float, repeated, packed = "false", tag = "4")]
4564    pub dimensions: ::prost::alloc::vec::Vec<f32>,
4565    #[prost(float, repeated, packed = "false", tag = "5")]
4566    pub times: ::prost::alloc::vec::Vec<f32>,
4567    #[prost(bool, repeated, packed = "false", tag = "6")]
4568    pub bools: ::prost::alloc::vec::Vec<bool>,
4569    #[prost(uint64, repeated, packed = "false", tag = "7")]
4570    pub uint64s: ::prost::alloc::vec::Vec<u64>,
4571    #[prost(string, repeated, tag = "8")]
4572    pub strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4573}
4574#[derive(serde::Serialize, serde::Deserialize)]
4575#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4576#[repr(i32)]
4577pub enum SignonStateT {
4578    SignonstateNone = 0,
4579    SignonstateChallenge = 1,
4580    SignonstateConnected = 2,
4581    SignonstateNew = 3,
4582    SignonstatePrespawn = 4,
4583    SignonstateSpawn = 5,
4584    SignonstateFull = 6,
4585    SignonstateChangelevel = 7,
4586}
4587impl SignonStateT {
4588    /// String value of the enum field names used in the ProtoBuf definition.
4589    ///
4590    /// The values are not transformed in any way and thus are considered stable
4591    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4592    pub fn as_str_name(&self) -> &'static str {
4593        match self {
4594            Self::SignonstateNone => "SIGNONSTATE_NONE",
4595            Self::SignonstateChallenge => "SIGNONSTATE_CHALLENGE",
4596            Self::SignonstateConnected => "SIGNONSTATE_CONNECTED",
4597            Self::SignonstateNew => "SIGNONSTATE_NEW",
4598            Self::SignonstatePrespawn => "SIGNONSTATE_PRESPAWN",
4599            Self::SignonstateSpawn => "SIGNONSTATE_SPAWN",
4600            Self::SignonstateFull => "SIGNONSTATE_FULL",
4601            Self::SignonstateChangelevel => "SIGNONSTATE_CHANGELEVEL",
4602        }
4603    }
4604    /// Creates an enum from field names used in the ProtoBuf definition.
4605    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4606        match value {
4607            "SIGNONSTATE_NONE" => Some(Self::SignonstateNone),
4608            "SIGNONSTATE_CHALLENGE" => Some(Self::SignonstateChallenge),
4609            "SIGNONSTATE_CONNECTED" => Some(Self::SignonstateConnected),
4610            "SIGNONSTATE_NEW" => Some(Self::SignonstateNew),
4611            "SIGNONSTATE_PRESPAWN" => Some(Self::SignonstatePrespawn),
4612            "SIGNONSTATE_SPAWN" => Some(Self::SignonstateSpawn),
4613            "SIGNONSTATE_FULL" => Some(Self::SignonstateFull),
4614            "SIGNONSTATE_CHANGELEVEL" => Some(Self::SignonstateChangelevel),
4615            _ => None,
4616        }
4617    }
4618}
4619#[derive(serde::Serialize, serde::Deserialize)]
4620#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4621#[repr(i32)]
4622pub enum NetMessages {
4623    NetNop = 0,
4624    NetDisconnectLegacy = 1,
4625    NetSplitScreenUser = 3,
4626    NetTick = 4,
4627    NetStringCmd = 5,
4628    NetSetConVar = 6,
4629    NetSignonState = 7,
4630    NetSpawnGroupLoad = 8,
4631    NetSpawnGroupManifestUpdate = 9,
4632    NetSpawnGroupSetCreationTick = 11,
4633    NetSpawnGroupUnload = 12,
4634    NetSpawnGroupLoadCompleted = 13,
4635    NetDebugOverlay = 15,
4636}
4637impl NetMessages {
4638    /// String value of the enum field names used in the ProtoBuf definition.
4639    ///
4640    /// The values are not transformed in any way and thus are considered stable
4641    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4642    pub fn as_str_name(&self) -> &'static str {
4643        match self {
4644            Self::NetNop => "net_NOP",
4645            Self::NetDisconnectLegacy => "net_Disconnect_Legacy",
4646            Self::NetSplitScreenUser => "net_SplitScreenUser",
4647            Self::NetTick => "net_Tick",
4648            Self::NetStringCmd => "net_StringCmd",
4649            Self::NetSetConVar => "net_SetConVar",
4650            Self::NetSignonState => "net_SignonState",
4651            Self::NetSpawnGroupLoad => "net_SpawnGroup_Load",
4652            Self::NetSpawnGroupManifestUpdate => "net_SpawnGroup_ManifestUpdate",
4653            Self::NetSpawnGroupSetCreationTick => "net_SpawnGroup_SetCreationTick",
4654            Self::NetSpawnGroupUnload => "net_SpawnGroup_Unload",
4655            Self::NetSpawnGroupLoadCompleted => "net_SpawnGroup_LoadCompleted",
4656            Self::NetDebugOverlay => "net_DebugOverlay",
4657        }
4658    }
4659    /// Creates an enum from field names used in the ProtoBuf definition.
4660    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4661        match value {
4662            "net_NOP" => Some(Self::NetNop),
4663            "net_Disconnect_Legacy" => Some(Self::NetDisconnectLegacy),
4664            "net_SplitScreenUser" => Some(Self::NetSplitScreenUser),
4665            "net_Tick" => Some(Self::NetTick),
4666            "net_StringCmd" => Some(Self::NetStringCmd),
4667            "net_SetConVar" => Some(Self::NetSetConVar),
4668            "net_SignonState" => Some(Self::NetSignonState),
4669            "net_SpawnGroup_Load" => Some(Self::NetSpawnGroupLoad),
4670            "net_SpawnGroup_ManifestUpdate" => Some(Self::NetSpawnGroupManifestUpdate),
4671            "net_SpawnGroup_SetCreationTick" => Some(Self::NetSpawnGroupSetCreationTick),
4672            "net_SpawnGroup_Unload" => Some(Self::NetSpawnGroupUnload),
4673            "net_SpawnGroup_LoadCompleted" => Some(Self::NetSpawnGroupLoadCompleted),
4674            "net_DebugOverlay" => Some(Self::NetDebugOverlay),
4675            _ => None,
4676        }
4677    }
4678}
4679#[derive(serde::Serialize, serde::Deserialize)]
4680#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4681#[repr(i32)]
4682pub enum SpawnGroupFlagsT {
4683    SpawnGroupLoadEntitiesFromSave = 1,
4684    SpawnGroupDontSpawnEntities = 2,
4685    SpawnGroupSynchronousSpawn = 4,
4686    SpawnGroupIsInitialSpawnGroup = 8,
4687    SpawnGroupCreateClientOnlyEntities = 16,
4688    SpawnGroupBlockUntilLoaded = 64,
4689    SpawnGroupLoadStreamingData = 128,
4690    SpawnGroupCreateNewSceneWorld = 256,
4691}
4692impl SpawnGroupFlagsT {
4693    /// String value of the enum field names used in the ProtoBuf definition.
4694    ///
4695    /// The values are not transformed in any way and thus are considered stable
4696    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4697    pub fn as_str_name(&self) -> &'static str {
4698        match self {
4699            Self::SpawnGroupLoadEntitiesFromSave => "SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE",
4700            Self::SpawnGroupDontSpawnEntities => "SPAWN_GROUP_DONT_SPAWN_ENTITIES",
4701            Self::SpawnGroupSynchronousSpawn => "SPAWN_GROUP_SYNCHRONOUS_SPAWN",
4702            Self::SpawnGroupIsInitialSpawnGroup => "SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP",
4703            Self::SpawnGroupCreateClientOnlyEntities => {
4704                "SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES"
4705            }
4706            Self::SpawnGroupBlockUntilLoaded => "SPAWN_GROUP_BLOCK_UNTIL_LOADED",
4707            Self::SpawnGroupLoadStreamingData => "SPAWN_GROUP_LOAD_STREAMING_DATA",
4708            Self::SpawnGroupCreateNewSceneWorld => "SPAWN_GROUP_CREATE_NEW_SCENE_WORLD",
4709        }
4710    }
4711    /// Creates an enum from field names used in the ProtoBuf definition.
4712    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4713        match value {
4714            "SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE" => {
4715                Some(Self::SpawnGroupLoadEntitiesFromSave)
4716            }
4717            "SPAWN_GROUP_DONT_SPAWN_ENTITIES" => Some(Self::SpawnGroupDontSpawnEntities),
4718            "SPAWN_GROUP_SYNCHRONOUS_SPAWN" => Some(Self::SpawnGroupSynchronousSpawn),
4719            "SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP" => {
4720                Some(Self::SpawnGroupIsInitialSpawnGroup)
4721            }
4722            "SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES" => {
4723                Some(Self::SpawnGroupCreateClientOnlyEntities)
4724            }
4725            "SPAWN_GROUP_BLOCK_UNTIL_LOADED" => Some(Self::SpawnGroupBlockUntilLoaded),
4726            "SPAWN_GROUP_LOAD_STREAMING_DATA" => Some(Self::SpawnGroupLoadStreamingData),
4727            "SPAWN_GROUP_CREATE_NEW_SCENE_WORLD" => {
4728                Some(Self::SpawnGroupCreateNewSceneWorld)
4729            }
4730            _ => None,
4731        }
4732    }
4733}
4734#[derive(serde::Serialize, serde::Deserialize)]
4735#[derive(Clone, PartialEq, ::prost::Message)]
4736pub struct CModifierTableEntry {
4737    #[prost(enumeration = "ModifierEntryType", optional, tag = "1", default = "Active")]
4738    pub entry_type: ::core::option::Option<i32>,
4739    #[prost(uint32, optional, tag = "2", default = "16777215")]
4740    pub parent: ::core::option::Option<u32>,
4741    #[prost(uint32, optional, tag = "3")]
4742    pub serial_number: ::core::option::Option<u32>,
4743    #[prost(uint32, optional, tag = "4", default = "0")]
4744    pub modifier_subclass: ::core::option::Option<u32>,
4745    #[prost(int32, optional, tag = "5")]
4746    pub stack_count: ::core::option::Option<i32>,
4747    #[prost(int32, optional, tag = "6")]
4748    pub max_stack_count: ::core::option::Option<i32>,
4749    #[prost(float, optional, tag = "7")]
4750    pub last_applied_time: ::core::option::Option<f32>,
4751    #[prost(float, optional, tag = "8", default = "-1")]
4752    pub duration: ::core::option::Option<f32>,
4753    #[prost(uint32, optional, tag = "9", default = "16777215")]
4754    pub caster: ::core::option::Option<u32>,
4755    #[prost(uint32, optional, tag = "10", default = "16777215")]
4756    pub ability: ::core::option::Option<u32>,
4757    #[prost(int32, optional, tag = "11")]
4758    pub aura_provider_serial_number: ::core::option::Option<i32>,
4759    #[prost(uint32, optional, tag = "12", default = "16777215")]
4760    pub aura_provider_ehandle: ::core::option::Option<u32>,
4761    #[prost(uint32, optional, tag = "13", default = "0")]
4762    pub ability_subclass: ::core::option::Option<u32>,
4763    #[prost(bool, optional, tag = "14")]
4764    pub in_aura_range: ::core::option::Option<bool>,
4765    #[prost(bool, optional, tag = "20")]
4766    pub bool1: ::core::option::Option<bool>,
4767    #[prost(bool, optional, tag = "21")]
4768    pub bool2: ::core::option::Option<bool>,
4769    #[prost(bool, optional, tag = "22")]
4770    pub bool3: ::core::option::Option<bool>,
4771    #[prost(bool, optional, tag = "23")]
4772    pub bool4: ::core::option::Option<bool>,
4773    #[prost(int32, optional, tag = "25")]
4774    pub int1: ::core::option::Option<i32>,
4775    #[prost(int32, optional, tag = "26")]
4776    pub int2: ::core::option::Option<i32>,
4777    #[prost(int32, optional, tag = "27")]
4778    pub int3: ::core::option::Option<i32>,
4779    #[prost(int32, optional, tag = "28")]
4780    pub int4: ::core::option::Option<i32>,
4781    #[prost(float, optional, tag = "30")]
4782    pub float1: ::core::option::Option<f32>,
4783    #[prost(float, optional, tag = "31")]
4784    pub float2: ::core::option::Option<f32>,
4785    #[prost(float, optional, tag = "32")]
4786    pub float3: ::core::option::Option<f32>,
4787    #[prost(float, optional, tag = "33")]
4788    pub float4: ::core::option::Option<f32>,
4789    #[prost(float, optional, tag = "49")]
4790    pub float5: ::core::option::Option<f32>,
4791    #[prost(float, optional, tag = "50")]
4792    pub float6: ::core::option::Option<f32>,
4793    #[prost(float, optional, tag = "51")]
4794    pub float7: ::core::option::Option<f32>,
4795    #[prost(float, optional, tag = "52")]
4796    pub float8: ::core::option::Option<f32>,
4797    #[prost(float, optional, tag = "53")]
4798    pub float9: ::core::option::Option<f32>,
4799    #[prost(float, optional, tag = "54")]
4800    pub float10: ::core::option::Option<f32>,
4801    #[prost(float, optional, tag = "55")]
4802    pub float11: ::core::option::Option<f32>,
4803    #[prost(float, optional, tag = "56")]
4804    pub float12: ::core::option::Option<f32>,
4805    #[prost(float, optional, tag = "57")]
4806    pub float13: ::core::option::Option<f32>,
4807    #[prost(float, optional, tag = "58")]
4808    pub float14: ::core::option::Option<f32>,
4809    #[prost(float, optional, tag = "59")]
4810    pub float15: ::core::option::Option<f32>,
4811    #[prost(float, optional, tag = "60")]
4812    pub float16: ::core::option::Option<f32>,
4813    #[prost(uint64, optional, tag = "35")]
4814    pub uint1: ::core::option::Option<u64>,
4815    #[prost(uint64, optional, tag = "36")]
4816    pub uint2: ::core::option::Option<u64>,
4817    #[prost(uint64, optional, tag = "37")]
4818    pub uint3: ::core::option::Option<u64>,
4819    #[prost(uint64, optional, tag = "38")]
4820    pub uint4: ::core::option::Option<u64>,
4821    #[prost(message, optional, tag = "40")]
4822    pub vec1: ::core::option::Option<CMsgVector>,
4823    #[prost(message, optional, tag = "41")]
4824    pub vec2: ::core::option::Option<CMsgVector>,
4825    #[prost(message, optional, tag = "42")]
4826    pub vec3: ::core::option::Option<CMsgVector>,
4827    #[prost(message, optional, tag = "43")]
4828    pub vec4: ::core::option::Option<CMsgVector>,
4829    #[prost(string, optional, tag = "45")]
4830    pub string1: ::core::option::Option<::prost::alloc::string::String>,
4831    #[prost(string, optional, tag = "46")]
4832    pub string2: ::core::option::Option<::prost::alloc::string::String>,
4833    #[prost(string, optional, tag = "47")]
4834    pub string3: ::core::option::Option<::prost::alloc::string::String>,
4835    #[prost(string, optional, tag = "48")]
4836    pub string4: ::core::option::Option<::prost::alloc::string::String>,
4837}
4838#[derive(serde::Serialize, serde::Deserialize)]
4839#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4840#[repr(i32)]
4841pub enum ModifierEntryType {
4842    Active = 1,
4843    Removed = 2,
4844}
4845impl ModifierEntryType {
4846    /// String value of the enum field names used in the ProtoBuf definition.
4847    ///
4848    /// The values are not transformed in any way and thus are considered stable
4849    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4850    pub fn as_str_name(&self) -> &'static str {
4851        match self {
4852            Self::Active => "MODIFIER_ENTRY_TYPE_ACTIVE",
4853            Self::Removed => "MODIFIER_ENTRY_TYPE_REMOVED",
4854        }
4855    }
4856    /// Creates an enum from field names used in the ProtoBuf definition.
4857    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4858        match value {
4859            "MODIFIER_ENTRY_TYPE_ACTIVE" => Some(Self::Active),
4860            "MODIFIER_ENTRY_TYPE_REMOVED" => Some(Self::Removed),
4861            _ => None,
4862        }
4863    }
4864}
4865#[derive(serde::Serialize, serde::Deserialize)]
4866#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4867pub struct CMsgSource2SystemSpecs {
4868    #[prost(string, optional, tag = "1")]
4869    pub cpu_id: ::core::option::Option<::prost::alloc::string::String>,
4870    #[prost(string, optional, tag = "2")]
4871    pub cpu_brand: ::core::option::Option<::prost::alloc::string::String>,
4872    #[prost(uint32, optional, tag = "3")]
4873    pub cpu_model: ::core::option::Option<u32>,
4874    #[prost(uint32, optional, tag = "4")]
4875    pub cpu_num_physical: ::core::option::Option<u32>,
4876    #[prost(uint32, optional, tag = "21")]
4877    pub ram_physical_total_mb: ::core::option::Option<u32>,
4878    #[prost(string, optional, tag = "41")]
4879    pub gpu_rendersystem_dll_name: ::core::option::Option<
4880        ::prost::alloc::string::String,
4881    >,
4882    #[prost(uint32, optional, tag = "42")]
4883    pub gpu_vendor_id: ::core::option::Option<u32>,
4884    #[prost(string, optional, tag = "43")]
4885    pub gpu_driver_name: ::core::option::Option<::prost::alloc::string::String>,
4886    #[prost(uint32, optional, tag = "44")]
4887    pub gpu_driver_version_high: ::core::option::Option<u32>,
4888    #[prost(uint32, optional, tag = "45")]
4889    pub gpu_driver_version_low: ::core::option::Option<u32>,
4890    #[prost(uint32, optional, tag = "46")]
4891    pub gpu_dx_support_level: ::core::option::Option<u32>,
4892    #[prost(uint32, optional, tag = "47")]
4893    pub gpu_texture_memory_size_mb: ::core::option::Option<u32>,
4894    #[prost(uint32, optional, tag = "51")]
4895    pub backbuffer_width: ::core::option::Option<u32>,
4896    #[prost(uint32, optional, tag = "52")]
4897    pub backbuffer_height: ::core::option::Option<u32>,
4898}
4899#[derive(serde::Serialize, serde::Deserialize)]
4900#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4901pub struct CMsgSource2VProfLiteReportItem {
4902    #[prost(string, optional, tag = "1")]
4903    pub name: ::core::option::Option<::prost::alloc::string::String>,
4904    #[prost(uint32, optional, tag = "2")]
4905    pub active_samples: ::core::option::Option<u32>,
4906    #[prost(uint32, optional, tag = "4")]
4907    pub active_samples_1secmax: ::core::option::Option<u32>,
4908    #[prost(uint32, optional, tag = "3")]
4909    pub usec_max: ::core::option::Option<u32>,
4910    #[prost(uint32, optional, tag = "11")]
4911    pub usec_avg_active: ::core::option::Option<u32>,
4912    #[prost(uint32, optional, tag = "12")]
4913    pub usec_p50_active: ::core::option::Option<u32>,
4914    #[prost(uint32, optional, tag = "13")]
4915    pub usec_p99_active: ::core::option::Option<u32>,
4916    #[prost(uint32, optional, tag = "21")]
4917    pub usec_avg_all: ::core::option::Option<u32>,
4918    #[prost(uint32, optional, tag = "22")]
4919    pub usec_p50_all: ::core::option::Option<u32>,
4920    #[prost(uint32, optional, tag = "23")]
4921    pub usec_p99_all: ::core::option::Option<u32>,
4922    #[prost(uint32, optional, tag = "31")]
4923    pub usec_1secmax_avg_active: ::core::option::Option<u32>,
4924    #[prost(uint32, optional, tag = "32")]
4925    pub usec_1secmax_p50_active: ::core::option::Option<u32>,
4926    #[prost(uint32, optional, tag = "33")]
4927    pub usec_1secmax_p95_active: ::core::option::Option<u32>,
4928    #[prost(uint32, optional, tag = "34")]
4929    pub usec_1secmax_p99_active: ::core::option::Option<u32>,
4930    #[prost(uint32, optional, tag = "41")]
4931    pub usec_1secmax_avg_all: ::core::option::Option<u32>,
4932    #[prost(uint32, optional, tag = "42")]
4933    pub usec_1secmax_p50_all: ::core::option::Option<u32>,
4934    #[prost(uint32, optional, tag = "43")]
4935    pub usec_1secmax_p95_all: ::core::option::Option<u32>,
4936    #[prost(uint32, optional, tag = "44")]
4937    pub usec_1secmax_p99_all: ::core::option::Option<u32>,
4938}
4939#[derive(serde::Serialize, serde::Deserialize)]
4940#[derive(Clone, PartialEq, ::prost::Message)]
4941pub struct CMsgSource2VProfLiteReport {
4942    #[prost(message, optional, tag = "1")]
4943    pub total: ::core::option::Option<CMsgSource2VProfLiteReportItem>,
4944    #[prost(message, repeated, tag = "2")]
4945    pub items: ::prost::alloc::vec::Vec<CMsgSource2VProfLiteReportItem>,
4946    #[prost(uint32, optional, tag = "3")]
4947    pub discarded_frames: ::core::option::Option<u32>,
4948}
4949#[derive(serde::Serialize, serde::Deserialize)]
4950#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4951pub struct CMsgSource2NetworkFlowQuality {
4952    #[prost(uint32, optional, tag = "1")]
4953    pub duration: ::core::option::Option<u32>,
4954    #[prost(uint64, optional, tag = "5")]
4955    pub bytes_total: ::core::option::Option<u64>,
4956    #[prost(uint64, optional, tag = "6")]
4957    pub bytes_total_reliable: ::core::option::Option<u64>,
4958    #[prost(uint64, optional, tag = "7")]
4959    pub bytes_total_voice: ::core::option::Option<u64>,
4960    #[prost(uint32, optional, tag = "10")]
4961    pub bytes_sec_p95: ::core::option::Option<u32>,
4962    #[prost(uint32, optional, tag = "11")]
4963    pub bytes_sec_p99: ::core::option::Option<u32>,
4964    #[prost(uint32, optional, tag = "20")]
4965    pub enginemsgs_total: ::core::option::Option<u32>,
4966    #[prost(uint32, optional, tag = "21")]
4967    pub enginemsgs_sec_p95: ::core::option::Option<u32>,
4968    #[prost(uint32, optional, tag = "22")]
4969    pub enginemsgs_sec_p99: ::core::option::Option<u32>,
4970    #[prost(uint32, optional, tag = "30")]
4971    pub netframes_total: ::core::option::Option<u32>,
4972    #[prost(uint32, optional, tag = "31")]
4973    pub netframes_dropped: ::core::option::Option<u32>,
4974    #[prost(uint32, optional, tag = "32")]
4975    pub netframes_outoforder: ::core::option::Option<u32>,
4976    #[prost(uint32, optional, tag = "34")]
4977    pub netframes_size_exceeds_mtu: ::core::option::Option<u32>,
4978    #[prost(uint32, optional, tag = "35")]
4979    pub netframes_size_p95: ::core::option::Option<u32>,
4980    #[prost(uint32, optional, tag = "36")]
4981    pub netframes_size_p99: ::core::option::Option<u32>,
4982    #[prost(uint32, optional, tag = "40")]
4983    pub ticks_total: ::core::option::Option<u32>,
4984    #[prost(uint32, optional, tag = "41")]
4985    pub ticks_good: ::core::option::Option<u32>,
4986    #[prost(uint32, optional, tag = "42")]
4987    pub ticks_good_almost_late: ::core::option::Option<u32>,
4988    #[prost(uint32, optional, tag = "43")]
4989    pub ticks_fixed_dropped: ::core::option::Option<u32>,
4990    #[prost(uint32, optional, tag = "44")]
4991    pub ticks_fixed_late: ::core::option::Option<u32>,
4992    #[prost(uint32, optional, tag = "45")]
4993    pub ticks_bad_dropped: ::core::option::Option<u32>,
4994    #[prost(uint32, optional, tag = "46")]
4995    pub ticks_bad_late: ::core::option::Option<u32>,
4996    #[prost(uint32, optional, tag = "47")]
4997    pub ticks_bad_other: ::core::option::Option<u32>,
4998    #[prost(uint32, optional, tag = "50")]
4999    pub tick_missrate_samples_total: ::core::option::Option<u32>,
5000    #[prost(uint32, optional, tag = "51")]
5001    pub tick_missrate_samples_perfect: ::core::option::Option<u32>,
5002    #[prost(uint32, optional, tag = "52")]
5003    pub tick_missrate_samples_perfectnet: ::core::option::Option<u32>,
5004    #[prost(uint32, optional, tag = "53")]
5005    pub tick_missratenet_p75_x10: ::core::option::Option<u32>,
5006    #[prost(uint32, optional, tag = "54")]
5007    pub tick_missratenet_p95_x10: ::core::option::Option<u32>,
5008    #[prost(uint32, optional, tag = "55")]
5009    pub tick_missratenet_p99_x10: ::core::option::Option<u32>,
5010    #[prost(sint32, optional, tag = "61")]
5011    pub recvmargin_p1: ::core::option::Option<i32>,
5012    #[prost(sint32, optional, tag = "62")]
5013    pub recvmargin_p5: ::core::option::Option<i32>,
5014    #[prost(sint32, optional, tag = "63")]
5015    pub recvmargin_p25: ::core::option::Option<i32>,
5016    #[prost(sint32, optional, tag = "64")]
5017    pub recvmargin_p50: ::core::option::Option<i32>,
5018    #[prost(sint32, optional, tag = "65")]
5019    pub recvmargin_p75: ::core::option::Option<i32>,
5020    #[prost(sint32, optional, tag = "66")]
5021    pub recvmargin_p95: ::core::option::Option<i32>,
5022    #[prost(uint32, optional, tag = "70")]
5023    pub netframe_jitter_p50: ::core::option::Option<u32>,
5024    #[prost(uint32, optional, tag = "71")]
5025    pub netframe_jitter_p99: ::core::option::Option<u32>,
5026    #[prost(uint32, optional, tag = "72")]
5027    pub interval_peakjitter_p50: ::core::option::Option<u32>,
5028    #[prost(uint32, optional, tag = "73")]
5029    pub interval_peakjitter_p95: ::core::option::Option<u32>,
5030    #[prost(uint32, optional, tag = "74")]
5031    pub packet_misdelivery_rate_p50_x4: ::core::option::Option<u32>,
5032    #[prost(uint32, optional, tag = "75")]
5033    pub packet_misdelivery_rate_p95_x4: ::core::option::Option<u32>,
5034    #[prost(uint32, optional, tag = "80")]
5035    pub net_ping_p5: ::core::option::Option<u32>,
5036    #[prost(uint32, optional, tag = "81")]
5037    pub net_ping_p50: ::core::option::Option<u32>,
5038    #[prost(uint32, optional, tag = "82")]
5039    pub net_ping_p95: ::core::option::Option<u32>,
5040}
5041#[derive(serde::Serialize, serde::Deserialize)]
5042#[derive(Clone, PartialEq, ::prost::Message)]
5043pub struct CMsgSource2PerfIntervalSample {
5044    #[prost(float, optional, tag = "1")]
5045    pub frame_time_max_ms: ::core::option::Option<f32>,
5046    #[prost(float, optional, tag = "2")]
5047    pub frame_time_avg_ms: ::core::option::Option<f32>,
5048    #[prost(float, optional, tag = "3")]
5049    pub frame_time_min_ms: ::core::option::Option<f32>,
5050    #[prost(int32, optional, tag = "4")]
5051    pub frame_count: ::core::option::Option<i32>,
5052    #[prost(float, optional, tag = "5")]
5053    pub frame_time_total_ms: ::core::option::Option<f32>,
5054    #[prost(message, repeated, tag = "6")]
5055    pub tags: ::prost::alloc::vec::Vec<c_msg_source2_perf_interval_sample::Tag>,
5056}
5057/// Nested message and enum types in `CMsgSource2PerfIntervalSample`.
5058pub mod c_msg_source2_perf_interval_sample {
5059    #[derive(serde::Serialize, serde::Deserialize)]
5060    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5061    pub struct Tag {
5062        #[prost(string, optional, tag = "1")]
5063        pub tag: ::core::option::Option<::prost::alloc::string::String>,
5064        #[prost(uint32, optional, tag = "2")]
5065        pub max_value: ::core::option::Option<u32>,
5066    }
5067}
5068#[derive(serde::Serialize, serde::Deserialize)]
5069#[derive(Clone, PartialEq, ::prost::Message)]
5070pub struct CSource2MetricsMatchPerfSummaryNotification {
5071    #[prost(uint32, optional, tag = "1")]
5072    pub appid: ::core::option::Option<u32>,
5073    #[prost(string, optional, tag = "2")]
5074    pub game_mode: ::core::option::Option<::prost::alloc::string::String>,
5075    #[prost(uint32, optional, tag = "3")]
5076    pub server_build_id: ::core::option::Option<u32>,
5077    #[prost(fixed32, optional, tag = "4")]
5078    pub server_popid: ::core::option::Option<u32>,
5079    #[prost(message, optional, tag = "10")]
5080    pub server_profile: ::core::option::Option<CMsgSource2VProfLiteReport>,
5081    #[prost(message, repeated, tag = "11")]
5082    pub clients: ::prost::alloc::vec::Vec<
5083        c_source2_metrics_match_perf_summary_notification::Client,
5084    >,
5085    #[prost(string, optional, tag = "20")]
5086    pub map: ::core::option::Option<::prost::alloc::string::String>,
5087}
5088/// Nested message and enum types in `CSource2Metrics_MatchPerfSummary_Notification`.
5089pub mod c_source2_metrics_match_perf_summary_notification {
5090    #[derive(serde::Serialize, serde::Deserialize)]
5091    #[derive(Clone, PartialEq, ::prost::Message)]
5092    pub struct Client {
5093        #[prost(message, optional, tag = "1")]
5094        pub system_specs: ::core::option::Option<super::CMsgSource2SystemSpecs>,
5095        #[prost(message, optional, tag = "2")]
5096        pub profile: ::core::option::Option<super::CMsgSource2VProfLiteReport>,
5097        #[prost(uint32, optional, tag = "3")]
5098        pub build_id: ::core::option::Option<u32>,
5099        #[prost(message, optional, tag = "4")]
5100        pub downstream_flow: ::core::option::Option<
5101            super::CMsgSource2NetworkFlowQuality,
5102        >,
5103        #[prost(message, optional, tag = "5")]
5104        pub upstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
5105        #[prost(fixed64, optional, tag = "10")]
5106        pub steamid: ::core::option::Option<u64>,
5107        #[prost(message, repeated, tag = "11")]
5108        pub perf_samples: ::prost::alloc::vec::Vec<super::CMsgSource2PerfIntervalSample>,
5109    }
5110}
5111#[derive(serde::Serialize, serde::Deserialize)]
5112#[derive(Clone, PartialEq, ::prost::Message)]
5113pub struct CMsgSource2PlayStatsPackedRecordList {
5114    #[prost(string, optional, tag = "1")]
5115    pub record_name: ::core::option::Option<::prost::alloc::string::String>,
5116    #[prost(message, repeated, tag = "2")]
5117    pub field_defs: ::prost::alloc::vec::Vec<
5118        c_msg_source2_play_stats_packed_record_list::FieldDef,
5119    >,
5120    #[prost(uint32, optional, tag = "3")]
5121    pub record_count: ::core::option::Option<u32>,
5122    #[prost(uint64, repeated, tag = "4")]
5123    pub uint64_vals: ::prost::alloc::vec::Vec<u64>,
5124    #[prost(uint32, repeated, tag = "5")]
5125    pub uint32_vals: ::prost::alloc::vec::Vec<u32>,
5126    #[prost(uint32, repeated, tag = "6")]
5127    pub uint16_vals: ::prost::alloc::vec::Vec<u32>,
5128    #[prost(uint32, repeated, tag = "7")]
5129    pub uint8_vals: ::prost::alloc::vec::Vec<u32>,
5130    #[prost(int64, repeated, tag = "8")]
5131    pub int64_vals: ::prost::alloc::vec::Vec<i64>,
5132    #[prost(int32, repeated, tag = "9")]
5133    pub int32_vals: ::prost::alloc::vec::Vec<i32>,
5134    #[prost(int32, repeated, tag = "10")]
5135    pub int16_vals: ::prost::alloc::vec::Vec<i32>,
5136    #[prost(int32, repeated, tag = "11")]
5137    pub int8_vals: ::prost::alloc::vec::Vec<i32>,
5138    #[prost(double, repeated, tag = "12")]
5139    pub float64_vals: ::prost::alloc::vec::Vec<f64>,
5140    #[prost(float, repeated, tag = "13")]
5141    pub float32_vals: ::prost::alloc::vec::Vec<f32>,
5142    #[prost(bool, repeated, tag = "14")]
5143    pub bool_vals: ::prost::alloc::vec::Vec<bool>,
5144    #[prost(string, repeated, tag = "15")]
5145    pub string_vals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5146    #[prost(string, repeated, tag = "16")]
5147    pub low_cardinality_string_vals: ::prost::alloc::vec::Vec<
5148        ::prost::alloc::string::String,
5149    >,
5150    #[prost(fixed32, repeated, tag = "17")]
5151    pub utcdatetime_vals: ::prost::alloc::vec::Vec<u32>,
5152    #[prost(fixed64, repeated, tag = "18")]
5153    pub steamidtrustbucket_vals: ::prost::alloc::vec::Vec<u64>,
5154}
5155/// Nested message and enum types in `CMsgSource2PlayStatsPackedRecordList`.
5156pub mod c_msg_source2_play_stats_packed_record_list {
5157    #[derive(serde::Serialize, serde::Deserialize)]
5158    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5159    pub struct FieldDef {
5160        #[prost(string, optional, tag = "1")]
5161        pub field_name: ::core::option::Option<::prost::alloc::string::String>,
5162        #[prost(
5163            enumeration = "super::ESource2PlayStatsFieldType",
5164            optional,
5165            tag = "2",
5166            default = "Source2PlayStatsInvalid"
5167        )]
5168        pub field_type: ::core::option::Option<i32>,
5169    }
5170}
5171#[derive(serde::Serialize, serde::Deserialize)]
5172#[derive(Clone, PartialEq, ::prost::Message)]
5173pub struct CSource2MetricsRecordPlayStatsNotification {
5174    #[prost(message, repeated, tag = "1")]
5175    pub record_types: ::prost::alloc::vec::Vec<CMsgSource2PlayStatsPackedRecordList>,
5176    #[prost(uint32, optional, tag = "2")]
5177    pub appid: ::core::option::Option<u32>,
5178}
5179#[derive(serde::Serialize, serde::Deserialize)]
5180#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5181#[repr(i32)]
5182pub enum ESource2PlayStatsFieldType {
5183    Source2PlayStatsInvalid = 0,
5184    Source2PlayStatsUInt64 = 1,
5185    Source2PlayStatsUInt32 = 2,
5186    Source2PlayStatsUInt16 = 3,
5187    Source2PlayStatsUInt8 = 4,
5188    Source2PlayStatsInt64 = 5,
5189    Source2PlayStatsInt32 = 6,
5190    Source2PlayStatsInt16 = 7,
5191    Source2PlayStatsInt8 = 8,
5192    Source2PlayStatsFloat64 = 9,
5193    Source2PlayStatsFloat32 = 10,
5194    Source2PlayStatsBool = 11,
5195    Source2PlayStatsString = 12,
5196    Source2PlayStatsLowCardinalityString = 13,
5197    Source2PlayStatsUtcDateTime = 14,
5198    Source2PlayStatsSteamIdTrustBucket = 15,
5199}
5200impl ESource2PlayStatsFieldType {
5201    /// String value of the enum field names used in the ProtoBuf definition.
5202    ///
5203    /// The values are not transformed in any way and thus are considered stable
5204    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5205    pub fn as_str_name(&self) -> &'static str {
5206        match self {
5207            Self::Source2PlayStatsInvalid => "Source2PlayStats_Invalid",
5208            Self::Source2PlayStatsUInt64 => "Source2PlayStats_UInt64",
5209            Self::Source2PlayStatsUInt32 => "Source2PlayStats_UInt32",
5210            Self::Source2PlayStatsUInt16 => "Source2PlayStats_UInt16",
5211            Self::Source2PlayStatsUInt8 => "Source2PlayStats_UInt8",
5212            Self::Source2PlayStatsInt64 => "Source2PlayStats_Int64",
5213            Self::Source2PlayStatsInt32 => "Source2PlayStats_Int32",
5214            Self::Source2PlayStatsInt16 => "Source2PlayStats_Int16",
5215            Self::Source2PlayStatsInt8 => "Source2PlayStats_Int8",
5216            Self::Source2PlayStatsFloat64 => "Source2PlayStats_Float64",
5217            Self::Source2PlayStatsFloat32 => "Source2PlayStats_Float32",
5218            Self::Source2PlayStatsBool => "Source2PlayStats_Bool",
5219            Self::Source2PlayStatsString => "Source2PlayStats_String",
5220            Self::Source2PlayStatsLowCardinalityString => {
5221                "Source2PlayStats_LowCardinalityString"
5222            }
5223            Self::Source2PlayStatsUtcDateTime => "Source2PlayStats_UTCDateTime",
5224            Self::Source2PlayStatsSteamIdTrustBucket => {
5225                "Source2PlayStats_SteamIDTrustBucket"
5226            }
5227        }
5228    }
5229    /// Creates an enum from field names used in the ProtoBuf definition.
5230    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5231        match value {
5232            "Source2PlayStats_Invalid" => Some(Self::Source2PlayStatsInvalid),
5233            "Source2PlayStats_UInt64" => Some(Self::Source2PlayStatsUInt64),
5234            "Source2PlayStats_UInt32" => Some(Self::Source2PlayStatsUInt32),
5235            "Source2PlayStats_UInt16" => Some(Self::Source2PlayStatsUInt16),
5236            "Source2PlayStats_UInt8" => Some(Self::Source2PlayStatsUInt8),
5237            "Source2PlayStats_Int64" => Some(Self::Source2PlayStatsInt64),
5238            "Source2PlayStats_Int32" => Some(Self::Source2PlayStatsInt32),
5239            "Source2PlayStats_Int16" => Some(Self::Source2PlayStatsInt16),
5240            "Source2PlayStats_Int8" => Some(Self::Source2PlayStatsInt8),
5241            "Source2PlayStats_Float64" => Some(Self::Source2PlayStatsFloat64),
5242            "Source2PlayStats_Float32" => Some(Self::Source2PlayStatsFloat32),
5243            "Source2PlayStats_Bool" => Some(Self::Source2PlayStatsBool),
5244            "Source2PlayStats_String" => Some(Self::Source2PlayStatsString),
5245            "Source2PlayStats_LowCardinalityString" => {
5246                Some(Self::Source2PlayStatsLowCardinalityString)
5247            }
5248            "Source2PlayStats_UTCDateTime" => Some(Self::Source2PlayStatsUtcDateTime),
5249            "Source2PlayStats_SteamIDTrustBucket" => {
5250                Some(Self::Source2PlayStatsSteamIdTrustBucket)
5251            }
5252            _ => None,
5253        }
5254    }
5255}
5256#[derive(serde::Serialize, serde::Deserialize)]
5257#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5258pub struct CclcMsgClientInfo {
5259    #[prost(fixed32, optional, tag = "1")]
5260    pub send_table_crc: ::core::option::Option<u32>,
5261    #[prost(uint32, optional, tag = "2")]
5262    pub server_count: ::core::option::Option<u32>,
5263    #[prost(bool, optional, tag = "3")]
5264    pub is_hltv: ::core::option::Option<bool>,
5265    #[prost(uint32, optional, tag = "5")]
5266    pub friends_id: ::core::option::Option<u32>,
5267    #[prost(string, optional, tag = "6")]
5268    pub friends_name: ::core::option::Option<::prost::alloc::string::String>,
5269}
5270#[derive(serde::Serialize, serde::Deserialize)]
5271#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5272pub struct CclcMsgMove {
5273    #[prost(bytes = "vec", optional, tag = "3")]
5274    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5275    #[prost(uint32, optional, tag = "4")]
5276    pub last_command_number: ::core::option::Option<u32>,
5277}
5278#[derive(serde::Serialize, serde::Deserialize)]
5279#[derive(Clone, PartialEq, ::prost::Message)]
5280pub struct CMsgVoiceAudio {
5281    #[prost(
5282        enumeration = "VoiceDataFormatT",
5283        optional,
5284        tag = "1",
5285        default = "VoicedataFormatSteam"
5286    )]
5287    pub format: ::core::option::Option<i32>,
5288    #[prost(bytes = "vec", optional, tag = "2")]
5289    pub voice_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5290    #[prost(int32, optional, tag = "3")]
5291    pub sequence_bytes: ::core::option::Option<i32>,
5292    #[prost(uint32, optional, tag = "4")]
5293    pub section_number: ::core::option::Option<u32>,
5294    #[prost(uint32, optional, tag = "5")]
5295    pub sample_rate: ::core::option::Option<u32>,
5296    #[prost(uint32, optional, tag = "6")]
5297    pub uncompressed_sample_offset: ::core::option::Option<u32>,
5298    #[prost(uint32, optional, tag = "7")]
5299    pub num_packets: ::core::option::Option<u32>,
5300    #[prost(uint32, repeated, tag = "8")]
5301    pub packet_offsets: ::prost::alloc::vec::Vec<u32>,
5302    #[prost(float, optional, tag = "9")]
5303    pub voice_level: ::core::option::Option<f32>,
5304}
5305#[derive(serde::Serialize, serde::Deserialize)]
5306#[derive(Clone, PartialEq, ::prost::Message)]
5307pub struct CclcMsgVoiceData {
5308    #[prost(message, optional, tag = "1")]
5309    pub audio: ::core::option::Option<CMsgVoiceAudio>,
5310    #[prost(fixed64, optional, tag = "2")]
5311    pub xuid: ::core::option::Option<u64>,
5312    #[prost(uint32, optional, tag = "3")]
5313    pub tick: ::core::option::Option<u32>,
5314}
5315#[derive(serde::Serialize, serde::Deserialize)]
5316#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5317pub struct CclcMsgBaselineAck {
5318    #[prost(int32, optional, tag = "1")]
5319    pub baseline_tick: ::core::option::Option<i32>,
5320    #[prost(int32, optional, tag = "2")]
5321    pub baseline_nr: ::core::option::Option<i32>,
5322}
5323#[derive(serde::Serialize, serde::Deserialize)]
5324#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5325pub struct CclcMsgListenEvents {
5326    #[prost(fixed32, repeated, packed = "false", tag = "1")]
5327    pub event_mask: ::prost::alloc::vec::Vec<u32>,
5328}
5329#[derive(serde::Serialize, serde::Deserialize)]
5330#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5331pub struct CclcMsgRespondCvarValue {
5332    #[prost(int32, optional, tag = "1")]
5333    pub cookie: ::core::option::Option<i32>,
5334    #[prost(int32, optional, tag = "2")]
5335    pub status_code: ::core::option::Option<i32>,
5336    #[prost(string, optional, tag = "3")]
5337    pub name: ::core::option::Option<::prost::alloc::string::String>,
5338    #[prost(string, optional, tag = "4")]
5339    pub value: ::core::option::Option<::prost::alloc::string::String>,
5340}
5341#[derive(serde::Serialize, serde::Deserialize)]
5342#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5343pub struct CclcMsgLoadingProgress {
5344    #[prost(int32, optional, tag = "1")]
5345    pub progress: ::core::option::Option<i32>,
5346}
5347#[derive(serde::Serialize, serde::Deserialize)]
5348#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5349pub struct CclcMsgSplitPlayerConnect {
5350    #[prost(string, optional, tag = "1")]
5351    pub playername: ::core::option::Option<::prost::alloc::string::String>,
5352}
5353#[derive(serde::Serialize, serde::Deserialize)]
5354#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5355pub struct CclcMsgSplitPlayerDisconnect {
5356    #[prost(int32, optional, tag = "1")]
5357    pub slot: ::core::option::Option<i32>,
5358}
5359#[derive(serde::Serialize, serde::Deserialize)]
5360#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5361pub struct CclcMsgServerStatus {
5362    #[prost(bool, optional, tag = "1")]
5363    pub simplified: ::core::option::Option<bool>,
5364}
5365#[derive(serde::Serialize, serde::Deserialize)]
5366#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5367pub struct CclcMsgRequestPause {
5368    #[prost(enumeration = "RequestPauseT", optional, tag = "1", default = "RpPause")]
5369    pub pause_type: ::core::option::Option<i32>,
5370    #[prost(int32, optional, tag = "2")]
5371    pub pause_group: ::core::option::Option<i32>,
5372}
5373#[derive(serde::Serialize, serde::Deserialize)]
5374#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5375pub struct CclcMsgCmdKeyValues {
5376    #[prost(bytes = "vec", optional, tag = "1")]
5377    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5378}
5379#[derive(serde::Serialize, serde::Deserialize)]
5380#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5381pub struct CclcMsgRconServerDetails {
5382    #[prost(bytes = "vec", optional, tag = "1")]
5383    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5384}
5385#[derive(serde::Serialize, serde::Deserialize)]
5386#[derive(Clone, PartialEq, ::prost::Message)]
5387pub struct CclcMsgDiagnostic {
5388    #[prost(message, optional, tag = "1")]
5389    pub system_specs: ::core::option::Option<CMsgSource2SystemSpecs>,
5390    #[prost(message, optional, tag = "2")]
5391    pub vprof_report: ::core::option::Option<CMsgSource2VProfLiteReport>,
5392    #[prost(message, optional, tag = "3")]
5393    pub downstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
5394    #[prost(message, optional, tag = "4")]
5395    pub upstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
5396    #[prost(message, repeated, tag = "5")]
5397    pub perf_samples: ::prost::alloc::vec::Vec<CMsgSource2PerfIntervalSample>,
5398}
5399#[derive(serde::Serialize, serde::Deserialize)]
5400#[derive(Clone, PartialEq, ::prost::Message)]
5401pub struct CsvcMsgServerInfo {
5402    #[prost(int32, optional, tag = "1")]
5403    pub protocol: ::core::option::Option<i32>,
5404    #[prost(int32, optional, tag = "2")]
5405    pub server_count: ::core::option::Option<i32>,
5406    #[prost(bool, optional, tag = "3")]
5407    pub is_dedicated: ::core::option::Option<bool>,
5408    #[prost(bool, optional, tag = "4")]
5409    pub is_hltv: ::core::option::Option<bool>,
5410    #[prost(int32, optional, tag = "6")]
5411    pub c_os: ::core::option::Option<i32>,
5412    #[prost(int32, optional, tag = "10")]
5413    pub max_clients: ::core::option::Option<i32>,
5414    #[prost(int32, optional, tag = "11")]
5415    pub max_classes: ::core::option::Option<i32>,
5416    #[prost(int32, optional, tag = "12", default = "-1")]
5417    pub player_slot: ::core::option::Option<i32>,
5418    #[prost(float, optional, tag = "13")]
5419    pub tick_interval: ::core::option::Option<f32>,
5420    #[prost(string, optional, tag = "14")]
5421    pub game_dir: ::core::option::Option<::prost::alloc::string::String>,
5422    #[prost(string, optional, tag = "15")]
5423    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
5424    #[prost(string, optional, tag = "16")]
5425    pub sky_name: ::core::option::Option<::prost::alloc::string::String>,
5426    #[prost(string, optional, tag = "17")]
5427    pub host_name: ::core::option::Option<::prost::alloc::string::String>,
5428    #[prost(string, optional, tag = "18")]
5429    pub addon_name: ::core::option::Option<::prost::alloc::string::String>,
5430    #[prost(message, optional, tag = "19")]
5431    pub game_session_config: ::core::option::Option<CsvcMsgGameSessionConfiguration>,
5432    #[prost(bytes = "vec", optional, tag = "20")]
5433    pub game_session_manifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5434}
5435#[derive(serde::Serialize, serde::Deserialize)]
5436#[derive(Clone, PartialEq, ::prost::Message)]
5437pub struct CsvcMsgClassInfo {
5438    #[prost(bool, optional, tag = "1")]
5439    pub create_on_client: ::core::option::Option<bool>,
5440    #[prost(message, repeated, tag = "2")]
5441    pub classes: ::prost::alloc::vec::Vec<csvc_msg_class_info::ClassT>,
5442}
5443/// Nested message and enum types in `CSVCMsg_ClassInfo`.
5444pub mod csvc_msg_class_info {
5445    #[derive(serde::Serialize, serde::Deserialize)]
5446    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5447    pub struct ClassT {
5448        #[prost(int32, optional, tag = "1")]
5449        pub class_id: ::core::option::Option<i32>,
5450        #[prost(string, optional, tag = "3")]
5451        pub class_name: ::core::option::Option<::prost::alloc::string::String>,
5452    }
5453}
5454#[derive(serde::Serialize, serde::Deserialize)]
5455#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5456pub struct CsvcMsgSetPause {
5457    #[prost(bool, optional, tag = "1")]
5458    pub paused: ::core::option::Option<bool>,
5459}
5460#[derive(serde::Serialize, serde::Deserialize)]
5461#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5462pub struct CsvcMsgVoiceInit {
5463    #[prost(int32, optional, tag = "1")]
5464    pub quality: ::core::option::Option<i32>,
5465    #[prost(string, optional, tag = "2")]
5466    pub codec: ::core::option::Option<::prost::alloc::string::String>,
5467    #[prost(int32, optional, tag = "3", default = "0")]
5468    pub version: ::core::option::Option<i32>,
5469}
5470#[derive(serde::Serialize, serde::Deserialize)]
5471#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5472pub struct CsvcMsgPrint {
5473    #[prost(string, optional, tag = "1")]
5474    pub text: ::core::option::Option<::prost::alloc::string::String>,
5475}
5476#[derive(serde::Serialize, serde::Deserialize)]
5477#[derive(Clone, PartialEq, ::prost::Message)]
5478pub struct CsvcMsgSounds {
5479    #[prost(bool, optional, tag = "1")]
5480    pub reliable_sound: ::core::option::Option<bool>,
5481    #[prost(message, repeated, tag = "2")]
5482    pub sounds: ::prost::alloc::vec::Vec<csvc_msg_sounds::SounddataT>,
5483}
5484/// Nested message and enum types in `CSVCMsg_Sounds`.
5485pub mod csvc_msg_sounds {
5486    #[derive(serde::Serialize, serde::Deserialize)]
5487    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
5488    pub struct SounddataT {
5489        #[prost(sint32, optional, tag = "1")]
5490        pub origin_x: ::core::option::Option<i32>,
5491        #[prost(sint32, optional, tag = "2")]
5492        pub origin_y: ::core::option::Option<i32>,
5493        #[prost(sint32, optional, tag = "3")]
5494        pub origin_z: ::core::option::Option<i32>,
5495        #[prost(uint32, optional, tag = "4")]
5496        pub volume: ::core::option::Option<u32>,
5497        #[prost(float, optional, tag = "5")]
5498        pub delay_value: ::core::option::Option<f32>,
5499        #[prost(int32, optional, tag = "6")]
5500        pub sequence_number: ::core::option::Option<i32>,
5501        #[prost(int32, optional, tag = "7", default = "-1")]
5502        pub entity_index: ::core::option::Option<i32>,
5503        #[prost(int32, optional, tag = "8")]
5504        pub channel: ::core::option::Option<i32>,
5505        #[prost(int32, optional, tag = "9")]
5506        pub pitch: ::core::option::Option<i32>,
5507        #[prost(int32, optional, tag = "10")]
5508        pub flags: ::core::option::Option<i32>,
5509        #[prost(uint32, optional, tag = "11")]
5510        pub sound_num: ::core::option::Option<u32>,
5511        #[prost(fixed32, optional, tag = "12")]
5512        pub sound_num_handle: ::core::option::Option<u32>,
5513        #[prost(int32, optional, tag = "13")]
5514        pub speaker_entity: ::core::option::Option<i32>,
5515        #[prost(int32, optional, tag = "14")]
5516        pub random_seed: ::core::option::Option<i32>,
5517        #[prost(int32, optional, tag = "15")]
5518        pub sound_level: ::core::option::Option<i32>,
5519        #[prost(bool, optional, tag = "16")]
5520        pub is_sentence: ::core::option::Option<bool>,
5521        #[prost(bool, optional, tag = "17")]
5522        pub is_ambient: ::core::option::Option<bool>,
5523        #[prost(uint32, optional, tag = "18")]
5524        pub guid: ::core::option::Option<u32>,
5525        #[prost(fixed64, optional, tag = "19")]
5526        pub sound_resource_id: ::core::option::Option<u64>,
5527    }
5528}
5529#[derive(serde::Serialize, serde::Deserialize)]
5530#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5531pub struct CsvcMsgPrefetch {
5532    #[prost(int32, optional, tag = "1")]
5533    pub sound_index: ::core::option::Option<i32>,
5534    #[prost(enumeration = "PrefetchType", optional, tag = "2", default = "PftSound")]
5535    pub resource_type: ::core::option::Option<i32>,
5536}
5537#[derive(serde::Serialize, serde::Deserialize)]
5538#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5539pub struct CsvcMsgSetView {
5540    #[prost(int32, optional, tag = "1", default = "-1")]
5541    pub entity_index: ::core::option::Option<i32>,
5542    #[prost(int32, optional, tag = "2", default = "-1")]
5543    pub slot: ::core::option::Option<i32>,
5544}
5545#[derive(serde::Serialize, serde::Deserialize)]
5546#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5547pub struct CsvcMsgFixAngle {
5548    #[prost(bool, optional, tag = "1")]
5549    pub relative: ::core::option::Option<bool>,
5550    #[prost(message, optional, tag = "2")]
5551    pub angle: ::core::option::Option<CMsgQAngle>,
5552}
5553#[derive(serde::Serialize, serde::Deserialize)]
5554#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5555pub struct CsvcMsgCrosshairAngle {
5556    #[prost(message, optional, tag = "1")]
5557    pub angle: ::core::option::Option<CMsgQAngle>,
5558}
5559#[derive(serde::Serialize, serde::Deserialize)]
5560#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5561pub struct CsvcMsgBspDecal {
5562    #[prost(message, optional, tag = "1")]
5563    pub pos: ::core::option::Option<CMsgVector>,
5564    #[prost(int32, optional, tag = "2")]
5565    pub decal_texture_index: ::core::option::Option<i32>,
5566    #[prost(int32, optional, tag = "3", default = "-1")]
5567    pub entity_index: ::core::option::Option<i32>,
5568    #[prost(int32, optional, tag = "4")]
5569    pub model_index: ::core::option::Option<i32>,
5570    #[prost(bool, optional, tag = "5")]
5571    pub low_priority: ::core::option::Option<bool>,
5572}
5573#[derive(serde::Serialize, serde::Deserialize)]
5574#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5575pub struct CsvcMsgSplitScreen {
5576    #[prost(
5577        enumeration = "ESplitScreenMessageType",
5578        optional,
5579        tag = "1",
5580        default = "MsgSplitscreenAdduser"
5581    )]
5582    pub r#type: ::core::option::Option<i32>,
5583    #[prost(int32, optional, tag = "2")]
5584    pub slot: ::core::option::Option<i32>,
5585    #[prost(int32, optional, tag = "3", default = "-1")]
5586    pub player_index: ::core::option::Option<i32>,
5587}
5588#[derive(serde::Serialize, serde::Deserialize)]
5589#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5590pub struct CsvcMsgGetCvarValue {
5591    #[prost(int32, optional, tag = "1")]
5592    pub cookie: ::core::option::Option<i32>,
5593    #[prost(string, optional, tag = "2")]
5594    pub cvar_name: ::core::option::Option<::prost::alloc::string::String>,
5595}
5596#[derive(serde::Serialize, serde::Deserialize)]
5597#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5598pub struct CsvcMsgMenu {
5599    #[prost(int32, optional, tag = "1")]
5600    pub dialog_type: ::core::option::Option<i32>,
5601    #[prost(bytes = "vec", optional, tag = "2")]
5602    pub menu_key_values: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5603}
5604#[derive(serde::Serialize, serde::Deserialize)]
5605#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5606pub struct CsvcMsgUserMessage {
5607    #[prost(int32, optional, tag = "1")]
5608    pub msg_type: ::core::option::Option<i32>,
5609    #[prost(bytes = "vec", optional, tag = "2")]
5610    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5611    #[prost(int32, optional, tag = "3")]
5612    pub passthrough: ::core::option::Option<i32>,
5613}
5614#[derive(serde::Serialize, serde::Deserialize)]
5615#[derive(Clone, PartialEq, ::prost::Message)]
5616pub struct CsvcMsgSendTable {
5617    #[prost(bool, optional, tag = "1")]
5618    pub is_end: ::core::option::Option<bool>,
5619    #[prost(string, optional, tag = "2")]
5620    pub net_table_name: ::core::option::Option<::prost::alloc::string::String>,
5621    #[prost(bool, optional, tag = "3")]
5622    pub needs_decoder: ::core::option::Option<bool>,
5623    #[prost(message, repeated, tag = "4")]
5624    pub props: ::prost::alloc::vec::Vec<csvc_msg_send_table::SendpropT>,
5625}
5626/// Nested message and enum types in `CSVCMsg_SendTable`.
5627pub mod csvc_msg_send_table {
5628    #[derive(serde::Serialize, serde::Deserialize)]
5629    #[derive(Clone, PartialEq, ::prost::Message)]
5630    pub struct SendpropT {
5631        #[prost(int32, optional, tag = "1")]
5632        pub r#type: ::core::option::Option<i32>,
5633        #[prost(string, optional, tag = "2")]
5634        pub var_name: ::core::option::Option<::prost::alloc::string::String>,
5635        #[prost(int32, optional, tag = "3")]
5636        pub flags: ::core::option::Option<i32>,
5637        #[prost(int32, optional, tag = "4")]
5638        pub priority: ::core::option::Option<i32>,
5639        #[prost(string, optional, tag = "5")]
5640        pub dt_name: ::core::option::Option<::prost::alloc::string::String>,
5641        #[prost(int32, optional, tag = "6")]
5642        pub num_elements: ::core::option::Option<i32>,
5643        #[prost(float, optional, tag = "7")]
5644        pub low_value: ::core::option::Option<f32>,
5645        #[prost(float, optional, tag = "8")]
5646        pub high_value: ::core::option::Option<f32>,
5647        #[prost(int32, optional, tag = "9")]
5648        pub num_bits: ::core::option::Option<i32>,
5649    }
5650}
5651#[derive(serde::Serialize, serde::Deserialize)]
5652#[derive(Clone, PartialEq, ::prost::Message)]
5653pub struct CsvcMsgGameEventList {
5654    #[prost(message, repeated, tag = "1")]
5655    pub descriptors: ::prost::alloc::vec::Vec<csvc_msg_game_event_list::DescriptorT>,
5656}
5657/// Nested message and enum types in `CSVCMsg_GameEventList`.
5658pub mod csvc_msg_game_event_list {
5659    #[derive(serde::Serialize, serde::Deserialize)]
5660    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5661    pub struct KeyT {
5662        #[prost(int32, optional, tag = "1")]
5663        pub r#type: ::core::option::Option<i32>,
5664        #[prost(string, optional, tag = "2")]
5665        pub name: ::core::option::Option<::prost::alloc::string::String>,
5666    }
5667    #[derive(serde::Serialize, serde::Deserialize)]
5668    #[derive(Clone, PartialEq, ::prost::Message)]
5669    pub struct DescriptorT {
5670        #[prost(int32, optional, tag = "1")]
5671        pub eventid: ::core::option::Option<i32>,
5672        #[prost(string, optional, tag = "2")]
5673        pub name: ::core::option::Option<::prost::alloc::string::String>,
5674        #[prost(message, repeated, tag = "3")]
5675        pub keys: ::prost::alloc::vec::Vec<KeyT>,
5676    }
5677}
5678#[derive(serde::Serialize, serde::Deserialize)]
5679#[derive(Clone, PartialEq, ::prost::Message)]
5680pub struct CsvcMsgPacketEntities {
5681    #[prost(int32, optional, tag = "1")]
5682    pub max_entries: ::core::option::Option<i32>,
5683    #[prost(int32, optional, tag = "2")]
5684    pub updated_entries: ::core::option::Option<i32>,
5685    #[prost(bool, optional, tag = "3")]
5686    pub legacy_is_delta: ::core::option::Option<bool>,
5687    #[prost(bool, optional, tag = "4")]
5688    pub update_baseline: ::core::option::Option<bool>,
5689    #[prost(int32, optional, tag = "5")]
5690    pub baseline: ::core::option::Option<i32>,
5691    #[prost(int32, optional, tag = "6")]
5692    pub delta_from: ::core::option::Option<i32>,
5693    #[prost(bytes = "vec", optional, tag = "7")]
5694    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5695    #[prost(bool, optional, tag = "8")]
5696    pub pending_full_frame: ::core::option::Option<bool>,
5697    #[prost(uint32, optional, tag = "9")]
5698    pub active_spawngroup_handle: ::core::option::Option<u32>,
5699    #[prost(uint32, optional, tag = "10")]
5700    pub max_spawngroup_creationsequence: ::core::option::Option<u32>,
5701    #[prost(uint32, optional, tag = "11")]
5702    pub last_cmd_number_executed: ::core::option::Option<u32>,
5703    #[prost(sint32, optional, tag = "17")]
5704    pub last_cmd_number_recv_delta: ::core::option::Option<i32>,
5705    #[prost(uint32, optional, tag = "12")]
5706    pub server_tick: ::core::option::Option<u32>,
5707    #[prost(bytes = "vec", optional, tag = "13")]
5708    pub serialized_entities: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5709    #[prost(message, repeated, tag = "15")]
5710    pub alternate_baselines: ::prost::alloc::vec::Vec<
5711        csvc_msg_packet_entities::AlternateBaselineT,
5712    >,
5713    #[prost(uint32, optional, tag = "16")]
5714    pub has_pvs_vis_bits_deprecated: ::core::option::Option<u32>,
5715    #[prost(sint32, repeated, tag = "22")]
5716    pub cmd_recv_status: ::prost::alloc::vec::Vec<i32>,
5717    #[prost(message, optional, tag = "19")]
5718    pub non_transmitted_entities: ::core::option::Option<
5719        csvc_msg_packet_entities::NonTransmittedEntitiesT,
5720    >,
5721    #[prost(uint32, optional, tag = "20")]
5722    pub cq_starved_command_ticks: ::core::option::Option<u32>,
5723    #[prost(uint32, optional, tag = "21")]
5724    pub cq_discarded_command_ticks: ::core::option::Option<u32>,
5725    #[prost(message, optional, tag = "23")]
5726    pub outofpvs_entity_updates: ::core::option::Option<
5727        csvc_msg_packet_entities::OutofpvsEntityUpdatesT,
5728    >,
5729    #[prost(bytes = "vec", optional, tag = "999")]
5730    pub dev_padding: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5731}
5732/// Nested message and enum types in `CSVCMsg_PacketEntities`.
5733pub mod csvc_msg_packet_entities {
5734    #[derive(serde::Serialize, serde::Deserialize)]
5735    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5736    pub struct AlternateBaselineT {
5737        #[prost(int32, optional, tag = "1")]
5738        pub entity_index: ::core::option::Option<i32>,
5739        #[prost(int32, optional, tag = "2")]
5740        pub baseline_index: ::core::option::Option<i32>,
5741    }
5742    #[derive(serde::Serialize, serde::Deserialize)]
5743    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5744    pub struct NonTransmittedEntitiesT {
5745        #[prost(int32, optional, tag = "1")]
5746        pub header_count: ::core::option::Option<i32>,
5747        #[prost(bytes = "vec", optional, tag = "2")]
5748        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5749    }
5750    #[derive(serde::Serialize, serde::Deserialize)]
5751    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5752    pub struct OutofpvsEntityUpdatesT {
5753        #[prost(int32, optional, tag = "1")]
5754        pub count: ::core::option::Option<i32>,
5755        #[prost(bytes = "vec", optional, tag = "2")]
5756        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5757    }
5758}
5759#[derive(serde::Serialize, serde::Deserialize)]
5760#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5761pub struct CsvcMsgTempEntities {
5762    #[prost(bool, optional, tag = "1")]
5763    pub reliable: ::core::option::Option<bool>,
5764    #[prost(int32, optional, tag = "2")]
5765    pub num_entries: ::core::option::Option<i32>,
5766    #[prost(bytes = "vec", optional, tag = "3")]
5767    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5768}
5769#[derive(serde::Serialize, serde::Deserialize)]
5770#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5771pub struct CsvcMsgCreateStringTable {
5772    #[prost(string, optional, tag = "1")]
5773    pub name: ::core::option::Option<::prost::alloc::string::String>,
5774    #[prost(int32, optional, tag = "2")]
5775    pub num_entries: ::core::option::Option<i32>,
5776    #[prost(bool, optional, tag = "3")]
5777    pub user_data_fixed_size: ::core::option::Option<bool>,
5778    #[prost(int32, optional, tag = "4")]
5779    pub user_data_size: ::core::option::Option<i32>,
5780    #[prost(int32, optional, tag = "5")]
5781    pub user_data_size_bits: ::core::option::Option<i32>,
5782    #[prost(int32, optional, tag = "6")]
5783    pub flags: ::core::option::Option<i32>,
5784    #[prost(bytes = "vec", optional, tag = "7")]
5785    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5786    #[prost(int32, optional, tag = "8")]
5787    pub uncompressed_size: ::core::option::Option<i32>,
5788    #[prost(bool, optional, tag = "9")]
5789    pub data_compressed: ::core::option::Option<bool>,
5790    #[prost(bool, optional, tag = "10")]
5791    pub using_varint_bitcounts: ::core::option::Option<bool>,
5792}
5793#[derive(serde::Serialize, serde::Deserialize)]
5794#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5795pub struct CsvcMsgUpdateStringTable {
5796    #[prost(int32, optional, tag = "1")]
5797    pub table_id: ::core::option::Option<i32>,
5798    #[prost(int32, optional, tag = "2")]
5799    pub num_changed_entries: ::core::option::Option<i32>,
5800    #[prost(bytes = "vec", optional, tag = "3")]
5801    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5802}
5803#[derive(serde::Serialize, serde::Deserialize)]
5804#[derive(Clone, PartialEq, ::prost::Message)]
5805pub struct CsvcMsgVoiceData {
5806    #[prost(message, optional, tag = "1")]
5807    pub audio: ::core::option::Option<CMsgVoiceAudio>,
5808    #[prost(int32, optional, tag = "2", default = "-1")]
5809    pub client: ::core::option::Option<i32>,
5810    #[prost(bool, optional, tag = "3")]
5811    pub proximity: ::core::option::Option<bool>,
5812    #[prost(fixed64, optional, tag = "4")]
5813    pub xuid: ::core::option::Option<u64>,
5814    #[prost(int32, optional, tag = "5")]
5815    pub audible_mask: ::core::option::Option<i32>,
5816    #[prost(uint32, optional, tag = "6")]
5817    pub tick: ::core::option::Option<u32>,
5818    #[prost(int32, optional, tag = "7")]
5819    pub passthrough: ::core::option::Option<i32>,
5820}
5821#[derive(serde::Serialize, serde::Deserialize)]
5822#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5823pub struct CsvcMsgPacketReliable {
5824    #[prost(int32, optional, tag = "1")]
5825    pub tick: ::core::option::Option<i32>,
5826    #[prost(int32, optional, tag = "2")]
5827    pub messagessize: ::core::option::Option<i32>,
5828    #[prost(bool, optional, tag = "3")]
5829    pub state: ::core::option::Option<bool>,
5830}
5831#[derive(serde::Serialize, serde::Deserialize)]
5832#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5833pub struct CsvcMsgFullFrameSplit {
5834    #[prost(int32, optional, tag = "1")]
5835    pub tick: ::core::option::Option<i32>,
5836    #[prost(int32, optional, tag = "2")]
5837    pub section: ::core::option::Option<i32>,
5838    #[prost(int32, optional, tag = "3")]
5839    pub total: ::core::option::Option<i32>,
5840    #[prost(bytes = "vec", optional, tag = "4")]
5841    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5842}
5843#[derive(serde::Serialize, serde::Deserialize)]
5844#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5845pub struct CsvcMsgHltvStatus {
5846    #[prost(string, optional, tag = "1")]
5847    pub master: ::core::option::Option<::prost::alloc::string::String>,
5848    #[prost(int32, optional, tag = "2")]
5849    pub clients: ::core::option::Option<i32>,
5850    #[prost(int32, optional, tag = "3")]
5851    pub slots: ::core::option::Option<i32>,
5852    #[prost(int32, optional, tag = "4")]
5853    pub proxies: ::core::option::Option<i32>,
5854}
5855#[derive(serde::Serialize, serde::Deserialize)]
5856#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5857pub struct CsvcMsgServerSteamId {
5858    #[prost(uint64, optional, tag = "1")]
5859    pub steam_id: ::core::option::Option<u64>,
5860}
5861#[derive(serde::Serialize, serde::Deserialize)]
5862#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5863pub struct CsvcMsgCmdKeyValues {
5864    #[prost(bytes = "vec", optional, tag = "1")]
5865    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5866}
5867#[derive(serde::Serialize, serde::Deserialize)]
5868#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5869pub struct CsvcMsgRconServerDetails {
5870    #[prost(bytes = "vec", optional, tag = "1")]
5871    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5872    #[prost(string, optional, tag = "2")]
5873    pub details: ::core::option::Option<::prost::alloc::string::String>,
5874}
5875#[derive(serde::Serialize, serde::Deserialize)]
5876#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5877pub struct CMsgIpcAddress {
5878    #[prost(fixed64, optional, tag = "1")]
5879    pub computer_guid: ::core::option::Option<u64>,
5880    #[prost(uint32, optional, tag = "2")]
5881    pub process_id: ::core::option::Option<u32>,
5882}
5883#[derive(serde::Serialize, serde::Deserialize)]
5884#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5885pub struct CMsgServerPeer {
5886    #[prost(int32, optional, tag = "1", default = "-1")]
5887    pub player_slot: ::core::option::Option<i32>,
5888    #[prost(fixed64, optional, tag = "2")]
5889    pub steamid: ::core::option::Option<u64>,
5890    #[prost(message, optional, tag = "3")]
5891    pub ipc: ::core::option::Option<CMsgIpcAddress>,
5892    #[prost(bool, optional, tag = "4")]
5893    pub they_hear_you: ::core::option::Option<bool>,
5894    #[prost(bool, optional, tag = "5")]
5895    pub you_hear_them: ::core::option::Option<bool>,
5896    #[prost(bool, optional, tag = "6")]
5897    pub is_listenserver_host: ::core::option::Option<bool>,
5898}
5899#[derive(serde::Serialize, serde::Deserialize)]
5900#[derive(Clone, PartialEq, ::prost::Message)]
5901pub struct CsvcMsgPeerList {
5902    #[prost(message, repeated, tag = "1")]
5903    pub peer: ::prost::alloc::vec::Vec<CMsgServerPeer>,
5904}
5905#[derive(serde::Serialize, serde::Deserialize)]
5906#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5907pub struct CsvcMsgClearAllStringTables {
5908    #[prost(string, optional, tag = "1")]
5909    pub mapname: ::core::option::Option<::prost::alloc::string::String>,
5910    #[prost(bool, optional, tag = "3")]
5911    pub create_tables_skipped: ::core::option::Option<bool>,
5912}
5913#[derive(serde::Serialize, serde::Deserialize)]
5914#[derive(Clone, PartialEq, ::prost::Message)]
5915pub struct ProtoFlattenedSerializerFieldT {
5916    #[prost(int32, optional, tag = "1")]
5917    pub var_type_sym: ::core::option::Option<i32>,
5918    #[prost(int32, optional, tag = "2")]
5919    pub var_name_sym: ::core::option::Option<i32>,
5920    #[prost(int32, optional, tag = "3")]
5921    pub bit_count: ::core::option::Option<i32>,
5922    #[prost(float, optional, tag = "4")]
5923    pub low_value: ::core::option::Option<f32>,
5924    #[prost(float, optional, tag = "5")]
5925    pub high_value: ::core::option::Option<f32>,
5926    #[prost(int32, optional, tag = "6")]
5927    pub encode_flags: ::core::option::Option<i32>,
5928    #[prost(int32, optional, tag = "7")]
5929    pub field_serializer_name_sym: ::core::option::Option<i32>,
5930    #[prost(int32, optional, tag = "8")]
5931    pub field_serializer_version: ::core::option::Option<i32>,
5932    #[prost(int32, optional, tag = "9")]
5933    pub send_node_sym: ::core::option::Option<i32>,
5934    #[prost(int32, optional, tag = "10")]
5935    pub var_encoder_sym: ::core::option::Option<i32>,
5936    #[prost(message, repeated, tag = "11")]
5937    pub polymorphic_types: ::prost::alloc::vec::Vec<
5938        proto_flattened_serializer_field_t::PolymorphicFieldT,
5939    >,
5940    #[prost(int32, optional, tag = "12")]
5941    pub var_serializer_sym: ::core::option::Option<i32>,
5942}
5943/// Nested message and enum types in `ProtoFlattenedSerializerField_t`.
5944pub mod proto_flattened_serializer_field_t {
5945    #[derive(serde::Serialize, serde::Deserialize)]
5946    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5947    pub struct PolymorphicFieldT {
5948        #[prost(int32, optional, tag = "1")]
5949        pub polymorphic_field_serializer_name_sym: ::core::option::Option<i32>,
5950        #[prost(int32, optional, tag = "2")]
5951        pub polymorphic_field_serializer_version: ::core::option::Option<i32>,
5952    }
5953}
5954#[derive(serde::Serialize, serde::Deserialize)]
5955#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5956pub struct ProtoFlattenedSerializerT {
5957    #[prost(int32, optional, tag = "1")]
5958    pub serializer_name_sym: ::core::option::Option<i32>,
5959    #[prost(int32, optional, tag = "2")]
5960    pub serializer_version: ::core::option::Option<i32>,
5961    #[prost(int32, repeated, packed = "false", tag = "3")]
5962    pub fields_index: ::prost::alloc::vec::Vec<i32>,
5963}
5964#[derive(serde::Serialize, serde::Deserialize)]
5965#[derive(Clone, PartialEq, ::prost::Message)]
5966pub struct CsvcMsgFlattenedSerializer {
5967    #[prost(message, repeated, tag = "1")]
5968    pub serializers: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerT>,
5969    #[prost(string, repeated, tag = "2")]
5970    pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5971    #[prost(message, repeated, tag = "3")]
5972    pub fields: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerFieldT>,
5973}
5974#[derive(serde::Serialize, serde::Deserialize)]
5975#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5976pub struct CsvcMsgStopSound {
5977    #[prost(fixed32, optional, tag = "1")]
5978    pub guid: ::core::option::Option<u32>,
5979}
5980#[derive(serde::Serialize, serde::Deserialize)]
5981#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5982pub struct CBidirMsgRebroadcastGameEvent {
5983    #[prost(bool, optional, tag = "1")]
5984    pub posttoserver: ::core::option::Option<bool>,
5985    #[prost(int32, optional, tag = "2")]
5986    pub buftype: ::core::option::Option<i32>,
5987    #[prost(uint32, optional, tag = "3")]
5988    pub clientbitcount: ::core::option::Option<u32>,
5989    #[prost(uint64, optional, tag = "4")]
5990    pub receivingclients: ::core::option::Option<u64>,
5991}
5992#[derive(serde::Serialize, serde::Deserialize)]
5993#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5994pub struct CBidirMsgRebroadcastSource {
5995    #[prost(int32, optional, tag = "1")]
5996    pub eventsource: ::core::option::Option<i32>,
5997}
5998#[derive(serde::Serialize, serde::Deserialize)]
5999#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6000pub struct CBidirMsgPredictionEvent {
6001    #[prost(uint32, optional, tag = "1")]
6002    pub event_id: ::core::option::Option<u32>,
6003    #[prost(bytes = "vec", optional, tag = "2")]
6004    pub event_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
6005    #[prost(uint32, optional, tag = "3")]
6006    pub sync_type: ::core::option::Option<u32>,
6007    #[prost(uint32, optional, tag = "4")]
6008    pub sync_val_uint32: ::core::option::Option<u32>,
6009}
6010/// Nested message and enum types in `CBidirMsg_PredictionEvent`.
6011pub mod c_bidir_msg_prediction_event {
6012    #[derive(serde::Serialize, serde::Deserialize)]
6013    #[derive(
6014        Clone,
6015        Copy,
6016        Debug,
6017        PartialEq,
6018        Eq,
6019        Hash,
6020        PartialOrd,
6021        Ord,
6022        ::prost::Enumeration
6023    )]
6024    #[repr(i32)]
6025    pub enum ESyncType {
6026        StTick = 0,
6027        StUserCmdNum = 1,
6028    }
6029    impl ESyncType {
6030        /// String value of the enum field names used in the ProtoBuf definition.
6031        ///
6032        /// The values are not transformed in any way and thus are considered stable
6033        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6034        pub fn as_str_name(&self) -> &'static str {
6035            match self {
6036                Self::StTick => "ST_Tick",
6037                Self::StUserCmdNum => "ST_UserCmdNum",
6038            }
6039        }
6040        /// Creates an enum from field names used in the ProtoBuf definition.
6041        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6042            match value {
6043                "ST_Tick" => Some(Self::StTick),
6044                "ST_UserCmdNum" => Some(Self::StUserCmdNum),
6045                _ => None,
6046            }
6047        }
6048    }
6049}
6050#[derive(serde::Serialize, serde::Deserialize)]
6051#[derive(Clone, PartialEq, ::prost::Message)]
6052pub struct CMsgServerNetworkStats {
6053    #[prost(bool, optional, tag = "1")]
6054    pub dedicated: ::core::option::Option<bool>,
6055    #[prost(int32, optional, tag = "2")]
6056    pub cpu_usage: ::core::option::Option<i32>,
6057    #[prost(int32, optional, tag = "3")]
6058    pub memory_used_mb: ::core::option::Option<i32>,
6059    #[prost(int32, optional, tag = "4")]
6060    pub memory_free_mb: ::core::option::Option<i32>,
6061    #[prost(int32, optional, tag = "5")]
6062    pub uptime: ::core::option::Option<i32>,
6063    #[prost(int32, optional, tag = "6")]
6064    pub spawn_count: ::core::option::Option<i32>,
6065    #[prost(int32, optional, tag = "8")]
6066    pub num_clients: ::core::option::Option<i32>,
6067    #[prost(int32, optional, tag = "9")]
6068    pub num_bots: ::core::option::Option<i32>,
6069    #[prost(int32, optional, tag = "10")]
6070    pub num_spectators: ::core::option::Option<i32>,
6071    #[prost(int32, optional, tag = "11")]
6072    pub num_tv_relays: ::core::option::Option<i32>,
6073    #[prost(float, optional, tag = "12")]
6074    pub fps: ::core::option::Option<f32>,
6075    #[prost(message, repeated, tag = "17")]
6076    pub ports: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Port>,
6077    #[prost(float, optional, tag = "18")]
6078    pub avg_ping_ms: ::core::option::Option<f32>,
6079    #[prost(float, optional, tag = "19")]
6080    pub avg_engine_latency_out: ::core::option::Option<f32>,
6081    #[prost(float, optional, tag = "20")]
6082    pub avg_packets_out: ::core::option::Option<f32>,
6083    #[prost(float, optional, tag = "21")]
6084    pub avg_packets_in: ::core::option::Option<f32>,
6085    #[prost(float, optional, tag = "22")]
6086    pub avg_loss_out: ::core::option::Option<f32>,
6087    #[prost(float, optional, tag = "23")]
6088    pub avg_loss_in: ::core::option::Option<f32>,
6089    #[prost(float, optional, tag = "24")]
6090    pub avg_data_out: ::core::option::Option<f32>,
6091    #[prost(float, optional, tag = "25")]
6092    pub avg_data_in: ::core::option::Option<f32>,
6093    #[prost(uint64, optional, tag = "26")]
6094    pub total_data_in: ::core::option::Option<u64>,
6095    #[prost(uint64, optional, tag = "27")]
6096    pub total_packets_in: ::core::option::Option<u64>,
6097    #[prost(uint64, optional, tag = "28")]
6098    pub total_data_out: ::core::option::Option<u64>,
6099    #[prost(uint64, optional, tag = "29")]
6100    pub total_packets_out: ::core::option::Option<u64>,
6101    #[prost(message, repeated, tag = "30")]
6102    pub players: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Player>,
6103}
6104/// Nested message and enum types in `CMsgServerNetworkStats`.
6105pub mod c_msg_server_network_stats {
6106    #[derive(serde::Serialize, serde::Deserialize)]
6107    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6108    pub struct Port {
6109        #[prost(int32, optional, tag = "1")]
6110        pub port: ::core::option::Option<i32>,
6111        #[prost(string, optional, tag = "2")]
6112        pub name: ::core::option::Option<::prost::alloc::string::String>,
6113    }
6114    #[derive(serde::Serialize, serde::Deserialize)]
6115    #[derive(Clone, PartialEq, ::prost::Message)]
6116    pub struct Player {
6117        #[prost(uint64, optional, tag = "1")]
6118        pub steamid: ::core::option::Option<u64>,
6119        #[prost(string, optional, tag = "2")]
6120        pub remote_addr: ::core::option::Option<::prost::alloc::string::String>,
6121        #[prost(int32, optional, tag = "4")]
6122        pub ping_avg_ms: ::core::option::Option<i32>,
6123        #[prost(float, optional, tag = "5")]
6124        pub packet_loss_pct: ::core::option::Option<f32>,
6125        #[prost(bool, optional, tag = "6")]
6126        pub is_bot: ::core::option::Option<bool>,
6127        #[prost(float, optional, tag = "7")]
6128        pub loss_in: ::core::option::Option<f32>,
6129        #[prost(float, optional, tag = "8")]
6130        pub loss_out: ::core::option::Option<f32>,
6131        #[prost(int32, optional, tag = "9")]
6132        pub engine_latency_ms: ::core::option::Option<i32>,
6133    }
6134}
6135#[derive(serde::Serialize, serde::Deserialize)]
6136#[derive(Clone, Copy, PartialEq, ::prost::Message)]
6137pub struct CsvcMsgHltvReplay {
6138    #[prost(int32, optional, tag = "1")]
6139    pub delay: ::core::option::Option<i32>,
6140    #[prost(int32, optional, tag = "2", default = "-1")]
6141    pub primary_target: ::core::option::Option<i32>,
6142    #[prost(int32, optional, tag = "3")]
6143    pub replay_stop_at: ::core::option::Option<i32>,
6144    #[prost(int32, optional, tag = "4")]
6145    pub replay_start_at: ::core::option::Option<i32>,
6146    #[prost(int32, optional, tag = "5")]
6147    pub replay_slowdown_begin: ::core::option::Option<i32>,
6148    #[prost(int32, optional, tag = "6")]
6149    pub replay_slowdown_end: ::core::option::Option<i32>,
6150    #[prost(float, optional, tag = "7")]
6151    pub replay_slowdown_rate: ::core::option::Option<f32>,
6152    #[prost(int32, optional, tag = "8")]
6153    pub reason: ::core::option::Option<i32>,
6154}
6155#[derive(serde::Serialize, serde::Deserialize)]
6156#[derive(Clone, Copy, PartialEq, ::prost::Message)]
6157pub struct CclcMsgHltvReplay {
6158    #[prost(int32, optional, tag = "1")]
6159    pub request: ::core::option::Option<i32>,
6160    #[prost(float, optional, tag = "2")]
6161    pub slowdown_length: ::core::option::Option<f32>,
6162    #[prost(float, optional, tag = "3")]
6163    pub slowdown_rate: ::core::option::Option<f32>,
6164    #[prost(int32, optional, tag = "4", default = "-1")]
6165    pub primary_target: ::core::option::Option<i32>,
6166    #[prost(float, optional, tag = "5")]
6167    pub event_time: ::core::option::Option<f32>,
6168}
6169#[derive(serde::Serialize, serde::Deserialize)]
6170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6171pub struct CsvcMsgBroadcastCommand {
6172    #[prost(string, optional, tag = "1")]
6173    pub cmd: ::core::option::Option<::prost::alloc::string::String>,
6174}
6175#[derive(serde::Serialize, serde::Deserialize)]
6176#[derive(Clone, PartialEq, ::prost::Message)]
6177pub struct CclcMsgHltvFixupOperatorTick {
6178    #[prost(int32, optional, tag = "1")]
6179    pub tick: ::core::option::Option<i32>,
6180    #[prost(bytes = "vec", optional, tag = "2")]
6181    pub props_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
6182    #[prost(message, optional, tag = "3")]
6183    pub origin: ::core::option::Option<CMsgVector>,
6184    #[prost(message, optional, tag = "4")]
6185    pub eye_angles: ::core::option::Option<CMsgQAngle>,
6186    #[prost(int32, optional, tag = "5")]
6187    pub observer_mode: ::core::option::Option<i32>,
6188    #[prost(bool, optional, tag = "6")]
6189    pub cameraman_scoreboard: ::core::option::Option<bool>,
6190    #[prost(int32, optional, tag = "7")]
6191    pub observer_target: ::core::option::Option<i32>,
6192    #[prost(message, optional, tag = "8")]
6193    pub view_offset: ::core::option::Option<CMsgVector>,
6194}
6195#[derive(serde::Serialize, serde::Deserialize)]
6196#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6197pub struct CsvcMsgHltvFixupOperatorStatus {
6198    #[prost(uint32, optional, tag = "1")]
6199    pub mode: ::core::option::Option<u32>,
6200    #[prost(string, optional, tag = "2")]
6201    pub override_operator_name: ::core::option::Option<::prost::alloc::string::String>,
6202}
6203#[derive(serde::Serialize, serde::Deserialize)]
6204#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6205pub struct CMsgServerUserCmd {
6206    #[prost(bytes = "vec", optional, tag = "1")]
6207    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
6208    #[prost(int32, optional, tag = "2")]
6209    pub cmd_number: ::core::option::Option<i32>,
6210    #[prost(int32, optional, tag = "3", default = "-1")]
6211    pub player_slot: ::core::option::Option<i32>,
6212    #[prost(int32, optional, tag = "4")]
6213    pub server_tick_executed: ::core::option::Option<i32>,
6214    #[prost(int32, optional, tag = "5")]
6215    pub client_tick: ::core::option::Option<i32>,
6216}
6217#[derive(serde::Serialize, serde::Deserialize)]
6218#[derive(Clone, PartialEq, ::prost::Message)]
6219pub struct CsvcMsgUserCommands {
6220    #[prost(message, repeated, tag = "1")]
6221    pub commands: ::prost::alloc::vec::Vec<CMsgServerUserCmd>,
6222}
6223#[derive(serde::Serialize, serde::Deserialize)]
6224#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
6225pub struct CsvcMsgNextMsgPredicted {
6226    #[prost(int32, optional, tag = "1", default = "-1")]
6227    pub predicted_by_player_slot: ::core::option::Option<i32>,
6228    #[prost(uint32, optional, tag = "2")]
6229    pub message_type_id: ::core::option::Option<u32>,
6230}
6231#[derive(serde::Serialize, serde::Deserialize)]
6232#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6233#[repr(i32)]
6234pub enum ClcMessages {
6235    ClcClientInfo = 20,
6236    ClcMove = 21,
6237    ClcVoiceData = 22,
6238    ClcBaselineAck = 23,
6239    ClcRespondCvarValue = 25,
6240    ClcLoadingProgress = 27,
6241    ClcSplitPlayerConnect = 28,
6242    ClcSplitPlayerDisconnect = 30,
6243    ClcServerStatus = 31,
6244    ClcRequestPause = 33,
6245    ClcCmdKeyValues = 34,
6246    ClcRconServerDetails = 35,
6247    ClcHltvReplay = 36,
6248    ClcDiagnostic = 37,
6249}
6250impl ClcMessages {
6251    /// String value of the enum field names used in the ProtoBuf definition.
6252    ///
6253    /// The values are not transformed in any way and thus are considered stable
6254    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6255    pub fn as_str_name(&self) -> &'static str {
6256        match self {
6257            Self::ClcClientInfo => "clc_ClientInfo",
6258            Self::ClcMove => "clc_Move",
6259            Self::ClcVoiceData => "clc_VoiceData",
6260            Self::ClcBaselineAck => "clc_BaselineAck",
6261            Self::ClcRespondCvarValue => "clc_RespondCvarValue",
6262            Self::ClcLoadingProgress => "clc_LoadingProgress",
6263            Self::ClcSplitPlayerConnect => "clc_SplitPlayerConnect",
6264            Self::ClcSplitPlayerDisconnect => "clc_SplitPlayerDisconnect",
6265            Self::ClcServerStatus => "clc_ServerStatus",
6266            Self::ClcRequestPause => "clc_RequestPause",
6267            Self::ClcCmdKeyValues => "clc_CmdKeyValues",
6268            Self::ClcRconServerDetails => "clc_RconServerDetails",
6269            Self::ClcHltvReplay => "clc_HltvReplay",
6270            Self::ClcDiagnostic => "clc_Diagnostic",
6271        }
6272    }
6273    /// Creates an enum from field names used in the ProtoBuf definition.
6274    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6275        match value {
6276            "clc_ClientInfo" => Some(Self::ClcClientInfo),
6277            "clc_Move" => Some(Self::ClcMove),
6278            "clc_VoiceData" => Some(Self::ClcVoiceData),
6279            "clc_BaselineAck" => Some(Self::ClcBaselineAck),
6280            "clc_RespondCvarValue" => Some(Self::ClcRespondCvarValue),
6281            "clc_LoadingProgress" => Some(Self::ClcLoadingProgress),
6282            "clc_SplitPlayerConnect" => Some(Self::ClcSplitPlayerConnect),
6283            "clc_SplitPlayerDisconnect" => Some(Self::ClcSplitPlayerDisconnect),
6284            "clc_ServerStatus" => Some(Self::ClcServerStatus),
6285            "clc_RequestPause" => Some(Self::ClcRequestPause),
6286            "clc_CmdKeyValues" => Some(Self::ClcCmdKeyValues),
6287            "clc_RconServerDetails" => Some(Self::ClcRconServerDetails),
6288            "clc_HltvReplay" => Some(Self::ClcHltvReplay),
6289            "clc_Diagnostic" => Some(Self::ClcDiagnostic),
6290            _ => None,
6291        }
6292    }
6293}
6294#[derive(serde::Serialize, serde::Deserialize)]
6295#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6296#[repr(i32)]
6297pub enum SvcMessages {
6298    SvcServerInfo = 40,
6299    SvcFlattenedSerializer = 41,
6300    SvcClassInfo = 42,
6301    SvcSetPause = 43,
6302    SvcCreateStringTable = 44,
6303    SvcUpdateStringTable = 45,
6304    SvcVoiceInit = 46,
6305    SvcVoiceData = 47,
6306    SvcPrint = 48,
6307    SvcSounds = 49,
6308    SvcSetView = 50,
6309    SvcClearAllStringTables = 51,
6310    SvcCmdKeyValues = 52,
6311    SvcBspDecal = 53,
6312    SvcSplitScreen = 54,
6313    SvcPacketEntities = 55,
6314    SvcPrefetch = 56,
6315    SvcMenu = 57,
6316    SvcGetCvarValue = 58,
6317    SvcStopSound = 59,
6318    SvcPeerList = 60,
6319    SvcPacketReliable = 61,
6320    SvcHltvStatus = 62,
6321    SvcServerSteamId = 63,
6322    SvcFullFrameSplit = 70,
6323    SvcRconServerDetails = 71,
6324    SvcUserMessage = 72,
6325    SvcBroadcastCommand = 74,
6326    SvcHltvFixupOperatorStatus = 75,
6327    SvcUserCmds = 76,
6328    SvcNextMsgPredicted = 77,
6329}
6330impl SvcMessages {
6331    /// String value of the enum field names used in the ProtoBuf definition.
6332    ///
6333    /// The values are not transformed in any way and thus are considered stable
6334    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6335    pub fn as_str_name(&self) -> &'static str {
6336        match self {
6337            Self::SvcServerInfo => "svc_ServerInfo",
6338            Self::SvcFlattenedSerializer => "svc_FlattenedSerializer",
6339            Self::SvcClassInfo => "svc_ClassInfo",
6340            Self::SvcSetPause => "svc_SetPause",
6341            Self::SvcCreateStringTable => "svc_CreateStringTable",
6342            Self::SvcUpdateStringTable => "svc_UpdateStringTable",
6343            Self::SvcVoiceInit => "svc_VoiceInit",
6344            Self::SvcVoiceData => "svc_VoiceData",
6345            Self::SvcPrint => "svc_Print",
6346            Self::SvcSounds => "svc_Sounds",
6347            Self::SvcSetView => "svc_SetView",
6348            Self::SvcClearAllStringTables => "svc_ClearAllStringTables",
6349            Self::SvcCmdKeyValues => "svc_CmdKeyValues",
6350            Self::SvcBspDecal => "svc_BSPDecal",
6351            Self::SvcSplitScreen => "svc_SplitScreen",
6352            Self::SvcPacketEntities => "svc_PacketEntities",
6353            Self::SvcPrefetch => "svc_Prefetch",
6354            Self::SvcMenu => "svc_Menu",
6355            Self::SvcGetCvarValue => "svc_GetCvarValue",
6356            Self::SvcStopSound => "svc_StopSound",
6357            Self::SvcPeerList => "svc_PeerList",
6358            Self::SvcPacketReliable => "svc_PacketReliable",
6359            Self::SvcHltvStatus => "svc_HLTVStatus",
6360            Self::SvcServerSteamId => "svc_ServerSteamID",
6361            Self::SvcFullFrameSplit => "svc_FullFrameSplit",
6362            Self::SvcRconServerDetails => "svc_RconServerDetails",
6363            Self::SvcUserMessage => "svc_UserMessage",
6364            Self::SvcBroadcastCommand => "svc_Broadcast_Command",
6365            Self::SvcHltvFixupOperatorStatus => "svc_HltvFixupOperatorStatus",
6366            Self::SvcUserCmds => "svc_UserCmds",
6367            Self::SvcNextMsgPredicted => "svc_NextMsgPredicted",
6368        }
6369    }
6370    /// Creates an enum from field names used in the ProtoBuf definition.
6371    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6372        match value {
6373            "svc_ServerInfo" => Some(Self::SvcServerInfo),
6374            "svc_FlattenedSerializer" => Some(Self::SvcFlattenedSerializer),
6375            "svc_ClassInfo" => Some(Self::SvcClassInfo),
6376            "svc_SetPause" => Some(Self::SvcSetPause),
6377            "svc_CreateStringTable" => Some(Self::SvcCreateStringTable),
6378            "svc_UpdateStringTable" => Some(Self::SvcUpdateStringTable),
6379            "svc_VoiceInit" => Some(Self::SvcVoiceInit),
6380            "svc_VoiceData" => Some(Self::SvcVoiceData),
6381            "svc_Print" => Some(Self::SvcPrint),
6382            "svc_Sounds" => Some(Self::SvcSounds),
6383            "svc_SetView" => Some(Self::SvcSetView),
6384            "svc_ClearAllStringTables" => Some(Self::SvcClearAllStringTables),
6385            "svc_CmdKeyValues" => Some(Self::SvcCmdKeyValues),
6386            "svc_BSPDecal" => Some(Self::SvcBspDecal),
6387            "svc_SplitScreen" => Some(Self::SvcSplitScreen),
6388            "svc_PacketEntities" => Some(Self::SvcPacketEntities),
6389            "svc_Prefetch" => Some(Self::SvcPrefetch),
6390            "svc_Menu" => Some(Self::SvcMenu),
6391            "svc_GetCvarValue" => Some(Self::SvcGetCvarValue),
6392            "svc_StopSound" => Some(Self::SvcStopSound),
6393            "svc_PeerList" => Some(Self::SvcPeerList),
6394            "svc_PacketReliable" => Some(Self::SvcPacketReliable),
6395            "svc_HLTVStatus" => Some(Self::SvcHltvStatus),
6396            "svc_ServerSteamID" => Some(Self::SvcServerSteamId),
6397            "svc_FullFrameSplit" => Some(Self::SvcFullFrameSplit),
6398            "svc_RconServerDetails" => Some(Self::SvcRconServerDetails),
6399            "svc_UserMessage" => Some(Self::SvcUserMessage),
6400            "svc_Broadcast_Command" => Some(Self::SvcBroadcastCommand),
6401            "svc_HltvFixupOperatorStatus" => Some(Self::SvcHltvFixupOperatorStatus),
6402            "svc_UserCmds" => Some(Self::SvcUserCmds),
6403            "svc_NextMsgPredicted" => Some(Self::SvcNextMsgPredicted),
6404            _ => None,
6405        }
6406    }
6407}
6408#[derive(serde::Serialize, serde::Deserialize)]
6409#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6410#[repr(i32)]
6411pub enum VoiceDataFormatT {
6412    VoicedataFormatSteam = 0,
6413    VoicedataFormatEngine = 1,
6414    VoicedataFormatOpus = 2,
6415}
6416impl VoiceDataFormatT {
6417    /// String value of the enum field names used in the ProtoBuf definition.
6418    ///
6419    /// The values are not transformed in any way and thus are considered stable
6420    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6421    pub fn as_str_name(&self) -> &'static str {
6422        match self {
6423            Self::VoicedataFormatSteam => "VOICEDATA_FORMAT_STEAM",
6424            Self::VoicedataFormatEngine => "VOICEDATA_FORMAT_ENGINE",
6425            Self::VoicedataFormatOpus => "VOICEDATA_FORMAT_OPUS",
6426        }
6427    }
6428    /// Creates an enum from field names used in the ProtoBuf definition.
6429    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6430        match value {
6431            "VOICEDATA_FORMAT_STEAM" => Some(Self::VoicedataFormatSteam),
6432            "VOICEDATA_FORMAT_ENGINE" => Some(Self::VoicedataFormatEngine),
6433            "VOICEDATA_FORMAT_OPUS" => Some(Self::VoicedataFormatOpus),
6434            _ => None,
6435        }
6436    }
6437}
6438#[derive(serde::Serialize, serde::Deserialize)]
6439#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6440#[repr(i32)]
6441pub enum RequestPauseT {
6442    RpPause = 0,
6443    RpUnpause = 1,
6444    RpTogglepause = 2,
6445}
6446impl RequestPauseT {
6447    /// String value of the enum field names used in the ProtoBuf definition.
6448    ///
6449    /// The values are not transformed in any way and thus are considered stable
6450    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6451    pub fn as_str_name(&self) -> &'static str {
6452        match self {
6453            Self::RpPause => "RP_PAUSE",
6454            Self::RpUnpause => "RP_UNPAUSE",
6455            Self::RpTogglepause => "RP_TOGGLEPAUSE",
6456        }
6457    }
6458    /// Creates an enum from field names used in the ProtoBuf definition.
6459    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6460        match value {
6461            "RP_PAUSE" => Some(Self::RpPause),
6462            "RP_UNPAUSE" => Some(Self::RpUnpause),
6463            "RP_TOGGLEPAUSE" => Some(Self::RpTogglepause),
6464            _ => None,
6465        }
6466    }
6467}
6468#[derive(serde::Serialize, serde::Deserialize)]
6469#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6470#[repr(i32)]
6471pub enum PrefetchType {
6472    PftSound = 0,
6473}
6474impl PrefetchType {
6475    /// String value of the enum field names used in the ProtoBuf definition.
6476    ///
6477    /// The values are not transformed in any way and thus are considered stable
6478    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6479    pub fn as_str_name(&self) -> &'static str {
6480        match self {
6481            Self::PftSound => "PFT_SOUND",
6482        }
6483    }
6484    /// Creates an enum from field names used in the ProtoBuf definition.
6485    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6486        match value {
6487            "PFT_SOUND" => Some(Self::PftSound),
6488            _ => None,
6489        }
6490    }
6491}
6492#[derive(serde::Serialize, serde::Deserialize)]
6493#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6494#[repr(i32)]
6495pub enum ESplitScreenMessageType {
6496    MsgSplitscreenAdduser = 0,
6497    MsgSplitscreenRemoveuser = 1,
6498}
6499impl ESplitScreenMessageType {
6500    /// String value of the enum field names used in the ProtoBuf definition.
6501    ///
6502    /// The values are not transformed in any way and thus are considered stable
6503    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6504    pub fn as_str_name(&self) -> &'static str {
6505        match self {
6506            Self::MsgSplitscreenAdduser => "MSG_SPLITSCREEN_ADDUSER",
6507            Self::MsgSplitscreenRemoveuser => "MSG_SPLITSCREEN_REMOVEUSER",
6508        }
6509    }
6510    /// Creates an enum from field names used in the ProtoBuf definition.
6511    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6512        match value {
6513            "MSG_SPLITSCREEN_ADDUSER" => Some(Self::MsgSplitscreenAdduser),
6514            "MSG_SPLITSCREEN_REMOVEUSER" => Some(Self::MsgSplitscreenRemoveuser),
6515            _ => None,
6516        }
6517    }
6518}
6519#[derive(serde::Serialize, serde::Deserialize)]
6520#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6521#[repr(i32)]
6522pub enum EQueryCvarValueStatus {
6523    ValueIntact = 0,
6524    CvarNotFound = 1,
6525    NotACvar = 2,
6526    CvarProtected = 3,
6527}
6528impl EQueryCvarValueStatus {
6529    /// String value of the enum field names used in the ProtoBuf definition.
6530    ///
6531    /// The values are not transformed in any way and thus are considered stable
6532    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6533    pub fn as_str_name(&self) -> &'static str {
6534        match self {
6535            Self::ValueIntact => "eQueryCvarValueStatus_ValueIntact",
6536            Self::CvarNotFound => "eQueryCvarValueStatus_CvarNotFound",
6537            Self::NotACvar => "eQueryCvarValueStatus_NotACvar",
6538            Self::CvarProtected => "eQueryCvarValueStatus_CvarProtected",
6539        }
6540    }
6541    /// Creates an enum from field names used in the ProtoBuf definition.
6542    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6543        match value {
6544            "eQueryCvarValueStatus_ValueIntact" => Some(Self::ValueIntact),
6545            "eQueryCvarValueStatus_CvarNotFound" => Some(Self::CvarNotFound),
6546            "eQueryCvarValueStatus_NotACvar" => Some(Self::NotACvar),
6547            "eQueryCvarValueStatus_CvarProtected" => Some(Self::CvarProtected),
6548            _ => None,
6549        }
6550    }
6551}
6552#[derive(serde::Serialize, serde::Deserialize)]
6553#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6554#[repr(i32)]
6555pub enum DialogType {
6556    DialogMsg = 0,
6557    DialogMenu = 1,
6558    DialogText = 2,
6559    DialogEntry = 3,
6560    DialogAskconnect = 4,
6561}
6562impl DialogType {
6563    /// String value of the enum field names used in the ProtoBuf definition.
6564    ///
6565    /// The values are not transformed in any way and thus are considered stable
6566    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6567    pub fn as_str_name(&self) -> &'static str {
6568        match self {
6569            Self::DialogMsg => "DIALOG_MSG",
6570            Self::DialogMenu => "DIALOG_MENU",
6571            Self::DialogText => "DIALOG_TEXT",
6572            Self::DialogEntry => "DIALOG_ENTRY",
6573            Self::DialogAskconnect => "DIALOG_ASKCONNECT",
6574        }
6575    }
6576    /// Creates an enum from field names used in the ProtoBuf definition.
6577    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6578        match value {
6579            "DIALOG_MSG" => Some(Self::DialogMsg),
6580            "DIALOG_MENU" => Some(Self::DialogMenu),
6581            "DIALOG_TEXT" => Some(Self::DialogText),
6582            "DIALOG_ENTRY" => Some(Self::DialogEntry),
6583            "DIALOG_ASKCONNECT" => Some(Self::DialogAskconnect),
6584            _ => None,
6585        }
6586    }
6587}
6588#[derive(serde::Serialize, serde::Deserialize)]
6589#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6590#[repr(i32)]
6591pub enum SvcMessagesLowFrequency {
6592    SvcDummy = 600,
6593}
6594impl SvcMessagesLowFrequency {
6595    /// String value of the enum field names used in the ProtoBuf definition.
6596    ///
6597    /// The values are not transformed in any way and thus are considered stable
6598    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6599    pub fn as_str_name(&self) -> &'static str {
6600        match self {
6601            Self::SvcDummy => "svc_dummy",
6602        }
6603    }
6604    /// Creates an enum from field names used in the ProtoBuf definition.
6605    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6606        match value {
6607            "svc_dummy" => Some(Self::SvcDummy),
6608            _ => None,
6609        }
6610    }
6611}
6612#[derive(serde::Serialize, serde::Deserialize)]
6613#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6614#[repr(i32)]
6615pub enum BidirectionalMessages {
6616    BiRebroadcastGameEvent = 16,
6617    BiRebroadcastSource = 17,
6618    BiGameEvent = 18,
6619    BiPredictionEvent = 19,
6620}
6621impl BidirectionalMessages {
6622    /// String value of the enum field names used in the ProtoBuf definition.
6623    ///
6624    /// The values are not transformed in any way and thus are considered stable
6625    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6626    pub fn as_str_name(&self) -> &'static str {
6627        match self {
6628            Self::BiRebroadcastGameEvent => "bi_RebroadcastGameEvent",
6629            Self::BiRebroadcastSource => "bi_RebroadcastSource",
6630            Self::BiGameEvent => "bi_GameEvent",
6631            Self::BiPredictionEvent => "bi_PredictionEvent",
6632        }
6633    }
6634    /// Creates an enum from field names used in the ProtoBuf definition.
6635    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6636        match value {
6637            "bi_RebroadcastGameEvent" => Some(Self::BiRebroadcastGameEvent),
6638            "bi_RebroadcastSource" => Some(Self::BiRebroadcastSource),
6639            "bi_GameEvent" => Some(Self::BiGameEvent),
6640            "bi_PredictionEvent" => Some(Self::BiPredictionEvent),
6641            _ => None,
6642        }
6643    }
6644}
6645#[derive(serde::Serialize, serde::Deserialize)]
6646#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6647#[repr(i32)]
6648pub enum BidirectionalMessagesLowFrequency {
6649    BiRelayInfo = 700,
6650    BiRelayPacket = 701,
6651}
6652impl BidirectionalMessagesLowFrequency {
6653    /// String value of the enum field names used in the ProtoBuf definition.
6654    ///
6655    /// The values are not transformed in any way and thus are considered stable
6656    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6657    pub fn as_str_name(&self) -> &'static str {
6658        match self {
6659            Self::BiRelayInfo => "bi_RelayInfo",
6660            Self::BiRelayPacket => "bi_RelayPacket",
6661        }
6662    }
6663    /// Creates an enum from field names used in the ProtoBuf definition.
6664    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6665        match value {
6666            "bi_RelayInfo" => Some(Self::BiRelayInfo),
6667            "bi_RelayPacket" => Some(Self::BiRelayPacket),
6668            _ => None,
6669        }
6670    }
6671}
6672#[derive(serde::Serialize, serde::Deserialize)]
6673#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6674#[repr(i32)]
6675pub enum ReplayEventTypeT {
6676    ReplayEventCancel = 0,
6677    ReplayEventDeath = 1,
6678    ReplayEventGeneric = 2,
6679    ReplayEventStuckNeedFullUpdate = 3,
6680    ReplayEventVictory = 4,
6681}
6682impl ReplayEventTypeT {
6683    /// String value of the enum field names used in the ProtoBuf definition.
6684    ///
6685    /// The values are not transformed in any way and thus are considered stable
6686    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6687    pub fn as_str_name(&self) -> &'static str {
6688        match self {
6689            Self::ReplayEventCancel => "REPLAY_EVENT_CANCEL",
6690            Self::ReplayEventDeath => "REPLAY_EVENT_DEATH",
6691            Self::ReplayEventGeneric => "REPLAY_EVENT_GENERIC",
6692            Self::ReplayEventStuckNeedFullUpdate => "REPLAY_EVENT_STUCK_NEED_FULL_UPDATE",
6693            Self::ReplayEventVictory => "REPLAY_EVENT_VICTORY",
6694        }
6695    }
6696    /// Creates an enum from field names used in the ProtoBuf definition.
6697    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6698        match value {
6699            "REPLAY_EVENT_CANCEL" => Some(Self::ReplayEventCancel),
6700            "REPLAY_EVENT_DEATH" => Some(Self::ReplayEventDeath),
6701            "REPLAY_EVENT_GENERIC" => Some(Self::ReplayEventGeneric),
6702            "REPLAY_EVENT_STUCK_NEED_FULL_UPDATE" => {
6703                Some(Self::ReplayEventStuckNeedFullUpdate)
6704            }
6705            "REPLAY_EVENT_VICTORY" => Some(Self::ReplayEventVictory),
6706            _ => None,
6707        }
6708    }
6709}
6710#[derive(serde::Serialize, serde::Deserialize)]
6711#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6712pub struct Cp2pTextMessage {
6713    #[prost(bytes = "vec", optional, tag = "1")]
6714    pub text: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
6715}
6716#[derive(serde::Serialize, serde::Deserialize)]
6717#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6718pub struct CSteamVoiceEncoding {
6719    #[prost(bytes = "vec", optional, tag = "1")]
6720    pub voice_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
6721}
6722#[derive(serde::Serialize, serde::Deserialize)]
6723#[derive(Clone, PartialEq, ::prost::Message)]
6724pub struct Cp2pVoice {
6725    #[prost(message, optional, tag = "1")]
6726    pub audio: ::core::option::Option<CMsgVoiceAudio>,
6727    #[prost(uint32, optional, tag = "2")]
6728    pub broadcast_group: ::core::option::Option<u32>,
6729}
6730/// Nested message and enum types in `CP2P_Voice`.
6731pub mod cp2p_voice {
6732    #[derive(serde::Serialize, serde::Deserialize)]
6733    #[derive(
6734        Clone,
6735        Copy,
6736        Debug,
6737        PartialEq,
6738        Eq,
6739        Hash,
6740        PartialOrd,
6741        Ord,
6742        ::prost::Enumeration
6743    )]
6744    #[repr(i32)]
6745    pub enum HandlerFlags {
6746        PlayedAudio = 1,
6747    }
6748    impl HandlerFlags {
6749        /// String value of the enum field names used in the ProtoBuf definition.
6750        ///
6751        /// The values are not transformed in any way and thus are considered stable
6752        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6753        pub fn as_str_name(&self) -> &'static str {
6754            match self {
6755                Self::PlayedAudio => "Played_Audio",
6756            }
6757        }
6758        /// Creates an enum from field names used in the ProtoBuf definition.
6759        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6760            match value {
6761                "Played_Audio" => Some(Self::PlayedAudio),
6762                _ => None,
6763            }
6764        }
6765    }
6766}
6767#[derive(serde::Serialize, serde::Deserialize)]
6768#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
6769pub struct Cp2pPing {
6770    #[prost(uint64, optional, tag = "1")]
6771    pub send_time: ::core::option::Option<u64>,
6772    #[prost(bool, optional, tag = "2")]
6773    pub is_reply: ::core::option::Option<bool>,
6774}
6775#[derive(serde::Serialize, serde::Deserialize)]
6776#[derive(Clone, PartialEq, ::prost::Message)]
6777pub struct Cp2pVrAvatarPosition {
6778    #[prost(message, repeated, tag = "1")]
6779    pub body_parts: ::prost::alloc::vec::Vec<cp2p_vr_avatar_position::COrientation>,
6780    #[prost(int32, optional, tag = "2")]
6781    pub hat_id: ::core::option::Option<i32>,
6782    #[prost(int32, optional, tag = "3")]
6783    pub scene_id: ::core::option::Option<i32>,
6784    #[prost(int32, optional, tag = "4")]
6785    pub world_scale: ::core::option::Option<i32>,
6786}
6787/// Nested message and enum types in `CP2P_VRAvatarPosition`.
6788pub mod cp2p_vr_avatar_position {
6789    #[derive(serde::Serialize, serde::Deserialize)]
6790    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
6791    pub struct COrientation {
6792        #[prost(message, optional, tag = "1")]
6793        pub pos: ::core::option::Option<super::CMsgVector>,
6794        #[prost(message, optional, tag = "2")]
6795        pub ang: ::core::option::Option<super::CMsgQAngle>,
6796    }
6797}
6798#[derive(serde::Serialize, serde::Deserialize)]
6799#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
6800pub struct Cp2pWatchSynchronization {
6801    #[prost(int32, optional, tag = "1")]
6802    pub demo_tick: ::core::option::Option<i32>,
6803    #[prost(bool, optional, tag = "2")]
6804    pub paused: ::core::option::Option<bool>,
6805    #[prost(uint64, optional, tag = "3")]
6806    pub tv_listen_voice_indices: ::core::option::Option<u64>,
6807    #[prost(int32, optional, tag = "4")]
6808    pub dota_spectator_mode: ::core::option::Option<i32>,
6809    #[prost(bool, optional, tag = "5")]
6810    pub dota_spectator_watching_broadcaster: ::core::option::Option<bool>,
6811    #[prost(int32, optional, tag = "6")]
6812    pub dota_spectator_hero_index: ::core::option::Option<i32>,
6813    #[prost(int32, optional, tag = "7")]
6814    pub dota_spectator_autospeed: ::core::option::Option<i32>,
6815    #[prost(int32, optional, tag = "8")]
6816    pub dota_replay_speed: ::core::option::Option<i32>,
6817}
6818#[derive(serde::Serialize, serde::Deserialize)]
6819#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6820#[repr(i32)]
6821pub enum P2pMessages {
6822    P2pTextMessage = 256,
6823    P2pVoice = 257,
6824    P2pPing = 258,
6825    P2pVrAvatarPosition = 259,
6826    P2pWatchSynchronization = 260,
6827    P2pFightingGameGameData = 261,
6828    P2pFightingGameConnection = 262,
6829}
6830impl P2pMessages {
6831    /// String value of the enum field names used in the ProtoBuf definition.
6832    ///
6833    /// The values are not transformed in any way and thus are considered stable
6834    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6835    pub fn as_str_name(&self) -> &'static str {
6836        match self {
6837            Self::P2pTextMessage => "p2p_TextMessage",
6838            Self::P2pVoice => "p2p_Voice",
6839            Self::P2pPing => "p2p_Ping",
6840            Self::P2pVrAvatarPosition => "p2p_VRAvatarPosition",
6841            Self::P2pWatchSynchronization => "p2p_WatchSynchronization",
6842            Self::P2pFightingGameGameData => "p2p_FightingGame_GameData",
6843            Self::P2pFightingGameConnection => "p2p_FightingGame_Connection",
6844        }
6845    }
6846    /// Creates an enum from field names used in the ProtoBuf definition.
6847    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6848        match value {
6849            "p2p_TextMessage" => Some(Self::P2pTextMessage),
6850            "p2p_Voice" => Some(Self::P2pVoice),
6851            "p2p_Ping" => Some(Self::P2pPing),
6852            "p2p_VRAvatarPosition" => Some(Self::P2pVrAvatarPosition),
6853            "p2p_WatchSynchronization" => Some(Self::P2pWatchSynchronization),
6854            "p2p_FightingGame_GameData" => Some(Self::P2pFightingGameGameData),
6855            "p2p_FightingGame_Connection" => Some(Self::P2pFightingGameConnection),
6856            _ => None,
6857        }
6858    }
6859}
6860#[derive(serde::Serialize, serde::Deserialize)]
6861#[derive(Clone, PartialEq, ::prost::Message)]
6862pub struct CsoCitadelLobby {
6863    #[prost(uint64, optional, tag = "1")]
6864    pub lobby_id: ::core::option::Option<u64>,
6865    #[prost(uint64, optional, tag = "2")]
6866    pub match_id: ::core::option::Option<u64>,
6867    #[prost(
6868        enumeration = "ECitadelMatchMode",
6869        optional,
6870        tag = "3",
6871        default = "KECitadelMatchModeInvalid"
6872    )]
6873    pub match_mode: ::core::option::Option<i32>,
6874    #[prost(
6875        enumeration = "ECitadelGameMode",
6876        optional,
6877        tag = "4",
6878        default = "KECitadelGameModeInvalid"
6879    )]
6880    pub game_mode: ::core::option::Option<i32>,
6881    #[prost(uint32, optional, tag = "5")]
6882    pub compatibility_version: ::core::option::Option<u32>,
6883    #[prost(message, repeated, tag = "6")]
6884    pub extra_messages: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
6885    #[prost(fixed64, optional, tag = "7")]
6886    pub server_steam_id: ::core::option::Option<u64>,
6887    #[prost(
6888        enumeration = "ELobbyServerState",
6889        optional,
6890        tag = "8",
6891        default = "KELobbyServerStateAssign"
6892    )]
6893    pub server_state: ::core::option::Option<i32>,
6894    #[prost(uint32, optional, tag = "9")]
6895    pub udp_connect_ip: ::core::option::Option<u32>,
6896    #[prost(uint32, optional, tag = "10")]
6897    pub udp_connect_port: ::core::option::Option<u32>,
6898    #[prost(bytes = "vec", optional, tag = "12")]
6899    pub sdr_address: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
6900    #[prost(uint32, optional, tag = "13")]
6901    pub server_version: ::core::option::Option<u32>,
6902    #[prost(bool, optional, tag = "14")]
6903    pub safe_to_abandon: ::core::option::Option<bool>,
6904    #[prost(bool, optional, tag = "15")]
6905    pub match_punishes_abandons: ::core::option::Option<bool>,
6906    #[prost(uint32, optional, tag = "16")]
6907    pub game_mode_version: ::core::option::Option<u32>,
6908}
6909#[derive(serde::Serialize, serde::Deserialize)]
6910#[derive(Clone, PartialEq, ::prost::Message)]
6911pub struct CsoCitadelHideoutLobby {
6912    #[prost(uint64, optional, tag = "1")]
6913    pub hideout_lobby_id: ::core::option::Option<u64>,
6914    #[prost(uint64, optional, tag = "2")]
6915    pub party_id: ::core::option::Option<u64>,
6916    #[prost(fixed64, optional, tag = "3")]
6917    pub server_steam_id: ::core::option::Option<u64>,
6918    #[prost(uint32, optional, tag = "4")]
6919    pub udp_connect_ip: ::core::option::Option<u32>,
6920    #[prost(uint32, optional, tag = "5")]
6921    pub udp_connect_port: ::core::option::Option<u32>,
6922    #[prost(bytes = "vec", optional, tag = "6")]
6923    pub sdr_address: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
6924    #[prost(uint32, optional, tag = "7")]
6925    pub server_version: ::core::option::Option<u32>,
6926    #[prost(uint32, optional, tag = "8")]
6927    pub compat_version: ::core::option::Option<u32>,
6928    #[prost(message, repeated, tag = "9")]
6929    pub members: ::prost::alloc::vec::Vec<cso_citadel_hideout_lobby::Member>,
6930    #[prost(uint32, optional, tag = "10")]
6931    pub active_account_hideout: ::core::option::Option<u32>,
6932    #[prost(message, repeated, tag = "11")]
6933    pub extra_messages: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
6934}
6935/// Nested message and enum types in `CSOCitadelHideoutLobby`.
6936pub mod cso_citadel_hideout_lobby {
6937    #[derive(serde::Serialize, serde::Deserialize)]
6938    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
6939    pub struct Member {
6940        #[prost(uint32, optional, tag = "1")]
6941        pub account_id: ::core::option::Option<u32>,
6942        #[prost(bool, optional, tag = "30")]
6943        pub hideout_holiday_award_2024: ::core::option::Option<bool>,
6944        #[prost(bool, optional, tag = "32")]
6945        pub hideout_holiday_award_2025: ::core::option::Option<bool>,
6946    }
6947}
6948#[derive(serde::Serialize, serde::Deserialize)]
6949#[derive(Clone, PartialEq, ::prost::Message)]
6950pub struct CLobbyDataPostMatchSurvey {
6951    #[prost(message, repeated, tag = "1")]
6952    pub surveys: ::prost::alloc::vec::Vec<c_lobby_data_post_match_survey::PlayerSurvey>,
6953}
6954/// Nested message and enum types in `CLobbyData_PostMatchSurvey`.
6955pub mod c_lobby_data_post_match_survey {
6956    #[derive(serde::Serialize, serde::Deserialize)]
6957    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
6958    pub struct PlayerSurvey {
6959        #[prost(uint32, optional, tag = "1")]
6960        pub account_id: ::core::option::Option<u32>,
6961        #[prost(uint32, optional, tag = "2")]
6962        pub question_id: ::core::option::Option<u32>,
6963    }
6964}
6965#[derive(serde::Serialize, serde::Deserialize)]
6966#[derive(Clone, PartialEq, ::prost::Message)]
6967pub struct CMsgHeroSelectionMatchInfo {
6968    #[prost(message, repeated, tag = "1")]
6969    pub hero_selections: ::prost::alloc::vec::Vec<c_msg_hero_selection_match_info::Hero>,
6970    #[prost(uint32, repeated, packed = "false", tag = "2")]
6971    pub banned_heroes: ::prost::alloc::vec::Vec<u32>,
6972}
6973/// Nested message and enum types in `CMsgHeroSelectionMatchInfo`.
6974pub mod c_msg_hero_selection_match_info {
6975    #[derive(serde::Serialize, serde::Deserialize)]
6976    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
6977    pub struct Hero {
6978        #[prost(uint32, optional, tag = "1")]
6979        pub hero_id: ::core::option::Option<u32>,
6980        #[prost(uint32, optional, tag = "2")]
6981        pub priority: ::core::option::Option<u32>,
6982    }
6983}
6984#[derive(serde::Serialize, serde::Deserialize)]
6985#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6986pub struct CMsgStartFindingMatchInfo {
6987    #[prost(string, optional, tag = "1")]
6988    pub server_search_key: ::core::option::Option<::prost::alloc::string::String>,
6989    #[prost(string, optional, tag = "2")]
6990    pub server_command_string: ::core::option::Option<::prost::alloc::string::String>,
6991    #[prost(
6992        enumeration = "ECitadelMatchMode",
6993        optional,
6994        tag = "3",
6995        default = "KECitadelMatchModeInvalid"
6996    )]
6997    pub match_mode: ::core::option::Option<i32>,
6998    #[prost(
6999        enumeration = "ECitadelGameMode",
7000        optional,
7001        tag = "5",
7002        default = "KECitadelGameModeInvalid"
7003    )]
7004    pub game_mode: ::core::option::Option<i32>,
7005    #[prost(
7006        enumeration = "ECitadelBotDifficulty",
7007        optional,
7008        tag = "7",
7009        default = "KECitadelBotDifficultyNone"
7010    )]
7011    pub bot_difficulty: ::core::option::Option<i32>,
7012    #[prost(
7013        enumeration = "ECitadelRegionMode",
7014        optional,
7015        tag = "8",
7016        default = "KECitadelRegionModeRow"
7017    )]
7018    pub region_mode: ::core::option::Option<i32>,
7019    #[prost(bool, optional, tag = "9")]
7020    pub prefer_solo_only: ::core::option::Option<bool>,
7021    #[prost(
7022        enumeration = "ECitadelMmPreference",
7023        optional,
7024        tag = "10",
7025        default = "KECitadelMmPreferenceInvalid"
7026    )]
7027    pub mm_preference: ::core::option::Option<i32>,
7028}
7029#[derive(serde::Serialize, serde::Deserialize)]
7030#[derive(Clone, PartialEq, ::prost::Message)]
7031pub struct CMsgAnyToGcReportAsserts {
7032    #[prost(uint32, optional, tag = "1")]
7033    pub version: ::core::option::Option<u32>,
7034    #[prost(message, repeated, tag = "2")]
7035    pub asserts: ::prost::alloc::vec::Vec<c_msg_any_to_gc_report_asserts::TrackedAssert>,
7036    #[prost(uint64, optional, tag = "3")]
7037    pub match_id: ::core::option::Option<u64>,
7038}
7039/// Nested message and enum types in `CMsgAnyToGCReportAsserts`.
7040pub mod c_msg_any_to_gc_report_asserts {
7041    #[derive(serde::Serialize, serde::Deserialize)]
7042    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7043    pub struct TrackedAssert {
7044        #[prost(string, optional, tag = "1")]
7045        pub filename: ::core::option::Option<::prost::alloc::string::String>,
7046        #[prost(uint32, optional, tag = "2")]
7047        pub line_number: ::core::option::Option<u32>,
7048        #[prost(string, optional, tag = "3")]
7049        pub sample_msg: ::core::option::Option<::prost::alloc::string::String>,
7050        #[prost(string, optional, tag = "4")]
7051        pub sample_stack: ::core::option::Option<::prost::alloc::string::String>,
7052        #[prost(uint32, optional, tag = "5")]
7053        pub times_fired: ::core::option::Option<u32>,
7054        #[prost(string, optional, tag = "6")]
7055        pub function_name: ::core::option::Option<::prost::alloc::string::String>,
7056        #[prost(string, optional, tag = "7")]
7057        pub condition: ::core::option::Option<::prost::alloc::string::String>,
7058        #[prost(uint32, optional, tag = "8")]
7059        pub total_times_fired: ::core::option::Option<u32>,
7060    }
7061}
7062#[derive(serde::Serialize, serde::Deserialize)]
7063#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7064pub struct CMsgAnyToGcReportAssertsResponse {
7065    #[prost(bool, optional, tag = "1")]
7066    pub success: ::core::option::Option<bool>,
7067}
7068#[derive(serde::Serialize, serde::Deserialize)]
7069#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7070pub struct CMsgRegionPingTimesClient {
7071    #[prost(fixed32, repeated, tag = "1")]
7072    pub data_center_codes: ::prost::alloc::vec::Vec<u32>,
7073    #[prost(uint32, repeated, tag = "2")]
7074    pub ping_times: ::prost::alloc::vec::Vec<u32>,
7075}
7076#[derive(serde::Serialize, serde::Deserialize)]
7077#[derive(Clone, PartialEq, ::prost::Message)]
7078pub struct CMsgEquippedItemList {
7079    #[prost(message, repeated, tag = "1")]
7080    pub items: ::prost::alloc::vec::Vec<CsoEconItem>,
7081}
7082#[derive(serde::Serialize, serde::Deserialize)]
7083#[derive(Clone, PartialEq, ::prost::Message)]
7084pub struct CMsgPlayerHeroData {
7085    #[prost(uint32, optional, tag = "1")]
7086    pub hero_xp: ::core::option::Option<u32>,
7087    #[prost(message, optional, tag = "2")]
7088    pub hero_equips: ::core::option::Option<CMsgEquippedItemList>,
7089}
7090#[derive(serde::Serialize, serde::Deserialize)]
7091#[derive(Clone, PartialEq, ::prost::Message)]
7092pub struct CsoCitadelParty {
7093    #[prost(uint64, optional, tag = "1")]
7094    pub party_id: ::core::option::Option<u64>,
7095    #[prost(message, repeated, tag = "2")]
7096    pub members: ::prost::alloc::vec::Vec<cso_citadel_party::Member>,
7097    #[prost(message, repeated, tag = "3")]
7098    pub invites: ::prost::alloc::vec::Vec<cso_citadel_party::Invite>,
7099    #[prost(string, optional, tag = "4")]
7100    pub dev_server_command: ::core::option::Option<::prost::alloc::string::String>,
7101    #[prost(message, repeated, tag = "5")]
7102    pub left_members: ::prost::alloc::vec::Vec<cso_citadel_party::LeftMember>,
7103    #[prost(uint64, optional, tag = "6")]
7104    pub join_code: ::core::option::Option<u64>,
7105    #[prost(
7106        enumeration = "ECitadelBotDifficulty",
7107        optional,
7108        tag = "7",
7109        default = "KECitadelBotDifficultyNone"
7110    )]
7111    pub bot_difficulty: ::core::option::Option<i32>,
7112    #[prost(
7113        enumeration = "ECitadelMatchMode",
7114        optional,
7115        tag = "9",
7116        default = "KECitadelMatchModeInvalid"
7117    )]
7118    pub match_mode: ::core::option::Option<i32>,
7119    #[prost(
7120        enumeration = "ECitadelGameMode",
7121        optional,
7122        tag = "10",
7123        default = "KECitadelGameModeInvalid"
7124    )]
7125    pub game_mode: ::core::option::Option<i32>,
7126    #[prost(uint32, optional, tag = "11")]
7127    pub match_making_start_time: ::core::option::Option<u32>,
7128    #[prost(string, optional, tag = "12")]
7129    pub server_search_key: ::core::option::Option<::prost::alloc::string::String>,
7130    #[prost(bool, optional, tag = "13")]
7131    pub is_high_skill_range_party: ::core::option::Option<bool>,
7132    #[prost(
7133        enumeration = "cso_citadel_party::EChatMode",
7134        optional,
7135        tag = "14",
7136        default = "KENone"
7137    )]
7138    pub chat_mode: ::core::option::Option<i32>,
7139    #[prost(
7140        enumeration = "ECitadelRegionMode",
7141        optional,
7142        tag = "15",
7143        default = "KECitadelRegionModeRow"
7144    )]
7145    pub region_mode: ::core::option::Option<i32>,
7146    #[prost(bool, optional, tag = "16")]
7147    pub is_private_lobby: ::core::option::Option<bool>,
7148    #[prost(message, optional, tag = "17")]
7149    pub private_lobby_settings: ::core::option::Option<
7150        cso_citadel_party::PrivateLobbySettings,
7151    >,
7152    #[prost(bool, optional, tag = "18")]
7153    pub desires_laning_together: ::core::option::Option<bool>,
7154    #[prost(
7155        enumeration = "ECitadelMmPreference",
7156        optional,
7157        tag = "19",
7158        default = "KECitadelMmPreferenceInvalid"
7159    )]
7160    pub mm_preference: ::core::option::Option<i32>,
7161    #[prost(string, optional, tag = "21")]
7162    pub hideout_search_key: ::core::option::Option<::prost::alloc::string::String>,
7163}
7164/// Nested message and enum types in `CSOCitadelParty`.
7165pub mod cso_citadel_party {
7166    #[derive(serde::Serialize, serde::Deserialize)]
7167    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7168    pub struct PrivateLobbySlot {
7169        #[prost(uint32, optional, tag = "1")]
7170        pub slot_id: ::core::option::Option<u32>,
7171        #[prost(uint32, optional, tag = "2")]
7172        pub player_account_id: ::core::option::Option<u32>,
7173    }
7174    #[derive(serde::Serialize, serde::Deserialize)]
7175    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7176    pub struct ServerRegion {
7177        #[prost(uint32, optional, tag = "1")]
7178        pub region_id: ::core::option::Option<u32>,
7179    }
7180    #[derive(serde::Serialize, serde::Deserialize)]
7181    #[derive(Clone, PartialEq, ::prost::Message)]
7182    pub struct PrivateLobbySettings {
7183        #[prost(uint32, optional, tag = "1")]
7184        pub min_roster_size: ::core::option::Option<u32>,
7185        #[prost(message, repeated, tag = "2")]
7186        pub match_slots: ::prost::alloc::vec::Vec<PrivateLobbySlot>,
7187        #[prost(bool, optional, tag = "3")]
7188        pub randomize_lanes: ::core::option::Option<bool>,
7189        #[prost(uint32, optional, tag = "4")]
7190        pub server_region: ::core::option::Option<u32>,
7191        #[prost(bool, optional, tag = "6")]
7192        pub is_publicly_visible: ::core::option::Option<bool>,
7193        #[prost(bool, optional, tag = "7")]
7194        pub cheats_enabled: ::core::option::Option<bool>,
7195        #[prost(message, repeated, tag = "8")]
7196        pub available_regions: ::prost::alloc::vec::Vec<ServerRegion>,
7197        #[prost(bool, optional, tag = "9")]
7198        pub duplicate_heroes_enabled: ::core::option::Option<bool>,
7199    }
7200    #[derive(serde::Serialize, serde::Deserialize)]
7201    #[derive(Clone, PartialEq, ::prost::Message)]
7202    pub struct Member {
7203        #[prost(uint32, optional, tag = "1")]
7204        pub account_id: ::core::option::Option<u32>,
7205        #[prost(string, optional, tag = "2")]
7206        pub persona_name: ::core::option::Option<::prost::alloc::string::String>,
7207        #[prost(uint32, optional, tag = "3")]
7208        pub rights_flags: ::core::option::Option<u32>,
7209        #[prost(bool, optional, tag = "4")]
7210        pub is_ready: ::core::option::Option<bool>,
7211        #[prost(
7212            enumeration = "EPlayerType",
7213            optional,
7214            tag = "5",
7215            default = "KEPlayerTypePlayer"
7216        )]
7217        pub player_type: ::core::option::Option<i32>,
7218        #[prost(uint32, optional, tag = "6")]
7219        pub compatibility_version: ::core::option::Option<u32>,
7220        #[prost(
7221            enumeration = "super::EgcPlatform",
7222            optional,
7223            tag = "7",
7224            default = "KEGcPlatformNone"
7225        )]
7226        pub platform: ::core::option::Option<i32>,
7227        #[prost(uint32, optional, tag = "8")]
7228        pub team: ::core::option::Option<u32>,
7229        #[prost(message, optional, tag = "9")]
7230        pub hero_roster: ::core::option::Option<super::CMsgHeroSelectionMatchInfo>,
7231        #[prost(uint64, optional, tag = "10")]
7232        pub permissions: ::core::option::Option<u64>,
7233        #[prost(uint64, optional, tag = "11")]
7234        pub new_player_progress: ::core::option::Option<u64>,
7235        #[prost(uint32, repeated, tag = "12")]
7236        pub owned_heroes: ::prost::alloc::vec::Vec<u32>,
7237        #[prost(uint32, optional, tag = "13")]
7238        pub low_priority_games_remaining: ::core::option::Option<u32>,
7239    }
7240    #[derive(serde::Serialize, serde::Deserialize)]
7241    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7242    pub struct LeftMember {
7243        #[prost(uint32, optional, tag = "1")]
7244        pub account_id: ::core::option::Option<u32>,
7245        #[prost(uint32, optional, tag = "2")]
7246        pub rights_flags: ::core::option::Option<u32>,
7247        #[prost(
7248            enumeration = "EPlayerType",
7249            optional,
7250            tag = "3",
7251            default = "KEPlayerTypePlayer"
7252        )]
7253        pub player_type: ::core::option::Option<i32>,
7254    }
7255    #[derive(serde::Serialize, serde::Deserialize)]
7256    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7257    pub struct Invite {
7258        #[prost(uint32, optional, tag = "1")]
7259        pub account_id: ::core::option::Option<u32>,
7260        #[prost(string, optional, tag = "2")]
7261        pub persona_name: ::core::option::Option<::prost::alloc::string::String>,
7262        #[prost(uint32, optional, tag = "3")]
7263        pub invited_by: ::core::option::Option<u32>,
7264    }
7265    #[derive(serde::Serialize, serde::Deserialize)]
7266    #[derive(
7267        Clone,
7268        Copy,
7269        Debug,
7270        PartialEq,
7271        Eq,
7272        Hash,
7273        PartialOrd,
7274        Ord,
7275        ::prost::Enumeration
7276    )]
7277    #[repr(i32)]
7278    pub enum EMemberRights {
7279        KEMemberRightsAdmin = 1,
7280        KEMemberRightsCreator = 2,
7281    }
7282    impl EMemberRights {
7283        /// String value of the enum field names used in the ProtoBuf definition.
7284        ///
7285        /// The values are not transformed in any way and thus are considered stable
7286        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7287        pub fn as_str_name(&self) -> &'static str {
7288            match self {
7289                Self::KEMemberRightsAdmin => "k_eMemberRights_Admin",
7290                Self::KEMemberRightsCreator => "k_eMemberRights_Creator",
7291            }
7292        }
7293        /// Creates an enum from field names used in the ProtoBuf definition.
7294        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7295            match value {
7296                "k_eMemberRights_Admin" => Some(Self::KEMemberRightsAdmin),
7297                "k_eMemberRights_Creator" => Some(Self::KEMemberRightsCreator),
7298                _ => None,
7299            }
7300        }
7301    }
7302    #[derive(serde::Serialize, serde::Deserialize)]
7303    #[derive(
7304        Clone,
7305        Copy,
7306        Debug,
7307        PartialEq,
7308        Eq,
7309        Hash,
7310        PartialOrd,
7311        Ord,
7312        ::prost::Enumeration
7313    )]
7314    #[repr(i32)]
7315    pub enum EPlayerType {
7316        KEPlayerTypePlayer = 0,
7317        KEPlayerTypeSpectator = 1,
7318    }
7319    impl EPlayerType {
7320        /// String value of the enum field names used in the ProtoBuf definition.
7321        ///
7322        /// The values are not transformed in any way and thus are considered stable
7323        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7324        pub fn as_str_name(&self) -> &'static str {
7325            match self {
7326                Self::KEPlayerTypePlayer => "k_ePlayerType_Player",
7327                Self::KEPlayerTypeSpectator => "k_ePlayerType_Spectator",
7328            }
7329        }
7330        /// Creates an enum from field names used in the ProtoBuf definition.
7331        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7332            match value {
7333                "k_ePlayerType_Player" => Some(Self::KEPlayerTypePlayer),
7334                "k_ePlayerType_Spectator" => Some(Self::KEPlayerTypeSpectator),
7335                _ => None,
7336            }
7337        }
7338    }
7339    #[derive(serde::Serialize, serde::Deserialize)]
7340    #[derive(
7341        Clone,
7342        Copy,
7343        Debug,
7344        PartialEq,
7345        Eq,
7346        Hash,
7347        PartialOrd,
7348        Ord,
7349        ::prost::Enumeration
7350    )]
7351    #[repr(i32)]
7352    pub enum EChatMode {
7353        KENone = 0,
7354        KEPartyChat = 1,
7355        KETeamChat = 2,
7356    }
7357    impl EChatMode {
7358        /// String value of the enum field names used in the ProtoBuf definition.
7359        ///
7360        /// The values are not transformed in any way and thus are considered stable
7361        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7362        pub fn as_str_name(&self) -> &'static str {
7363            match self {
7364                Self::KENone => "k_eNone",
7365                Self::KEPartyChat => "k_ePartyChat",
7366                Self::KETeamChat => "k_eTeamChat",
7367            }
7368        }
7369        /// Creates an enum from field names used in the ProtoBuf definition.
7370        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7371            match value {
7372                "k_eNone" => Some(Self::KENone),
7373                "k_ePartyChat" => Some(Self::KEPartyChat),
7374                "k_eTeamChat" => Some(Self::KETeamChat),
7375                _ => None,
7376            }
7377        }
7378    }
7379}
7380#[derive(serde::Serialize, serde::Deserialize)]
7381#[derive(Clone, PartialEq, ::prost::Message)]
7382pub struct CMsgMatchPlayerPathsData {
7383    #[prost(uint32, optional, tag = "1")]
7384    pub version: ::core::option::Option<u32>,
7385    #[prost(float, optional, tag = "2")]
7386    pub interval_s: ::core::option::Option<f32>,
7387    #[prost(uint32, optional, tag = "3")]
7388    pub x_resolution: ::core::option::Option<u32>,
7389    #[prost(uint32, optional, tag = "4")]
7390    pub y_resolution: ::core::option::Option<u32>,
7391    #[prost(message, repeated, tag = "5")]
7392    pub paths: ::prost::alloc::vec::Vec<c_msg_match_player_paths_data::Path>,
7393}
7394/// Nested message and enum types in `CMsgMatchPlayerPathsData`.
7395pub mod c_msg_match_player_paths_data {
7396    #[derive(serde::Serialize, serde::Deserialize)]
7397    #[derive(Clone, PartialEq, ::prost::Message)]
7398    pub struct Path {
7399        #[prost(uint32, optional, tag = "1")]
7400        pub player_slot: ::core::option::Option<u32>,
7401        #[prost(float, optional, tag = "2")]
7402        pub x_min: ::core::option::Option<f32>,
7403        #[prost(float, optional, tag = "3")]
7404        pub y_min: ::core::option::Option<f32>,
7405        #[prost(float, optional, tag = "4")]
7406        pub x_max: ::core::option::Option<f32>,
7407        #[prost(float, optional, tag = "5")]
7408        pub y_max: ::core::option::Option<f32>,
7409        #[prost(uint32, repeated, tag = "6")]
7410        pub x_pos: ::prost::alloc::vec::Vec<u32>,
7411        #[prost(uint32, repeated, tag = "7")]
7412        pub y_pos: ::prost::alloc::vec::Vec<u32>,
7413        #[prost(uint32, repeated, tag = "9")]
7414        pub health: ::prost::alloc::vec::Vec<u32>,
7415        #[prost(enumeration = "ECombatType", repeated, tag = "10")]
7416        pub combat_type: ::prost::alloc::vec::Vec<i32>,
7417        #[prost(enumeration = "EMoveType", repeated, tag = "11")]
7418        pub move_type: ::prost::alloc::vec::Vec<i32>,
7419    }
7420    #[derive(serde::Serialize, serde::Deserialize)]
7421    #[derive(
7422        Clone,
7423        Copy,
7424        Debug,
7425        PartialEq,
7426        Eq,
7427        Hash,
7428        PartialOrd,
7429        Ord,
7430        ::prost::Enumeration
7431    )]
7432    #[repr(i32)]
7433    pub enum ECombatType {
7434        KECombatTypeOut = 0,
7435        KECombatTypePlayer = 1,
7436        KECombatTypeEnemyNpc = 2,
7437        KECombatTypeNeutral = 3,
7438    }
7439    impl ECombatType {
7440        /// String value of the enum field names used in the ProtoBuf definition.
7441        ///
7442        /// The values are not transformed in any way and thus are considered stable
7443        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7444        pub fn as_str_name(&self) -> &'static str {
7445            match self {
7446                Self::KECombatTypeOut => "k_eCombatType_Out",
7447                Self::KECombatTypePlayer => "k_eCombatType_Player",
7448                Self::KECombatTypeEnemyNpc => "k_eCombatType_EnemyNPC",
7449                Self::KECombatTypeNeutral => "k_eCombatType_Neutral",
7450            }
7451        }
7452        /// Creates an enum from field names used in the ProtoBuf definition.
7453        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7454            match value {
7455                "k_eCombatType_Out" => Some(Self::KECombatTypeOut),
7456                "k_eCombatType_Player" => Some(Self::KECombatTypePlayer),
7457                "k_eCombatType_EnemyNPC" => Some(Self::KECombatTypeEnemyNpc),
7458                "k_eCombatType_Neutral" => Some(Self::KECombatTypeNeutral),
7459                _ => None,
7460            }
7461        }
7462    }
7463    #[derive(serde::Serialize, serde::Deserialize)]
7464    #[derive(
7465        Clone,
7466        Copy,
7467        Debug,
7468        PartialEq,
7469        Eq,
7470        Hash,
7471        PartialOrd,
7472        Ord,
7473        ::prost::Enumeration
7474    )]
7475    #[repr(i32)]
7476    pub enum EMoveType {
7477        KEMoveTypeNormal = 0,
7478        KEMoveTypeAbility = 1,
7479        KEMoveTypeAbilityDebuff = 2,
7480        KEMoveTypeGroundDash = 3,
7481        KEMoveTypeSlide = 4,
7482        KEMoveTypeRopeClimbing = 5,
7483        KEMoveTypeZiplining = 6,
7484        KEMoveTypeInAir = 7,
7485        KEMoveTypeAirDash = 8,
7486    }
7487    impl EMoveType {
7488        /// String value of the enum field names used in the ProtoBuf definition.
7489        ///
7490        /// The values are not transformed in any way and thus are considered stable
7491        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7492        pub fn as_str_name(&self) -> &'static str {
7493            match self {
7494                Self::KEMoveTypeNormal => "k_eMoveType_Normal",
7495                Self::KEMoveTypeAbility => "k_eMoveType_Ability",
7496                Self::KEMoveTypeAbilityDebuff => "k_eMoveType_AbilityDebuff",
7497                Self::KEMoveTypeGroundDash => "k_eMoveType_GroundDash",
7498                Self::KEMoveTypeSlide => "k_eMoveType_Slide",
7499                Self::KEMoveTypeRopeClimbing => "k_eMoveType_RopeClimbing",
7500                Self::KEMoveTypeZiplining => "k_eMoveType_Ziplining",
7501                Self::KEMoveTypeInAir => "k_eMoveType_InAir",
7502                Self::KEMoveTypeAirDash => "k_eMoveType_AirDash",
7503            }
7504        }
7505        /// Creates an enum from field names used in the ProtoBuf definition.
7506        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7507            match value {
7508                "k_eMoveType_Normal" => Some(Self::KEMoveTypeNormal),
7509                "k_eMoveType_Ability" => Some(Self::KEMoveTypeAbility),
7510                "k_eMoveType_AbilityDebuff" => Some(Self::KEMoveTypeAbilityDebuff),
7511                "k_eMoveType_GroundDash" => Some(Self::KEMoveTypeGroundDash),
7512                "k_eMoveType_Slide" => Some(Self::KEMoveTypeSlide),
7513                "k_eMoveType_RopeClimbing" => Some(Self::KEMoveTypeRopeClimbing),
7514                "k_eMoveType_Ziplining" => Some(Self::KEMoveTypeZiplining),
7515                "k_eMoveType_InAir" => Some(Self::KEMoveTypeInAir),
7516                "k_eMoveType_AirDash" => Some(Self::KEMoveTypeAirDash),
7517                _ => None,
7518            }
7519        }
7520    }
7521}
7522#[derive(serde::Serialize, serde::Deserialize)]
7523#[derive(Clone, PartialEq, ::prost::Message)]
7524pub struct CMsgMatchPlayerDamageMatrix {
7525    #[prost(message, repeated, tag = "1")]
7526    pub damage_dealers: ::prost::alloc::vec::Vec<
7527        c_msg_match_player_damage_matrix::DamageDealer,
7528    >,
7529    #[prost(uint32, repeated, tag = "2")]
7530    pub sample_time_s: ::prost::alloc::vec::Vec<u32>,
7531    #[prost(message, optional, tag = "3")]
7532    pub source_details: ::core::option::Option<
7533        c_msg_match_player_damage_matrix::SourceDetails,
7534    >,
7535}
7536/// Nested message and enum types in `CMsgMatchPlayerDamageMatrix`.
7537pub mod c_msg_match_player_damage_matrix {
7538    #[derive(serde::Serialize, serde::Deserialize)]
7539    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7540    pub struct DamageToPlayer {
7541        #[prost(uint32, optional, tag = "1")]
7542        pub target_player_slot: ::core::option::Option<u32>,
7543        #[prost(uint32, repeated, tag = "2")]
7544        pub damage: ::prost::alloc::vec::Vec<u32>,
7545    }
7546    #[derive(serde::Serialize, serde::Deserialize)]
7547    #[derive(Clone, PartialEq, ::prost::Message)]
7548    pub struct DamageSource {
7549        #[prost(message, repeated, tag = "2")]
7550        pub damage_to_players: ::prost::alloc::vec::Vec<DamageToPlayer>,
7551        #[prost(uint32, optional, tag = "4")]
7552        pub source_details_index: ::core::option::Option<u32>,
7553    }
7554    #[derive(serde::Serialize, serde::Deserialize)]
7555    #[derive(Clone, PartialEq, ::prost::Message)]
7556    pub struct DamageDealer {
7557        #[prost(uint32, optional, tag = "1")]
7558        pub dealer_player_slot: ::core::option::Option<u32>,
7559        #[prost(message, repeated, tag = "2")]
7560        pub damage_sources: ::prost::alloc::vec::Vec<DamageSource>,
7561    }
7562    #[derive(serde::Serialize, serde::Deserialize)]
7563    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7564    pub struct SourceDetails {
7565        #[prost(enumeration = "EStatType", repeated, tag = "1")]
7566        pub stat_type: ::prost::alloc::vec::Vec<i32>,
7567        #[prost(string, repeated, tag = "2")]
7568        pub source_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7569    }
7570    #[derive(serde::Serialize, serde::Deserialize)]
7571    #[derive(
7572        Clone,
7573        Copy,
7574        Debug,
7575        PartialEq,
7576        Eq,
7577        Hash,
7578        PartialOrd,
7579        Ord,
7580        ::prost::Enumeration
7581    )]
7582    #[repr(i32)]
7583    pub enum EStatType {
7584        KETypeDamage = 0,
7585        KETypeHealing = 1,
7586        KETypeHealPrevented = 2,
7587        KETypeMitigated = 3,
7588        KETypeLethalDamage = 4,
7589        KETypeRegen = 5,
7590    }
7591    impl EStatType {
7592        /// String value of the enum field names used in the ProtoBuf definition.
7593        ///
7594        /// The values are not transformed in any way and thus are considered stable
7595        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7596        pub fn as_str_name(&self) -> &'static str {
7597            match self {
7598                Self::KETypeDamage => "k_eType_Damage",
7599                Self::KETypeHealing => "k_eType_Healing",
7600                Self::KETypeHealPrevented => "k_eType_HealPrevented",
7601                Self::KETypeMitigated => "k_eType_Mitigated",
7602                Self::KETypeLethalDamage => "k_eType_LethalDamage",
7603                Self::KETypeRegen => "k_eType_Regen",
7604            }
7605        }
7606        /// Creates an enum from field names used in the ProtoBuf definition.
7607        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7608            match value {
7609                "k_eType_Damage" => Some(Self::KETypeDamage),
7610                "k_eType_Healing" => Some(Self::KETypeHealing),
7611                "k_eType_HealPrevented" => Some(Self::KETypeHealPrevented),
7612                "k_eType_Mitigated" => Some(Self::KETypeMitigated),
7613                "k_eType_LethalDamage" => Some(Self::KETypeLethalDamage),
7614                "k_eType_Regen" => Some(Self::KETypeRegen),
7615                _ => None,
7616            }
7617        }
7618    }
7619}
7620#[derive(serde::Serialize, serde::Deserialize)]
7621#[derive(Clone, PartialEq, ::prost::Message)]
7622pub struct CMsgMatchMetaDataContents {
7623    #[prost(message, optional, tag = "2")]
7624    pub match_info: ::core::option::Option<c_msg_match_meta_data_contents::MatchInfo>,
7625}
7626/// Nested message and enum types in `CMsgMatchMetaDataContents`.
7627pub mod c_msg_match_meta_data_contents {
7628    #[derive(serde::Serialize, serde::Deserialize)]
7629    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
7630    pub struct Position {
7631        #[prost(float, optional, tag = "1")]
7632        pub x: ::core::option::Option<f32>,
7633        #[prost(float, optional, tag = "2")]
7634        pub y: ::core::option::Option<f32>,
7635        #[prost(float, optional, tag = "3")]
7636        pub z: ::core::option::Option<f32>,
7637    }
7638    #[derive(serde::Serialize, serde::Deserialize)]
7639    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
7640    pub struct Deaths {
7641        #[prost(uint32, optional, tag = "1")]
7642        pub game_time_s: ::core::option::Option<u32>,
7643        #[prost(float, optional, tag = "2")]
7644        pub time_to_kill_s: ::core::option::Option<f32>,
7645        #[prost(uint32, optional, tag = "9")]
7646        pub killer_player_slot: ::core::option::Option<u32>,
7647        #[prost(message, optional, tag = "10")]
7648        pub death_pos: ::core::option::Option<Position>,
7649        #[prost(message, optional, tag = "11")]
7650        pub killer_pos: ::core::option::Option<Position>,
7651        #[prost(uint32, optional, tag = "12")]
7652        pub death_duration_s: ::core::option::Option<u32>,
7653    }
7654    #[derive(serde::Serialize, serde::Deserialize)]
7655    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7656    pub struct Items {
7657        #[prost(uint32, optional, tag = "1")]
7658        pub game_time_s: ::core::option::Option<u32>,
7659        #[prost(uint32, optional, tag = "2")]
7660        pub item_id: ::core::option::Option<u32>,
7661        #[prost(uint32, optional, tag = "3")]
7662        pub upgrade_id: ::core::option::Option<u32>,
7663        #[prost(uint32, optional, tag = "4")]
7664        pub sold_time_s: ::core::option::Option<u32>,
7665        #[prost(uint32, optional, tag = "5")]
7666        pub flags: ::core::option::Option<u32>,
7667        #[prost(uint32, optional, tag = "6")]
7668        pub imbued_ability_id: ::core::option::Option<u32>,
7669        #[prost(uint32, optional, tag = "7")]
7670        pub upgrade_info: ::core::option::Option<u32>,
7671    }
7672    #[derive(serde::Serialize, serde::Deserialize)]
7673    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7674    pub struct Ping {
7675        #[prost(uint32, optional, tag = "1")]
7676        pub ping_type: ::core::option::Option<u32>,
7677        #[prost(uint32, optional, tag = "2")]
7678        pub ping_data: ::core::option::Option<u32>,
7679        #[prost(uint32, optional, tag = "3")]
7680        pub game_time_s: ::core::option::Option<u32>,
7681    }
7682    #[derive(serde::Serialize, serde::Deserialize)]
7683    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7684    pub struct GoldSource {
7685        #[prost(enumeration = "EGoldSource", optional, tag = "1", default = "KEPlayers")]
7686        pub source: ::core::option::Option<i32>,
7687        #[prost(uint32, optional, tag = "2")]
7688        pub kills: ::core::option::Option<u32>,
7689        #[prost(uint32, optional, tag = "3")]
7690        pub damage: ::core::option::Option<u32>,
7691        #[prost(uint32, optional, tag = "4")]
7692        pub gold: ::core::option::Option<u32>,
7693        #[prost(uint32, optional, tag = "5")]
7694        pub gold_orbs: ::core::option::Option<u32>,
7695    }
7696    #[derive(serde::Serialize, serde::Deserialize)]
7697    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7698    pub struct CustomUserStatInfo {
7699        #[prost(string, optional, tag = "1")]
7700        pub name: ::core::option::Option<::prost::alloc::string::String>,
7701        #[prost(uint32, optional, tag = "2")]
7702        pub id: ::core::option::Option<u32>,
7703    }
7704    #[derive(serde::Serialize, serde::Deserialize)]
7705    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7706    pub struct CustomUserStat {
7707        #[prost(uint32, optional, tag = "2")]
7708        pub value: ::core::option::Option<u32>,
7709        #[prost(uint32, optional, tag = "3")]
7710        pub id: ::core::option::Option<u32>,
7711    }
7712    #[derive(serde::Serialize, serde::Deserialize)]
7713    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7714    pub struct PowerUpBuff {
7715        #[prost(string, optional, tag = "1")]
7716        pub r#type: ::core::option::Option<::prost::alloc::string::String>,
7717        #[prost(uint32, optional, tag = "2")]
7718        pub value: ::core::option::Option<u32>,
7719        #[prost(bool, optional, tag = "3")]
7720        pub is_permanent: ::core::option::Option<bool>,
7721    }
7722    #[derive(serde::Serialize, serde::Deserialize)]
7723    #[derive(Clone, PartialEq, ::prost::Message)]
7724    pub struct PlayerStats {
7725        #[prost(uint32, optional, tag = "1")]
7726        pub time_stamp_s: ::core::option::Option<u32>,
7727        #[prost(uint32, optional, tag = "2")]
7728        pub net_worth: ::core::option::Option<u32>,
7729        #[prost(uint32, optional, tag = "3")]
7730        pub gold_player: ::core::option::Option<u32>,
7731        #[prost(uint32, optional, tag = "4")]
7732        pub gold_player_orbs: ::core::option::Option<u32>,
7733        #[prost(uint32, optional, tag = "5")]
7734        pub gold_lane_creep_orbs: ::core::option::Option<u32>,
7735        #[prost(uint32, optional, tag = "6")]
7736        pub gold_neutral_creep_orbs: ::core::option::Option<u32>,
7737        #[prost(uint32, optional, tag = "7")]
7738        pub gold_boss: ::core::option::Option<u32>,
7739        #[prost(uint32, optional, tag = "8")]
7740        pub gold_boss_orb: ::core::option::Option<u32>,
7741        #[prost(uint32, optional, tag = "9")]
7742        pub gold_treasure: ::core::option::Option<u32>,
7743        #[prost(uint32, optional, tag = "10")]
7744        pub gold_denied: ::core::option::Option<u32>,
7745        #[prost(uint32, optional, tag = "11")]
7746        pub gold_death_loss: ::core::option::Option<u32>,
7747        #[prost(uint32, optional, tag = "12")]
7748        pub gold_lane_creep: ::core::option::Option<u32>,
7749        #[prost(uint32, optional, tag = "13")]
7750        pub gold_neutral_creep: ::core::option::Option<u32>,
7751        #[prost(uint32, optional, tag = "14")]
7752        pub kills: ::core::option::Option<u32>,
7753        #[prost(uint32, optional, tag = "15")]
7754        pub deaths: ::core::option::Option<u32>,
7755        #[prost(uint32, optional, tag = "16")]
7756        pub assists: ::core::option::Option<u32>,
7757        #[prost(uint32, optional, tag = "17")]
7758        pub creep_kills: ::core::option::Option<u32>,
7759        #[prost(uint32, optional, tag = "18")]
7760        pub neutral_kills: ::core::option::Option<u32>,
7761        #[prost(uint32, optional, tag = "19")]
7762        pub possible_creeps: ::core::option::Option<u32>,
7763        #[prost(uint32, optional, tag = "20")]
7764        pub creep_damage: ::core::option::Option<u32>,
7765        #[prost(uint32, optional, tag = "21")]
7766        pub player_damage: ::core::option::Option<u32>,
7767        #[prost(uint32, optional, tag = "22")]
7768        pub neutral_damage: ::core::option::Option<u32>,
7769        #[prost(uint32, optional, tag = "23")]
7770        pub boss_damage: ::core::option::Option<u32>,
7771        #[prost(uint32, optional, tag = "24")]
7772        pub denies: ::core::option::Option<u32>,
7773        #[prost(uint32, optional, tag = "25")]
7774        pub player_healing: ::core::option::Option<u32>,
7775        #[prost(uint32, optional, tag = "26")]
7776        pub ability_points: ::core::option::Option<u32>,
7777        #[prost(uint32, optional, tag = "27")]
7778        pub self_healing: ::core::option::Option<u32>,
7779        #[prost(uint32, optional, tag = "28")]
7780        pub player_damage_taken: ::core::option::Option<u32>,
7781        #[prost(uint32, optional, tag = "29")]
7782        pub max_health: ::core::option::Option<u32>,
7783        #[prost(uint32, optional, tag = "30")]
7784        pub weapon_power: ::core::option::Option<u32>,
7785        #[prost(uint32, optional, tag = "31")]
7786        pub tech_power: ::core::option::Option<u32>,
7787        #[prost(uint32, optional, tag = "32")]
7788        pub shots_hit: ::core::option::Option<u32>,
7789        #[prost(uint32, optional, tag = "33")]
7790        pub shots_missed: ::core::option::Option<u32>,
7791        #[prost(uint32, optional, tag = "34")]
7792        pub damage_absorbed: ::core::option::Option<u32>,
7793        #[prost(uint32, optional, tag = "35")]
7794        pub absorption_provided: ::core::option::Option<u32>,
7795        #[prost(uint32, optional, tag = "36")]
7796        pub hero_bullets_hit: ::core::option::Option<u32>,
7797        #[prost(uint32, optional, tag = "37")]
7798        pub hero_bullets_hit_crit: ::core::option::Option<u32>,
7799        #[prost(uint32, optional, tag = "38")]
7800        pub heal_prevented: ::core::option::Option<u32>,
7801        #[prost(uint32, optional, tag = "39")]
7802        pub heal_lost: ::core::option::Option<u32>,
7803        #[prost(message, repeated, tag = "40")]
7804        pub gold_sources: ::prost::alloc::vec::Vec<GoldSource>,
7805        #[prost(message, repeated, tag = "41")]
7806        pub custom_user_stats: ::prost::alloc::vec::Vec<CustomUserStat>,
7807        #[prost(uint32, optional, tag = "42")]
7808        pub damage_mitigated: ::core::option::Option<u32>,
7809        #[prost(uint32, optional, tag = "43")]
7810        pub level: ::core::option::Option<u32>,
7811        #[prost(uint32, optional, tag = "44")]
7812        pub player_barriering: ::core::option::Option<u32>,
7813        #[prost(uint32, optional, tag = "45")]
7814        pub teammate_healing: ::core::option::Option<u32>,
7815        #[prost(uint32, optional, tag = "46")]
7816        pub teammate_barriering: ::core::option::Option<u32>,
7817        #[prost(uint32, optional, tag = "47")]
7818        pub self_damage: ::core::option::Option<u32>,
7819        #[prost(uint32, optional, tag = "48")]
7820        pub bullet_kills: ::core::option::Option<u32>,
7821        #[prost(uint32, optional, tag = "49")]
7822        pub melee_kills: ::core::option::Option<u32>,
7823        #[prost(uint32, optional, tag = "50")]
7824        pub ability_kills: ::core::option::Option<u32>,
7825        #[prost(uint32, optional, tag = "51")]
7826        pub headshot_kills: ::core::option::Option<u32>,
7827    }
7828    #[derive(serde::Serialize, serde::Deserialize)]
7829    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7830    pub struct AbilityStat {
7831        #[prost(uint32, optional, tag = "1")]
7832        pub ability_id: ::core::option::Option<u32>,
7833        #[prost(uint32, optional, tag = "2")]
7834        pub ability_value: ::core::option::Option<u32>,
7835    }
7836    #[derive(serde::Serialize, serde::Deserialize)]
7837    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7838    pub struct BookReward {
7839        #[prost(uint32, optional, tag = "1")]
7840        pub book_id: ::core::option::Option<u32>,
7841        #[prost(uint32, optional, tag = "2")]
7842        pub xp_amount: ::core::option::Option<u32>,
7843        #[prost(uint32, optional, tag = "3")]
7844        pub starting_xp: ::core::option::Option<u32>,
7845    }
7846    #[derive(serde::Serialize, serde::Deserialize)]
7847    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7848    pub struct PlayerAccolade {
7849        #[prost(uint32, optional, tag = "1")]
7850        pub accolade_id: ::core::option::Option<u32>,
7851        #[prost(int32, optional, tag = "2")]
7852        pub accolade_stat_value: ::core::option::Option<i32>,
7853        #[prost(int32, optional, tag = "3")]
7854        pub accolade_threshold_achieved: ::core::option::Option<i32>,
7855    }
7856    #[derive(serde::Serialize, serde::Deserialize)]
7857    #[derive(Clone, PartialEq, ::prost::Message)]
7858    pub struct Players {
7859        #[prost(uint32, optional, tag = "1")]
7860        pub account_id: ::core::option::Option<u32>,
7861        #[prost(uint32, optional, tag = "2")]
7862        pub player_slot: ::core::option::Option<u32>,
7863        #[prost(message, repeated, tag = "3")]
7864        pub death_details: ::prost::alloc::vec::Vec<Deaths>,
7865        #[prost(message, repeated, tag = "4")]
7866        pub items: ::prost::alloc::vec::Vec<Items>,
7867        #[prost(message, repeated, tag = "5")]
7868        pub stats: ::prost::alloc::vec::Vec<PlayerStats>,
7869        #[prost(
7870            enumeration = "super::ECitadelLobbyTeam",
7871            optional,
7872            tag = "6",
7873            default = "KECitadelLobbyTeamTeam0"
7874        )]
7875        pub team: ::core::option::Option<i32>,
7876        #[prost(uint32, optional, tag = "8")]
7877        pub kills: ::core::option::Option<u32>,
7878        #[prost(uint32, optional, tag = "9")]
7879        pub deaths: ::core::option::Option<u32>,
7880        #[prost(uint32, optional, tag = "10")]
7881        pub assists: ::core::option::Option<u32>,
7882        #[prost(uint32, optional, tag = "11")]
7883        pub net_worth: ::core::option::Option<u32>,
7884        #[prost(uint32, optional, tag = "12")]
7885        pub hero_id: ::core::option::Option<u32>,
7886        #[prost(uint32, optional, tag = "13")]
7887        pub last_hits: ::core::option::Option<u32>,
7888        #[prost(uint32, optional, tag = "14")]
7889        pub denies: ::core::option::Option<u32>,
7890        #[prost(uint32, optional, tag = "15")]
7891        pub ability_points: ::core::option::Option<u32>,
7892        #[prost(uint32, optional, tag = "17")]
7893        pub assigned_lane: ::core::option::Option<u32>,
7894        #[prost(uint32, optional, tag = "18")]
7895        pub level: ::core::option::Option<u32>,
7896        #[prost(message, repeated, tag = "19")]
7897        pub pings: ::prost::alloc::vec::Vec<Ping>,
7898        #[prost(message, repeated, tag = "20")]
7899        pub ability_stats: ::prost::alloc::vec::Vec<AbilityStat>,
7900        #[prost(float, repeated, tag = "21")]
7901        pub stats_type_stat: ::prost::alloc::vec::Vec<f32>,
7902        #[prost(message, repeated, tag = "22")]
7903        pub book_rewards: ::prost::alloc::vec::Vec<BookReward>,
7904        #[prost(uint32, optional, tag = "23")]
7905        pub abandon_match_time_s: ::core::option::Option<u32>,
7906        #[prost(message, optional, tag = "25")]
7907        pub hero_data: ::core::option::Option<super::CMsgPlayerHeroData>,
7908        #[prost(bool, optional, tag = "26")]
7909        pub rewards_eligible: ::core::option::Option<bool>,
7910        #[prost(message, repeated, tag = "48")]
7911        pub player_tracked_stats: ::prost::alloc::vec::Vec<super::CMsgTrackedStat>,
7912        #[prost(message, repeated, tag = "27")]
7913        pub accolades: ::prost::alloc::vec::Vec<PlayerAccolade>,
7914        #[prost(uint32, optional, tag = "28")]
7915        pub mvp_rank: ::core::option::Option<u32>,
7916        #[prost(bool, optional, tag = "29")]
7917        pub earned_holiday_award_2025: ::core::option::Option<bool>,
7918        #[prost(message, repeated, tag = "30")]
7919        pub power_up_buffs: ::prost::alloc::vec::Vec<PowerUpBuff>,
7920    }
7921    #[derive(serde::Serialize, serde::Deserialize)]
7922    #[derive(Clone, PartialEq, ::prost::Message)]
7923    pub struct Teams {
7924        #[prost(
7925            enumeration = "super::ECitadelLobbyTeam",
7926            optional,
7927            tag = "1",
7928            default = "KECitadelLobbyTeamTeam0"
7929        )]
7930        pub team: ::core::option::Option<i32>,
7931        #[prost(message, repeated, tag = "2")]
7932        pub team_tracked_stats: ::prost::alloc::vec::Vec<super::CMsgTrackedStat>,
7933    }
7934    #[derive(serde::Serialize, serde::Deserialize)]
7935    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7936    pub struct Objective {
7937        #[prost(
7938            enumeration = "super::ECitadelObjective",
7939            optional,
7940            tag = "1",
7941            default = "KECitadelObjectiveTeam0Core"
7942        )]
7943        pub legacy_objective_id: ::core::option::Option<i32>,
7944        #[prost(uint32, optional, tag = "2")]
7945        pub destroyed_time_s: ::core::option::Option<u32>,
7946        #[prost(uint32, optional, tag = "4")]
7947        pub creep_damage: ::core::option::Option<u32>,
7948        #[prost(uint32, optional, tag = "5")]
7949        pub creep_damage_mitigated: ::core::option::Option<u32>,
7950        #[prost(uint32, optional, tag = "6")]
7951        pub player_damage: ::core::option::Option<u32>,
7952        #[prost(uint32, optional, tag = "7")]
7953        pub player_damage_mitigated: ::core::option::Option<u32>,
7954        #[prost(uint32, optional, tag = "8")]
7955        pub first_damage_time_s: ::core::option::Option<u32>,
7956        #[prost(
7957            enumeration = "super::ECitadelTeamObjective",
7958            optional,
7959            tag = "9",
7960            default = "KECitadelTeamObjectiveCore"
7961        )]
7962        pub team_objective_id: ::core::option::Option<i32>,
7963        #[prost(
7964            enumeration = "super::ECitadelLobbyTeam",
7965            optional,
7966            tag = "10",
7967            default = "KECitadelLobbyTeamTeam0"
7968        )]
7969        pub team: ::core::option::Option<i32>,
7970        #[prost(uint32, optional, tag = "11")]
7971        pub player_spirit_damage: ::core::option::Option<u32>,
7972    }
7973    #[derive(serde::Serialize, serde::Deserialize)]
7974    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7975    pub struct MidBoss {
7976        #[prost(
7977            enumeration = "super::ECitadelLobbyTeam",
7978            optional,
7979            tag = "1",
7980            default = "KECitadelLobbyTeamTeam0"
7981        )]
7982        pub team_killed: ::core::option::Option<i32>,
7983        #[prost(
7984            enumeration = "super::ECitadelLobbyTeam",
7985            optional,
7986            tag = "2",
7987            default = "KECitadelLobbyTeamTeam0"
7988        )]
7989        pub team_claimed: ::core::option::Option<i32>,
7990        #[prost(uint32, optional, tag = "3")]
7991        pub destroyed_time_s: ::core::option::Option<u32>,
7992    }
7993    #[derive(serde::Serialize, serde::Deserialize)]
7994    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7995    pub struct Pause {
7996        #[prost(uint32, optional, tag = "1")]
7997        pub game_time_s: ::core::option::Option<u32>,
7998        #[prost(uint32, optional, tag = "2")]
7999        pub pause_duration_s: ::core::option::Option<u32>,
8000        #[prost(uint32, optional, tag = "3")]
8001        pub player_slot: ::core::option::Option<u32>,
8002    }
8003    #[derive(serde::Serialize, serde::Deserialize)]
8004    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
8005    pub struct WatchedDeathReplay {
8006        #[prost(uint32, optional, tag = "1")]
8007        pub game_time_s: ::core::option::Option<u32>,
8008        #[prost(uint32, optional, tag = "2")]
8009        pub player_slot: ::core::option::Option<u32>,
8010    }
8011    #[derive(serde::Serialize, serde::Deserialize)]
8012    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
8013    pub struct StreetBrawlRound {
8014        #[prost(uint32, optional, tag = "1")]
8015        pub round_duration_s: ::core::option::Option<u32>,
8016        #[prost(
8017            enumeration = "super::ECitadelLobbyTeam",
8018            optional,
8019            tag = "2",
8020            default = "KECitadelLobbyTeamTeam0"
8021        )]
8022        pub winning_team: ::core::option::Option<i32>,
8023    }
8024    #[derive(serde::Serialize, serde::Deserialize)]
8025    #[derive(Clone, PartialEq, ::prost::Message)]
8026    pub struct MatchInfo {
8027        #[prost(uint32, optional, tag = "1")]
8028        pub duration_s: ::core::option::Option<u32>,
8029        #[prost(
8030            enumeration = "EMatchOutcome",
8031            optional,
8032            tag = "2",
8033            default = "KEOutcomeTeamWin"
8034        )]
8035        pub match_outcome: ::core::option::Option<i32>,
8036        #[prost(
8037            enumeration = "super::ECitadelLobbyTeam",
8038            optional,
8039            tag = "3",
8040            default = "KECitadelLobbyTeamTeam0"
8041        )]
8042        pub winning_team: ::core::option::Option<i32>,
8043        #[prost(message, repeated, tag = "4")]
8044        pub players: ::prost::alloc::vec::Vec<Players>,
8045        #[prost(uint32, optional, tag = "5")]
8046        pub start_time: ::core::option::Option<u32>,
8047        #[prost(uint64, optional, tag = "6")]
8048        pub match_id: ::core::option::Option<u64>,
8049        #[prost(uint32, optional, tag = "8")]
8050        pub legacy_objectives_mask: ::core::option::Option<u32>,
8051        #[prost(
8052            enumeration = "super::ECitadelGameMode",
8053            optional,
8054            tag = "9",
8055            default = "KECitadelGameModeInvalid"
8056        )]
8057        pub game_mode: ::core::option::Option<i32>,
8058        #[prost(
8059            enumeration = "super::ECitadelMatchMode",
8060            optional,
8061            tag = "10",
8062            default = "KECitadelMatchModeInvalid"
8063        )]
8064        pub match_mode: ::core::option::Option<i32>,
8065        #[prost(message, repeated, tag = "11")]
8066        pub objectives: ::prost::alloc::vec::Vec<Objective>,
8067        #[prost(message, optional, tag = "12")]
8068        pub match_paths: ::core::option::Option<super::CMsgMatchPlayerPathsData>,
8069        #[prost(message, optional, tag = "13")]
8070        pub damage_matrix: ::core::option::Option<super::CMsgMatchPlayerDamageMatrix>,
8071        #[prost(message, repeated, tag = "14")]
8072        pub match_pauses: ::prost::alloc::vec::Vec<Pause>,
8073        #[prost(message, repeated, tag = "15")]
8074        pub custom_user_stats: ::prost::alloc::vec::Vec<CustomUserStatInfo>,
8075        #[prost(message, repeated, tag = "16")]
8076        pub watched_death_replays: ::prost::alloc::vec::Vec<WatchedDeathReplay>,
8077        #[prost(uint64, optional, tag = "17")]
8078        pub objectives_mask_team0: ::core::option::Option<u64>,
8079        #[prost(uint64, optional, tag = "18")]
8080        pub objectives_mask_team1: ::core::option::Option<u64>,
8081        #[prost(message, repeated, tag = "19")]
8082        pub mid_boss: ::prost::alloc::vec::Vec<MidBoss>,
8083        #[prost(bool, optional, tag = "20")]
8084        pub is_high_skill_range_parties: ::core::option::Option<bool>,
8085        #[prost(bool, optional, tag = "21")]
8086        pub low_pri_pool: ::core::option::Option<bool>,
8087        #[prost(bool, optional, tag = "22")]
8088        pub new_player_pool: ::core::option::Option<bool>,
8089        #[prost(uint32, optional, tag = "23")]
8090        pub average_badge_team0: ::core::option::Option<u32>,
8091        #[prost(uint32, optional, tag = "24")]
8092        pub average_badge_team1: ::core::option::Option<u32>,
8093        #[prost(uint32, optional, tag = "25")]
8094        pub game_mode_version: ::core::option::Option<u32>,
8095        #[prost(bool, optional, tag = "26")]
8096        pub rewards_eligible: ::core::option::Option<bool>,
8097        #[prost(bool, optional, tag = "27")]
8098        pub not_scored: ::core::option::Option<bool>,
8099        #[prost(uint32, repeated, packed = "false", tag = "28")]
8100        pub team_score: ::prost::alloc::vec::Vec<u32>,
8101        #[prost(message, repeated, tag = "29")]
8102        pub match_tracked_stats: ::prost::alloc::vec::Vec<super::CMsgTrackedStat>,
8103        #[prost(message, repeated, tag = "30")]
8104        pub teams: ::prost::alloc::vec::Vec<Teams>,
8105        #[prost(
8106            enumeration = "super::ECitadelBotDifficulty",
8107            optional,
8108            tag = "32",
8109            default = "KECitadelBotDifficultyNone"
8110        )]
8111        pub bot_difficulty: ::core::option::Option<i32>,
8112        #[prost(message, repeated, tag = "33")]
8113        pub street_brawl_rounds: ::prost::alloc::vec::Vec<StreetBrawlRound>,
8114    }
8115    #[derive(serde::Serialize, serde::Deserialize)]
8116    #[derive(
8117        Clone,
8118        Copy,
8119        Debug,
8120        PartialEq,
8121        Eq,
8122        Hash,
8123        PartialOrd,
8124        Ord,
8125        ::prost::Enumeration
8126    )]
8127    #[repr(i32)]
8128    pub enum EMatchOutcome {
8129        KEOutcomeTeamWin = 0,
8130        KEOutcomeError = 1,
8131        KEOutcomeMatchDraw = 2,
8132    }
8133    impl EMatchOutcome {
8134        /// String value of the enum field names used in the ProtoBuf definition.
8135        ///
8136        /// The values are not transformed in any way and thus are considered stable
8137        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8138        pub fn as_str_name(&self) -> &'static str {
8139            match self {
8140                Self::KEOutcomeTeamWin => "k_eOutcome_TeamWin",
8141                Self::KEOutcomeError => "k_eOutcome_Error",
8142                Self::KEOutcomeMatchDraw => "k_eOutcome_MatchDraw",
8143            }
8144        }
8145        /// Creates an enum from field names used in the ProtoBuf definition.
8146        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8147            match value {
8148                "k_eOutcome_TeamWin" => Some(Self::KEOutcomeTeamWin),
8149                "k_eOutcome_Error" => Some(Self::KEOutcomeError),
8150                "k_eOutcome_MatchDraw" => Some(Self::KEOutcomeMatchDraw),
8151                _ => None,
8152            }
8153        }
8154    }
8155    #[derive(serde::Serialize, serde::Deserialize)]
8156    #[derive(
8157        Clone,
8158        Copy,
8159        Debug,
8160        PartialEq,
8161        Eq,
8162        Hash,
8163        PartialOrd,
8164        Ord,
8165        ::prost::Enumeration
8166    )]
8167    #[repr(i32)]
8168    pub enum EGoldSource {
8169        KEPlayers = 1,
8170        KELaneCreeps = 2,
8171        KENeutrals = 3,
8172        KEBosses = 4,
8173        KETreasure = 5,
8174        KEAssists = 6,
8175        KEDenies = 7,
8176        KETeamBonus = 8,
8177        KEAbilityAssassinate = 9,
8178        KEItemTrophyCollector = 10,
8179        KEItemCultistSacrifice = 11,
8180        KEBreakable = 12,
8181        KEItemGooseEgg = 13,
8182    }
8183    impl EGoldSource {
8184        /// String value of the enum field names used in the ProtoBuf definition.
8185        ///
8186        /// The values are not transformed in any way and thus are considered stable
8187        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8188        pub fn as_str_name(&self) -> &'static str {
8189            match self {
8190                Self::KEPlayers => "k_ePlayers",
8191                Self::KELaneCreeps => "k_eLaneCreeps",
8192                Self::KENeutrals => "k_eNeutrals",
8193                Self::KEBosses => "k_eBosses",
8194                Self::KETreasure => "k_eTreasure",
8195                Self::KEAssists => "k_eAssists",
8196                Self::KEDenies => "k_eDenies",
8197                Self::KETeamBonus => "k_eTeamBonus",
8198                Self::KEAbilityAssassinate => "k_eAbilityAssassinate",
8199                Self::KEItemTrophyCollector => "k_eItemTrophyCollector",
8200                Self::KEItemCultistSacrifice => "k_eItemCultistSacrifice",
8201                Self::KEBreakable => "k_eBreakable",
8202                Self::KEItemGooseEgg => "k_eItemGooseEgg",
8203            }
8204        }
8205        /// Creates an enum from field names used in the ProtoBuf definition.
8206        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8207            match value {
8208                "k_ePlayers" => Some(Self::KEPlayers),
8209                "k_eLaneCreeps" => Some(Self::KELaneCreeps),
8210                "k_eNeutrals" => Some(Self::KENeutrals),
8211                "k_eBosses" => Some(Self::KEBosses),
8212                "k_eTreasure" => Some(Self::KETreasure),
8213                "k_eAssists" => Some(Self::KEAssists),
8214                "k_eDenies" => Some(Self::KEDenies),
8215                "k_eTeamBonus" => Some(Self::KETeamBonus),
8216                "k_eAbilityAssassinate" => Some(Self::KEAbilityAssassinate),
8217                "k_eItemTrophyCollector" => Some(Self::KEItemTrophyCollector),
8218                "k_eItemCultistSacrifice" => Some(Self::KEItemCultistSacrifice),
8219                "k_eBreakable" => Some(Self::KEBreakable),
8220                "k_eItemGooseEgg" => Some(Self::KEItemGooseEgg),
8221                _ => None,
8222            }
8223        }
8224    }
8225}
8226#[derive(serde::Serialize, serde::Deserialize)]
8227#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
8228pub struct CMsgMatchMetaData {
8229    #[prost(uint32, optional, tag = "1")]
8230    pub version: ::core::option::Option<u32>,
8231    #[prost(bytes = "vec", optional, tag = "2")]
8232    pub match_details: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
8233    #[prost(uint64, optional, tag = "3")]
8234    pub match_id: ::core::option::Option<u64>,
8235}
8236#[derive(serde::Serialize, serde::Deserialize)]
8237#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
8238pub struct CMsgMapLine {
8239    #[prost(int32, optional, tag = "1")]
8240    pub x: ::core::option::Option<i32>,
8241    #[prost(int32, optional, tag = "2")]
8242    pub y: ::core::option::Option<i32>,
8243    #[prost(bool, optional, tag = "3")]
8244    pub initial: ::core::option::Option<bool>,
8245}
8246#[derive(serde::Serialize, serde::Deserialize)]
8247#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
8248pub struct CMsgAccountHeroStats {
8249    #[prost(uint32, optional, tag = "1")]
8250    pub hero_id: ::core::option::Option<u32>,
8251    #[prost(uint32, repeated, packed = "false", tag = "2")]
8252    pub stat_id: ::prost::alloc::vec::Vec<u32>,
8253    #[prost(uint64, repeated, packed = "false", tag = "3")]
8254    pub total_value: ::prost::alloc::vec::Vec<u64>,
8255    #[prost(uint32, repeated, packed = "false", tag = "4")]
8256    pub medals_bronze: ::prost::alloc::vec::Vec<u32>,
8257    #[prost(uint32, repeated, packed = "false", tag = "5")]
8258    pub medals_silver: ::prost::alloc::vec::Vec<u32>,
8259    #[prost(uint32, repeated, packed = "false", tag = "6")]
8260    pub medals_gold: ::prost::alloc::vec::Vec<u32>,
8261}
8262#[derive(serde::Serialize, serde::Deserialize)]
8263#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
8264pub struct CMsgAccountBookStats {
8265    #[prost(uint32, optional, tag = "1")]
8266    pub book_id: ::core::option::Option<u32>,
8267    #[prost(uint32, optional, tag = "2")]
8268    pub book_xp: ::core::option::Option<u32>,
8269    #[prost(uint32, optional, tag = "3")]
8270    pub book_max_xp: ::core::option::Option<u32>,
8271}
8272#[derive(serde::Serialize, serde::Deserialize)]
8273#[derive(Clone, PartialEq, ::prost::Message)]
8274pub struct CMsgAccountStats {
8275    #[prost(uint32, optional, tag = "1")]
8276    pub account_id: ::core::option::Option<u32>,
8277    #[prost(message, repeated, tag = "2")]
8278    pub stats: ::prost::alloc::vec::Vec<CMsgAccountHeroStats>,
8279}
8280#[derive(serde::Serialize, serde::Deserialize)]
8281#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
8282pub struct CMsgTrackedStat {
8283    #[prost(uint32, optional, tag = "1")]
8284    pub tracked_stat_id: ::core::option::Option<u32>,
8285    #[prost(int32, optional, tag = "2")]
8286    pub tracked_stat_value: ::core::option::Option<i32>,
8287}
8288#[derive(serde::Serialize, serde::Deserialize)]
8289#[derive(Clone, Copy, PartialEq, ::prost::Message)]
8290pub struct CMsgGcAccountData {
8291    #[prost(uint32, optional, tag = "1")]
8292    pub account_id: ::core::option::Option<u32>,
8293    #[prost(float, optional, tag = "2")]
8294    pub cheater_report_score: ::core::option::Option<f32>,
8295}
8296#[derive(serde::Serialize, serde::Deserialize)]
8297#[derive(Clone, PartialEq, ::prost::Message)]
8298pub struct CMsgHeroBuild {
8299    #[prost(uint32, optional, tag = "1")]
8300    pub hero_build_id: ::core::option::Option<u32>,
8301    #[prost(uint32, optional, tag = "2")]
8302    pub hero_id: ::core::option::Option<u32>,
8303    #[prost(uint32, optional, tag = "3")]
8304    pub author_account_id: ::core::option::Option<u32>,
8305    #[prost(uint32, optional, tag = "4")]
8306    pub last_updated_timestamp: ::core::option::Option<u32>,
8307    #[prost(string, optional, tag = "5")]
8308    pub name: ::core::option::Option<::prost::alloc::string::String>,
8309    #[prost(string, optional, tag = "6")]
8310    pub description: ::core::option::Option<::prost::alloc::string::String>,
8311    #[prost(uint32, optional, tag = "7")]
8312    pub language: ::core::option::Option<u32>,
8313    #[prost(uint32, optional, tag = "8")]
8314    pub version: ::core::option::Option<u32>,
8315    #[prost(uint32, optional, tag = "9")]
8316    pub origin_build_id: ::core::option::Option<u32>,
8317    #[prost(message, optional, tag = "10")]
8318    pub details: ::core::option::Option<c_msg_hero_build::DetailsV0>,
8319    #[prost(uint32, repeated, packed = "false", tag = "11")]
8320    pub tags: ::prost::alloc::vec::Vec<u32>,
8321    #[prost(bool, optional, tag = "12")]
8322    pub development_build: ::core::option::Option<bool>,
8323    #[prost(uint32, optional, tag = "13")]
8324    pub publish_timestamp: ::core::option::Option<u32>,
8325}
8326/// Nested message and enum types in `CMsgHeroBuild`.
8327pub mod c_msg_hero_build {
8328    #[derive(serde::Serialize, serde::Deserialize)]
8329    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
8330    pub struct BuildModEntry {
8331        #[prost(uint32, optional, tag = "1")]
8332        pub ability_id: ::core::option::Option<u32>,
8333        #[prost(string, optional, tag = "2")]
8334        pub annotation: ::core::option::Option<::prost::alloc::string::String>,
8335        #[prost(uint32, optional, tag = "3")]
8336        pub required_flex_slots: ::core::option::Option<u32>,
8337        #[prost(uint32, optional, tag = "4")]
8338        pub sell_priority: ::core::option::Option<u32>,
8339        #[prost(uint32, optional, tag = "5")]
8340        pub imbue_target_ability_id: ::core::option::Option<u32>,
8341    }
8342    #[derive(serde::Serialize, serde::Deserialize)]
8343    #[derive(Clone, PartialEq, ::prost::Message)]
8344    pub struct BuildModCategory {
8345        #[prost(message, repeated, tag = "1")]
8346        pub mods: ::prost::alloc::vec::Vec<BuildModEntry>,
8347        #[prost(string, optional, tag = "2")]
8348        pub name: ::core::option::Option<::prost::alloc::string::String>,
8349        #[prost(string, optional, tag = "3")]
8350        pub description: ::core::option::Option<::prost::alloc::string::String>,
8351        #[prost(float, optional, tag = "4")]
8352        pub width: ::core::option::Option<f32>,
8353        #[prost(float, optional, tag = "5")]
8354        pub height: ::core::option::Option<f32>,
8355        #[prost(bool, optional, tag = "6")]
8356        pub optional: ::core::option::Option<bool>,
8357    }
8358    #[derive(serde::Serialize, serde::Deserialize)]
8359    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
8360    pub struct CurrencyChange {
8361        #[prost(uint32, optional, tag = "1")]
8362        pub ability_id: ::core::option::Option<u32>,
8363        #[prost(int32, optional, tag = "2")]
8364        pub currency_type: ::core::option::Option<i32>,
8365        #[prost(int32, optional, tag = "3")]
8366        pub delta: ::core::option::Option<i32>,
8367        #[prost(string, optional, tag = "4")]
8368        pub annotation: ::core::option::Option<::prost::alloc::string::String>,
8369    }
8370    #[derive(serde::Serialize, serde::Deserialize)]
8371    #[derive(Clone, PartialEq, ::prost::Message)]
8372    pub struct AbilityOrder {
8373        #[prost(message, repeated, tag = "1")]
8374        pub currency_changes: ::prost::alloc::vec::Vec<CurrencyChange>,
8375    }
8376    #[derive(serde::Serialize, serde::Deserialize)]
8377    #[derive(Clone, PartialEq, ::prost::Message)]
8378    pub struct DetailsV0 {
8379        #[prost(message, repeated, tag = "1")]
8380        pub mod_categories: ::prost::alloc::vec::Vec<BuildModCategory>,
8381        #[prost(message, optional, tag = "2")]
8382        pub ability_order: ::core::option::Option<AbilityOrder>,
8383    }
8384}
8385#[derive(serde::Serialize, serde::Deserialize)]
8386#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
8387pub struct CMsgHeroBuildPreference {
8388    #[prost(bool, optional, tag = "1")]
8389    pub favorited: ::core::option::Option<bool>,
8390    #[prost(bool, optional, tag = "2")]
8391    pub ignored: ::core::option::Option<bool>,
8392    #[prost(bool, optional, tag = "3")]
8393    pub reported: ::core::option::Option<bool>,
8394}
8395#[derive(serde::Serialize, serde::Deserialize)]
8396#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
8397pub struct CMsgHeroReleaseVoteTally {
8398    #[prost(uint32, optional, tag = "1")]
8399    pub remaining_votes: ::core::option::Option<u32>,
8400    #[prost(uint32, repeated, tag = "2")]
8401    pub votes_cast: ::prost::alloc::vec::Vec<u32>,
8402    #[prost(uint32, optional, tag = "3")]
8403    pub daily_reward_time_stamp: ::core::option::Option<u32>,
8404}
8405#[derive(serde::Serialize, serde::Deserialize)]
8406#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8407#[repr(i32)]
8408pub enum CMsgLaneColor {
8409    KELaneColorInvalid = 0,
8410    KELaneColorYellow = 1,
8411    KELaneColorGreen = 3,
8412    KELaneColorBlue = 4,
8413    KELaneColorPurple = 6,
8414}
8415impl CMsgLaneColor {
8416    /// String value of the enum field names used in the ProtoBuf definition.
8417    ///
8418    /// The values are not transformed in any way and thus are considered stable
8419    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8420    pub fn as_str_name(&self) -> &'static str {
8421        match self {
8422            Self::KELaneColorInvalid => "k_ELaneColor_Invalid",
8423            Self::KELaneColorYellow => "k_ELaneColor_Yellow",
8424            Self::KELaneColorGreen => "k_ELaneColor_Green",
8425            Self::KELaneColorBlue => "k_ELaneColor_Blue",
8426            Self::KELaneColorPurple => "k_ELaneColor_Purple",
8427        }
8428    }
8429    /// Creates an enum from field names used in the ProtoBuf definition.
8430    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8431        match value {
8432            "k_ELaneColor_Invalid" => Some(Self::KELaneColorInvalid),
8433            "k_ELaneColor_Yellow" => Some(Self::KELaneColorYellow),
8434            "k_ELaneColor_Green" => Some(Self::KELaneColorGreen),
8435            "k_ELaneColor_Blue" => Some(Self::KELaneColorBlue),
8436            "k_ELaneColor_Purple" => Some(Self::KELaneColorPurple),
8437            _ => None,
8438        }
8439    }
8440}
8441#[derive(serde::Serialize, serde::Deserialize)]
8442#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8443#[repr(i32)]
8444pub enum EgcCitadelCommonMessages {
8445    KEMsgAnyToGcReportAsserts = 7000,
8446    KEMsgAnyToGcReportAssertsResponse = 7001,
8447}
8448impl EgcCitadelCommonMessages {
8449    /// String value of the enum field names used in the ProtoBuf definition.
8450    ///
8451    /// The values are not transformed in any way and thus are considered stable
8452    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8453    pub fn as_str_name(&self) -> &'static str {
8454        match self {
8455            Self::KEMsgAnyToGcReportAsserts => "k_EMsgAnyToGCReportAsserts",
8456            Self::KEMsgAnyToGcReportAssertsResponse => {
8457                "k_EMsgAnyToGCReportAssertsResponse"
8458            }
8459        }
8460    }
8461    /// Creates an enum from field names used in the ProtoBuf definition.
8462    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8463        match value {
8464            "k_EMsgAnyToGCReportAsserts" => Some(Self::KEMsgAnyToGcReportAsserts),
8465            "k_EMsgAnyToGCReportAssertsResponse" => {
8466                Some(Self::KEMsgAnyToGcReportAssertsResponse)
8467            }
8468            _ => None,
8469        }
8470    }
8471}
8472#[derive(serde::Serialize, serde::Deserialize)]
8473#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8474#[repr(i32)]
8475pub enum ECitadelMatchMode {
8476    KECitadelMatchModeInvalid = 0,
8477    KECitadelMatchModeUnranked = 1,
8478    KECitadelMatchModePrivateLobby = 2,
8479    KECitadelMatchModeCoopBot = 3,
8480    KECitadelMatchModeRanked = 4,
8481    KECitadelMatchModeServerTest = 5,
8482    KECitadelMatchModeTutorial = 6,
8483    KECitadelMatchModeHeroLabs = 7,
8484    KECitadelMatchModeCalibration = 8,
8485}
8486impl ECitadelMatchMode {
8487    /// String value of the enum field names used in the ProtoBuf definition.
8488    ///
8489    /// The values are not transformed in any way and thus are considered stable
8490    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8491    pub fn as_str_name(&self) -> &'static str {
8492        match self {
8493            Self::KECitadelMatchModeInvalid => "k_ECitadelMatchMode_Invalid",
8494            Self::KECitadelMatchModeUnranked => "k_ECitadelMatchMode_Unranked",
8495            Self::KECitadelMatchModePrivateLobby => "k_ECitadelMatchMode_PrivateLobby",
8496            Self::KECitadelMatchModeCoopBot => "k_ECitadelMatchMode_CoopBot",
8497            Self::KECitadelMatchModeRanked => "k_ECitadelMatchMode_Ranked",
8498            Self::KECitadelMatchModeServerTest => "k_ECitadelMatchMode_ServerTest",
8499            Self::KECitadelMatchModeTutorial => "k_ECitadelMatchMode_Tutorial",
8500            Self::KECitadelMatchModeHeroLabs => "k_ECitadelMatchMode_HeroLabs",
8501            Self::KECitadelMatchModeCalibration => "k_ECitadelMatchMode_Calibration",
8502        }
8503    }
8504    /// Creates an enum from field names used in the ProtoBuf definition.
8505    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8506        match value {
8507            "k_ECitadelMatchMode_Invalid" => Some(Self::KECitadelMatchModeInvalid),
8508            "k_ECitadelMatchMode_Unranked" => Some(Self::KECitadelMatchModeUnranked),
8509            "k_ECitadelMatchMode_PrivateLobby" => {
8510                Some(Self::KECitadelMatchModePrivateLobby)
8511            }
8512            "k_ECitadelMatchMode_CoopBot" => Some(Self::KECitadelMatchModeCoopBot),
8513            "k_ECitadelMatchMode_Ranked" => Some(Self::KECitadelMatchModeRanked),
8514            "k_ECitadelMatchMode_ServerTest" => Some(Self::KECitadelMatchModeServerTest),
8515            "k_ECitadelMatchMode_Tutorial" => Some(Self::KECitadelMatchModeTutorial),
8516            "k_ECitadelMatchMode_HeroLabs" => Some(Self::KECitadelMatchModeHeroLabs),
8517            "k_ECitadelMatchMode_Calibration" => {
8518                Some(Self::KECitadelMatchModeCalibration)
8519            }
8520            _ => None,
8521        }
8522    }
8523}
8524#[derive(serde::Serialize, serde::Deserialize)]
8525#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8526#[repr(i32)]
8527pub enum ECitadelLobbyTeam {
8528    KECitadelLobbyTeamTeam0 = 0,
8529    KECitadelLobbyTeamTeam1 = 1,
8530    KECitadelLobbyTeamSpectator = 16,
8531}
8532impl ECitadelLobbyTeam {
8533    /// String value of the enum field names used in the ProtoBuf definition.
8534    ///
8535    /// The values are not transformed in any way and thus are considered stable
8536    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8537    pub fn as_str_name(&self) -> &'static str {
8538        match self {
8539            Self::KECitadelLobbyTeamTeam0 => "k_ECitadelLobbyTeam_Team0",
8540            Self::KECitadelLobbyTeamTeam1 => "k_ECitadelLobbyTeam_Team1",
8541            Self::KECitadelLobbyTeamSpectator => "k_ECitadelLobbyTeam_Spectator",
8542        }
8543    }
8544    /// Creates an enum from field names used in the ProtoBuf definition.
8545    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8546        match value {
8547            "k_ECitadelLobbyTeam_Team0" => Some(Self::KECitadelLobbyTeamTeam0),
8548            "k_ECitadelLobbyTeam_Team1" => Some(Self::KECitadelLobbyTeamTeam1),
8549            "k_ECitadelLobbyTeam_Spectator" => Some(Self::KECitadelLobbyTeamSpectator),
8550            _ => None,
8551        }
8552    }
8553}
8554#[derive(serde::Serialize, serde::Deserialize)]
8555#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8556#[repr(i32)]
8557pub enum ECitadelAccountStatMedal {
8558    KENone = 0,
8559    KEBronze = 1,
8560    KESilver = 2,
8561    KEGold = 3,
8562}
8563impl ECitadelAccountStatMedal {
8564    /// String value of the enum field names used in the ProtoBuf definition.
8565    ///
8566    /// The values are not transformed in any way and thus are considered stable
8567    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8568    pub fn as_str_name(&self) -> &'static str {
8569        match self {
8570            Self::KENone => "k_eNone",
8571            Self::KEBronze => "k_eBronze",
8572            Self::KESilver => "k_eSilver",
8573            Self::KEGold => "k_eGold",
8574        }
8575    }
8576    /// Creates an enum from field names used in the ProtoBuf definition.
8577    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8578        match value {
8579            "k_eNone" => Some(Self::KENone),
8580            "k_eBronze" => Some(Self::KEBronze),
8581            "k_eSilver" => Some(Self::KESilver),
8582            "k_eGold" => Some(Self::KEGold),
8583            _ => None,
8584        }
8585    }
8586}
8587#[derive(serde::Serialize, serde::Deserialize)]
8588#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8589#[repr(i32)]
8590pub enum ECitadelMmPreference {
8591    KECitadelMmPreferenceInvalid = 0,
8592    KECitadelMmPreferenceCasual = 1,
8593    KECitadelMmPreferenceSerious = 2,
8594}
8595impl ECitadelMmPreference {
8596    /// String value of the enum field names used in the ProtoBuf definition.
8597    ///
8598    /// The values are not transformed in any way and thus are considered stable
8599    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8600    pub fn as_str_name(&self) -> &'static str {
8601        match self {
8602            Self::KECitadelMmPreferenceInvalid => "k_ECitadelMMPreference_Invalid",
8603            Self::KECitadelMmPreferenceCasual => "k_ECitadelMMPreference_Casual",
8604            Self::KECitadelMmPreferenceSerious => "k_ECitadelMMPreference_Serious",
8605        }
8606    }
8607    /// Creates an enum from field names used in the ProtoBuf definition.
8608    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8609        match value {
8610            "k_ECitadelMMPreference_Invalid" => Some(Self::KECitadelMmPreferenceInvalid),
8611            "k_ECitadelMMPreference_Casual" => Some(Self::KECitadelMmPreferenceCasual),
8612            "k_ECitadelMMPreference_Serious" => Some(Self::KECitadelMmPreferenceSerious),
8613            _ => None,
8614        }
8615    }
8616}
8617#[derive(serde::Serialize, serde::Deserialize)]
8618#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8619#[repr(i32)]
8620pub enum ECitadelObjective {
8621    KECitadelObjectiveTeam0Core = 0,
8622    KECitadelObjectiveTeam0Tier1Lane1 = 1,
8623    KECitadelObjectiveTeam0Tier1Lane2 = 2,
8624    KECitadelObjectiveTeam0Tier1Lane3 = 3,
8625    KECitadelObjectiveTeam0Tier1Lane4 = 4,
8626    KECitadelObjectiveTeam0Tier2Lane1 = 5,
8627    KECitadelObjectiveTeam0Tier2Lane2 = 6,
8628    KECitadelObjectiveTeam0Tier2Lane3 = 7,
8629    KECitadelObjectiveTeam0Tier2Lane4 = 8,
8630    KECitadelObjectiveTeam0Titan = 9,
8631    KECitadelObjectiveTeam0TitanShieldGenerator1 = 10,
8632    KECitadelObjectiveTeam0TitanShieldGenerator2 = 11,
8633    KECitadelObjectiveTeam0BarrackBossLane1 = 12,
8634    KECitadelObjectiveTeam0BarrackBossLane2 = 13,
8635    KECitadelObjectiveTeam0BarrackBossLane3 = 14,
8636    KECitadelObjectiveTeam0BarrackBossLane4 = 15,
8637    KECitadelObjectiveTeam1Core = 16,
8638    KECitadelObjectiveTeam1Tier1Lane1 = 17,
8639    KECitadelObjectiveTeam1Tier1Lane2 = 18,
8640    KECitadelObjectiveTeam1Tier1Lane3 = 19,
8641    KECitadelObjectiveTeam1Tier1Lane4 = 20,
8642    KECitadelObjectiveTeam1Tier2Lane1 = 21,
8643    KECitadelObjectiveTeam1Tier2Lane2 = 22,
8644    KECitadelObjectiveTeam1Tier2Lane3 = 23,
8645    KECitadelObjectiveTeam1Tier2Lane4 = 24,
8646    KECitadelObjectiveTeam1Titan = 25,
8647    KECitadelObjectiveTeam1TitanShieldGenerator1 = 26,
8648    KECitadelObjectiveTeam1TitanShieldGenerator2 = 27,
8649    KECitadelObjectiveTeam1BarrackBossLane1 = 28,
8650    KECitadelObjectiveTeam1BarrackBossLane2 = 29,
8651    KECitadelObjectiveTeam1BarrackBossLane3 = 30,
8652    KECitadelObjectiveTeam1BarrackBossLane4 = 31,
8653    KECitadelObjectiveNeutralMid = 32,
8654}
8655impl ECitadelObjective {
8656    /// String value of the enum field names used in the ProtoBuf definition.
8657    ///
8658    /// The values are not transformed in any way and thus are considered stable
8659    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8660    pub fn as_str_name(&self) -> &'static str {
8661        match self {
8662            Self::KECitadelObjectiveTeam0Core => "k_eCitadelObjective_Team0_Core",
8663            Self::KECitadelObjectiveTeam0Tier1Lane1 => {
8664                "k_eCitadelObjective_Team0_Tier1_Lane1"
8665            }
8666            Self::KECitadelObjectiveTeam0Tier1Lane2 => {
8667                "k_eCitadelObjective_Team0_Tier1_Lane2"
8668            }
8669            Self::KECitadelObjectiveTeam0Tier1Lane3 => {
8670                "k_eCitadelObjective_Team0_Tier1_Lane3"
8671            }
8672            Self::KECitadelObjectiveTeam0Tier1Lane4 => {
8673                "k_eCitadelObjective_Team0_Tier1_Lane4"
8674            }
8675            Self::KECitadelObjectiveTeam0Tier2Lane1 => {
8676                "k_eCitadelObjective_Team0_Tier2_Lane1"
8677            }
8678            Self::KECitadelObjectiveTeam0Tier2Lane2 => {
8679                "k_eCitadelObjective_Team0_Tier2_Lane2"
8680            }
8681            Self::KECitadelObjectiveTeam0Tier2Lane3 => {
8682                "k_eCitadelObjective_Team0_Tier2_Lane3"
8683            }
8684            Self::KECitadelObjectiveTeam0Tier2Lane4 => {
8685                "k_eCitadelObjective_Team0_Tier2_Lane4"
8686            }
8687            Self::KECitadelObjectiveTeam0Titan => "k_eCitadelObjective_Team0_Titan",
8688            Self::KECitadelObjectiveTeam0TitanShieldGenerator1 => {
8689                "k_eCitadelObjective_Team0_TitanShieldGenerator_1"
8690            }
8691            Self::KECitadelObjectiveTeam0TitanShieldGenerator2 => {
8692                "k_eCitadelObjective_Team0_TitanShieldGenerator_2"
8693            }
8694            Self::KECitadelObjectiveTeam0BarrackBossLane1 => {
8695                "k_eCitadelObjective_Team0_BarrackBoss_Lane1"
8696            }
8697            Self::KECitadelObjectiveTeam0BarrackBossLane2 => {
8698                "k_eCitadelObjective_Team0_BarrackBoss_Lane2"
8699            }
8700            Self::KECitadelObjectiveTeam0BarrackBossLane3 => {
8701                "k_eCitadelObjective_Team0_BarrackBoss_Lane3"
8702            }
8703            Self::KECitadelObjectiveTeam0BarrackBossLane4 => {
8704                "k_eCitadelObjective_Team0_BarrackBoss_Lane4"
8705            }
8706            Self::KECitadelObjectiveTeam1Core => "k_eCitadelObjective_Team1_Core",
8707            Self::KECitadelObjectiveTeam1Tier1Lane1 => {
8708                "k_eCitadelObjective_Team1_Tier1_Lane1"
8709            }
8710            Self::KECitadelObjectiveTeam1Tier1Lane2 => {
8711                "k_eCitadelObjective_Team1_Tier1_Lane2"
8712            }
8713            Self::KECitadelObjectiveTeam1Tier1Lane3 => {
8714                "k_eCitadelObjective_Team1_Tier1_Lane3"
8715            }
8716            Self::KECitadelObjectiveTeam1Tier1Lane4 => {
8717                "k_eCitadelObjective_Team1_Tier1_Lane4"
8718            }
8719            Self::KECitadelObjectiveTeam1Tier2Lane1 => {
8720                "k_eCitadelObjective_Team1_Tier2_Lane1"
8721            }
8722            Self::KECitadelObjectiveTeam1Tier2Lane2 => {
8723                "k_eCitadelObjective_Team1_Tier2_Lane2"
8724            }
8725            Self::KECitadelObjectiveTeam1Tier2Lane3 => {
8726                "k_eCitadelObjective_Team1_Tier2_Lane3"
8727            }
8728            Self::KECitadelObjectiveTeam1Tier2Lane4 => {
8729                "k_eCitadelObjective_Team1_Tier2_Lane4"
8730            }
8731            Self::KECitadelObjectiveTeam1Titan => "k_eCitadelObjective_Team1_Titan",
8732            Self::KECitadelObjectiveTeam1TitanShieldGenerator1 => {
8733                "k_eCitadelObjective_Team1_TitanShieldGenerator_1"
8734            }
8735            Self::KECitadelObjectiveTeam1TitanShieldGenerator2 => {
8736                "k_eCitadelObjective_Team1_TitanShieldGenerator_2"
8737            }
8738            Self::KECitadelObjectiveTeam1BarrackBossLane1 => {
8739                "k_eCitadelObjective_Team1_BarrackBoss_Lane1"
8740            }
8741            Self::KECitadelObjectiveTeam1BarrackBossLane2 => {
8742                "k_eCitadelObjective_Team1_BarrackBoss_Lane2"
8743            }
8744            Self::KECitadelObjectiveTeam1BarrackBossLane3 => {
8745                "k_eCitadelObjective_Team1_BarrackBoss_Lane3"
8746            }
8747            Self::KECitadelObjectiveTeam1BarrackBossLane4 => {
8748                "k_eCitadelObjective_Team1_BarrackBoss_Lane4"
8749            }
8750            Self::KECitadelObjectiveNeutralMid => "k_eCitadelObjective_Neutral_Mid",
8751        }
8752    }
8753    /// Creates an enum from field names used in the ProtoBuf definition.
8754    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8755        match value {
8756            "k_eCitadelObjective_Team0_Core" => Some(Self::KECitadelObjectiveTeam0Core),
8757            "k_eCitadelObjective_Team0_Tier1_Lane1" => {
8758                Some(Self::KECitadelObjectiveTeam0Tier1Lane1)
8759            }
8760            "k_eCitadelObjective_Team0_Tier1_Lane2" => {
8761                Some(Self::KECitadelObjectiveTeam0Tier1Lane2)
8762            }
8763            "k_eCitadelObjective_Team0_Tier1_Lane3" => {
8764                Some(Self::KECitadelObjectiveTeam0Tier1Lane3)
8765            }
8766            "k_eCitadelObjective_Team0_Tier1_Lane4" => {
8767                Some(Self::KECitadelObjectiveTeam0Tier1Lane4)
8768            }
8769            "k_eCitadelObjective_Team0_Tier2_Lane1" => {
8770                Some(Self::KECitadelObjectiveTeam0Tier2Lane1)
8771            }
8772            "k_eCitadelObjective_Team0_Tier2_Lane2" => {
8773                Some(Self::KECitadelObjectiveTeam0Tier2Lane2)
8774            }
8775            "k_eCitadelObjective_Team0_Tier2_Lane3" => {
8776                Some(Self::KECitadelObjectiveTeam0Tier2Lane3)
8777            }
8778            "k_eCitadelObjective_Team0_Tier2_Lane4" => {
8779                Some(Self::KECitadelObjectiveTeam0Tier2Lane4)
8780            }
8781            "k_eCitadelObjective_Team0_Titan" => Some(Self::KECitadelObjectiveTeam0Titan),
8782            "k_eCitadelObjective_Team0_TitanShieldGenerator_1" => {
8783                Some(Self::KECitadelObjectiveTeam0TitanShieldGenerator1)
8784            }
8785            "k_eCitadelObjective_Team0_TitanShieldGenerator_2" => {
8786                Some(Self::KECitadelObjectiveTeam0TitanShieldGenerator2)
8787            }
8788            "k_eCitadelObjective_Team0_BarrackBoss_Lane1" => {
8789                Some(Self::KECitadelObjectiveTeam0BarrackBossLane1)
8790            }
8791            "k_eCitadelObjective_Team0_BarrackBoss_Lane2" => {
8792                Some(Self::KECitadelObjectiveTeam0BarrackBossLane2)
8793            }
8794            "k_eCitadelObjective_Team0_BarrackBoss_Lane3" => {
8795                Some(Self::KECitadelObjectiveTeam0BarrackBossLane3)
8796            }
8797            "k_eCitadelObjective_Team0_BarrackBoss_Lane4" => {
8798                Some(Self::KECitadelObjectiveTeam0BarrackBossLane4)
8799            }
8800            "k_eCitadelObjective_Team1_Core" => Some(Self::KECitadelObjectiveTeam1Core),
8801            "k_eCitadelObjective_Team1_Tier1_Lane1" => {
8802                Some(Self::KECitadelObjectiveTeam1Tier1Lane1)
8803            }
8804            "k_eCitadelObjective_Team1_Tier1_Lane2" => {
8805                Some(Self::KECitadelObjectiveTeam1Tier1Lane2)
8806            }
8807            "k_eCitadelObjective_Team1_Tier1_Lane3" => {
8808                Some(Self::KECitadelObjectiveTeam1Tier1Lane3)
8809            }
8810            "k_eCitadelObjective_Team1_Tier1_Lane4" => {
8811                Some(Self::KECitadelObjectiveTeam1Tier1Lane4)
8812            }
8813            "k_eCitadelObjective_Team1_Tier2_Lane1" => {
8814                Some(Self::KECitadelObjectiveTeam1Tier2Lane1)
8815            }
8816            "k_eCitadelObjective_Team1_Tier2_Lane2" => {
8817                Some(Self::KECitadelObjectiveTeam1Tier2Lane2)
8818            }
8819            "k_eCitadelObjective_Team1_Tier2_Lane3" => {
8820                Some(Self::KECitadelObjectiveTeam1Tier2Lane3)
8821            }
8822            "k_eCitadelObjective_Team1_Tier2_Lane4" => {
8823                Some(Self::KECitadelObjectiveTeam1Tier2Lane4)
8824            }
8825            "k_eCitadelObjective_Team1_Titan" => Some(Self::KECitadelObjectiveTeam1Titan),
8826            "k_eCitadelObjective_Team1_TitanShieldGenerator_1" => {
8827                Some(Self::KECitadelObjectiveTeam1TitanShieldGenerator1)
8828            }
8829            "k_eCitadelObjective_Team1_TitanShieldGenerator_2" => {
8830                Some(Self::KECitadelObjectiveTeam1TitanShieldGenerator2)
8831            }
8832            "k_eCitadelObjective_Team1_BarrackBoss_Lane1" => {
8833                Some(Self::KECitadelObjectiveTeam1BarrackBossLane1)
8834            }
8835            "k_eCitadelObjective_Team1_BarrackBoss_Lane2" => {
8836                Some(Self::KECitadelObjectiveTeam1BarrackBossLane2)
8837            }
8838            "k_eCitadelObjective_Team1_BarrackBoss_Lane3" => {
8839                Some(Self::KECitadelObjectiveTeam1BarrackBossLane3)
8840            }
8841            "k_eCitadelObjective_Team1_BarrackBoss_Lane4" => {
8842                Some(Self::KECitadelObjectiveTeam1BarrackBossLane4)
8843            }
8844            "k_eCitadelObjective_Neutral_Mid" => Some(Self::KECitadelObjectiveNeutralMid),
8845            _ => None,
8846        }
8847    }
8848}
8849#[derive(serde::Serialize, serde::Deserialize)]
8850#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8851#[repr(i32)]
8852pub enum ECitadelTeamObjective {
8853    KECitadelTeamObjectiveCore = 0,
8854    KECitadelTeamObjectiveTier1Lane1 = 1,
8855    KECitadelTeamObjectiveTier1Lane2 = 2,
8856    KECitadelTeamObjectiveTier1Lane3 = 3,
8857    KECitadelTeamObjectiveTier1Lane4 = 4,
8858    KECitadelTeamObjectiveTier2Lane1 = 5,
8859    KECitadelTeamObjectiveTier2Lane2 = 6,
8860    KECitadelTeamObjectiveTier2Lane3 = 7,
8861    KECitadelTeamObjectiveTier2Lane4 = 8,
8862    KECitadelTeamObjectiveTitan = 9,
8863    KECitadelTeamObjectiveTitanShieldGenerator1 = 10,
8864    KECitadelTeamObjectiveTitanShieldGenerator2 = 11,
8865    KECitadelTeamObjectiveBarrackBossLane1 = 12,
8866    KECitadelTeamObjectiveBarrackBossLane2 = 13,
8867    KECitadelTeamObjectiveBarrackBossLane3 = 14,
8868    KECitadelTeamObjectiveBarrackBossLane4 = 15,
8869}
8870impl ECitadelTeamObjective {
8871    /// String value of the enum field names used in the ProtoBuf definition.
8872    ///
8873    /// The values are not transformed in any way and thus are considered stable
8874    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8875    pub fn as_str_name(&self) -> &'static str {
8876        match self {
8877            Self::KECitadelTeamObjectiveCore => "k_eCitadelTeamObjective_Core",
8878            Self::KECitadelTeamObjectiveTier1Lane1 => {
8879                "k_eCitadelTeamObjective_Tier1_Lane1"
8880            }
8881            Self::KECitadelTeamObjectiveTier1Lane2 => {
8882                "k_eCitadelTeamObjective_Tier1_Lane2"
8883            }
8884            Self::KECitadelTeamObjectiveTier1Lane3 => {
8885                "k_eCitadelTeamObjective_Tier1_Lane3"
8886            }
8887            Self::KECitadelTeamObjectiveTier1Lane4 => {
8888                "k_eCitadelTeamObjective_Tier1_Lane4"
8889            }
8890            Self::KECitadelTeamObjectiveTier2Lane1 => {
8891                "k_eCitadelTeamObjective_Tier2_Lane1"
8892            }
8893            Self::KECitadelTeamObjectiveTier2Lane2 => {
8894                "k_eCitadelTeamObjective_Tier2_Lane2"
8895            }
8896            Self::KECitadelTeamObjectiveTier2Lane3 => {
8897                "k_eCitadelTeamObjective_Tier2_Lane3"
8898            }
8899            Self::KECitadelTeamObjectiveTier2Lane4 => {
8900                "k_eCitadelTeamObjective_Tier2_Lane4"
8901            }
8902            Self::KECitadelTeamObjectiveTitan => "k_eCitadelTeamObjective_Titan",
8903            Self::KECitadelTeamObjectiveTitanShieldGenerator1 => {
8904                "k_eCitadelTeamObjective_TitanShieldGenerator_1"
8905            }
8906            Self::KECitadelTeamObjectiveTitanShieldGenerator2 => {
8907                "k_eCitadelTeamObjective_TitanShieldGenerator_2"
8908            }
8909            Self::KECitadelTeamObjectiveBarrackBossLane1 => {
8910                "k_eCitadelTeamObjective_BarrackBoss_Lane1"
8911            }
8912            Self::KECitadelTeamObjectiveBarrackBossLane2 => {
8913                "k_eCitadelTeamObjective_BarrackBoss_Lane2"
8914            }
8915            Self::KECitadelTeamObjectiveBarrackBossLane3 => {
8916                "k_eCitadelTeamObjective_BarrackBoss_Lane3"
8917            }
8918            Self::KECitadelTeamObjectiveBarrackBossLane4 => {
8919                "k_eCitadelTeamObjective_BarrackBoss_Lane4"
8920            }
8921        }
8922    }
8923    /// Creates an enum from field names used in the ProtoBuf definition.
8924    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8925        match value {
8926            "k_eCitadelTeamObjective_Core" => Some(Self::KECitadelTeamObjectiveCore),
8927            "k_eCitadelTeamObjective_Tier1_Lane1" => {
8928                Some(Self::KECitadelTeamObjectiveTier1Lane1)
8929            }
8930            "k_eCitadelTeamObjective_Tier1_Lane2" => {
8931                Some(Self::KECitadelTeamObjectiveTier1Lane2)
8932            }
8933            "k_eCitadelTeamObjective_Tier1_Lane3" => {
8934                Some(Self::KECitadelTeamObjectiveTier1Lane3)
8935            }
8936            "k_eCitadelTeamObjective_Tier1_Lane4" => {
8937                Some(Self::KECitadelTeamObjectiveTier1Lane4)
8938            }
8939            "k_eCitadelTeamObjective_Tier2_Lane1" => {
8940                Some(Self::KECitadelTeamObjectiveTier2Lane1)
8941            }
8942            "k_eCitadelTeamObjective_Tier2_Lane2" => {
8943                Some(Self::KECitadelTeamObjectiveTier2Lane2)
8944            }
8945            "k_eCitadelTeamObjective_Tier2_Lane3" => {
8946                Some(Self::KECitadelTeamObjectiveTier2Lane3)
8947            }
8948            "k_eCitadelTeamObjective_Tier2_Lane4" => {
8949                Some(Self::KECitadelTeamObjectiveTier2Lane4)
8950            }
8951            "k_eCitadelTeamObjective_Titan" => Some(Self::KECitadelTeamObjectiveTitan),
8952            "k_eCitadelTeamObjective_TitanShieldGenerator_1" => {
8953                Some(Self::KECitadelTeamObjectiveTitanShieldGenerator1)
8954            }
8955            "k_eCitadelTeamObjective_TitanShieldGenerator_2" => {
8956                Some(Self::KECitadelTeamObjectiveTitanShieldGenerator2)
8957            }
8958            "k_eCitadelTeamObjective_BarrackBoss_Lane1" => {
8959                Some(Self::KECitadelTeamObjectiveBarrackBossLane1)
8960            }
8961            "k_eCitadelTeamObjective_BarrackBoss_Lane2" => {
8962                Some(Self::KECitadelTeamObjectiveBarrackBossLane2)
8963            }
8964            "k_eCitadelTeamObjective_BarrackBoss_Lane3" => {
8965                Some(Self::KECitadelTeamObjectiveBarrackBossLane3)
8966            }
8967            "k_eCitadelTeamObjective_BarrackBoss_Lane4" => {
8968                Some(Self::KECitadelTeamObjectiveBarrackBossLane4)
8969            }
8970            _ => None,
8971        }
8972    }
8973}
8974#[derive(serde::Serialize, serde::Deserialize)]
8975#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8976#[repr(i32)]
8977pub enum ECitadelBotDifficulty {
8978    KECitadelBotDifficultyNone = 0,
8979    KECitadelBotDifficultyEasy = 1,
8980    KECitadelBotDifficultyMedium = 2,
8981    KECitadelBotDifficultyHard = 3,
8982    KECitadelBotDifficultyNightmare = 4,
8983    KECitadelBotDifficultyGuided = 5,
8984}
8985impl ECitadelBotDifficulty {
8986    /// String value of the enum field names used in the ProtoBuf definition.
8987    ///
8988    /// The values are not transformed in any way and thus are considered stable
8989    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8990    pub fn as_str_name(&self) -> &'static str {
8991        match self {
8992            Self::KECitadelBotDifficultyNone => "k_ECitadelBotDifficulty_None",
8993            Self::KECitadelBotDifficultyEasy => "k_ECitadelBotDifficulty_Easy",
8994            Self::KECitadelBotDifficultyMedium => "k_ECitadelBotDifficulty_Medium",
8995            Self::KECitadelBotDifficultyHard => "k_ECitadelBotDifficulty_Hard",
8996            Self::KECitadelBotDifficultyNightmare => "k_ECitadelBotDifficulty_Nightmare",
8997            Self::KECitadelBotDifficultyGuided => "k_ECitadelBotDifficulty_Guided",
8998        }
8999    }
9000    /// Creates an enum from field names used in the ProtoBuf definition.
9001    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9002        match value {
9003            "k_ECitadelBotDifficulty_None" => Some(Self::KECitadelBotDifficultyNone),
9004            "k_ECitadelBotDifficulty_Easy" => Some(Self::KECitadelBotDifficultyEasy),
9005            "k_ECitadelBotDifficulty_Medium" => Some(Self::KECitadelBotDifficultyMedium),
9006            "k_ECitadelBotDifficulty_Hard" => Some(Self::KECitadelBotDifficultyHard),
9007            "k_ECitadelBotDifficulty_Nightmare" => {
9008                Some(Self::KECitadelBotDifficultyNightmare)
9009            }
9010            "k_ECitadelBotDifficulty_Guided" => Some(Self::KECitadelBotDifficultyGuided),
9011            _ => None,
9012        }
9013    }
9014}
9015#[derive(serde::Serialize, serde::Deserialize)]
9016#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
9017#[repr(i32)]
9018pub enum ECitadelRegionMode {
9019    KECitadelRegionModeRow = 0,
9020    KECitadelRegionModeEurope = 1,
9021    KECitadelRegionModeSeAsia = 2,
9022    KECitadelRegionModeSAmerica = 3,
9023    KECitadelRegionModeRussia = 4,
9024    KECitadelRegionModeOceania = 5,
9025}
9026impl ECitadelRegionMode {
9027    /// String value of the enum field names used in the ProtoBuf definition.
9028    ///
9029    /// The values are not transformed in any way and thus are considered stable
9030    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9031    pub fn as_str_name(&self) -> &'static str {
9032        match self {
9033            Self::KECitadelRegionModeRow => "k_ECitadelRegionMode_ROW",
9034            Self::KECitadelRegionModeEurope => "k_ECitadelRegionMode_Europe",
9035            Self::KECitadelRegionModeSeAsia => "k_ECitadelRegionMode_SEAsia",
9036            Self::KECitadelRegionModeSAmerica => "k_ECitadelRegionMode_SAmerica",
9037            Self::KECitadelRegionModeRussia => "k_ECitadelRegionMode_Russia",
9038            Self::KECitadelRegionModeOceania => "k_ECitadelRegionMode_Oceania",
9039        }
9040    }
9041    /// Creates an enum from field names used in the ProtoBuf definition.
9042    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9043        match value {
9044            "k_ECitadelRegionMode_ROW" => Some(Self::KECitadelRegionModeRow),
9045            "k_ECitadelRegionMode_Europe" => Some(Self::KECitadelRegionModeEurope),
9046            "k_ECitadelRegionMode_SEAsia" => Some(Self::KECitadelRegionModeSeAsia),
9047            "k_ECitadelRegionMode_SAmerica" => Some(Self::KECitadelRegionModeSAmerica),
9048            "k_ECitadelRegionMode_Russia" => Some(Self::KECitadelRegionModeRussia),
9049            "k_ECitadelRegionMode_Oceania" => Some(Self::KECitadelRegionModeOceania),
9050            _ => None,
9051        }
9052    }
9053}
9054#[derive(serde::Serialize, serde::Deserialize)]
9055#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
9056#[repr(i32)]
9057pub enum ECitadelLeaderboardRegion {
9058    KECitadelLeaderboardRegionNone = 0,
9059    KECitadelLeaderboardRegionEurope = 1,
9060    KECitadelLeaderboardRegionAsia = 2,
9061    KECitadelLeaderboardRegionNAmerica = 3,
9062    KECitadelLeaderboardRegionSAmerica = 4,
9063    KECitadelLeaderboardRegionOceania = 5,
9064}
9065impl ECitadelLeaderboardRegion {
9066    /// String value of the enum field names used in the ProtoBuf definition.
9067    ///
9068    /// The values are not transformed in any way and thus are considered stable
9069    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9070    pub fn as_str_name(&self) -> &'static str {
9071        match self {
9072            Self::KECitadelLeaderboardRegionNone => "k_ECitadelLeaderboardRegion_None",
9073            Self::KECitadelLeaderboardRegionEurope => {
9074                "k_ECitadelLeaderboardRegion_Europe"
9075            }
9076            Self::KECitadelLeaderboardRegionAsia => "k_ECitadelLeaderboardRegion_Asia",
9077            Self::KECitadelLeaderboardRegionNAmerica => {
9078                "k_ECitadelLeaderboardRegion_NAmerica"
9079            }
9080            Self::KECitadelLeaderboardRegionSAmerica => {
9081                "k_ECitadelLeaderboardRegion_SAmerica"
9082            }
9083            Self::KECitadelLeaderboardRegionOceania => {
9084                "k_ECitadelLeaderboardRegion_Oceania"
9085            }
9086        }
9087    }
9088    /// Creates an enum from field names used in the ProtoBuf definition.
9089    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9090        match value {
9091            "k_ECitadelLeaderboardRegion_None" => {
9092                Some(Self::KECitadelLeaderboardRegionNone)
9093            }
9094            "k_ECitadelLeaderboardRegion_Europe" => {
9095                Some(Self::KECitadelLeaderboardRegionEurope)
9096            }
9097            "k_ECitadelLeaderboardRegion_Asia" => {
9098                Some(Self::KECitadelLeaderboardRegionAsia)
9099            }
9100            "k_ECitadelLeaderboardRegion_NAmerica" => {
9101                Some(Self::KECitadelLeaderboardRegionNAmerica)
9102            }
9103            "k_ECitadelLeaderboardRegion_SAmerica" => {
9104                Some(Self::KECitadelLeaderboardRegionSAmerica)
9105            }
9106            "k_ECitadelLeaderboardRegion_Oceania" => {
9107                Some(Self::KECitadelLeaderboardRegionOceania)
9108            }
9109            _ => None,
9110        }
9111    }
9112}
9113#[derive(serde::Serialize, serde::Deserialize)]
9114#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
9115#[repr(i32)]
9116pub enum ECitadelGameMode {
9117    KECitadelGameModeInvalid = 0,
9118    KECitadelGameModeNormal = 1,
9119    KECitadelGameMode1v1Test = 2,
9120    KECitadelGameModeSandbox = 3,
9121    KECitadelGameModeStreetBrawl = 4,
9122    KECitadelGameModeExploreNyc = 5,
9123    KECitadelGameModeInternal = 6,
9124}
9125impl ECitadelGameMode {
9126    /// String value of the enum field names used in the ProtoBuf definition.
9127    ///
9128    /// The values are not transformed in any way and thus are considered stable
9129    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9130    pub fn as_str_name(&self) -> &'static str {
9131        match self {
9132            Self::KECitadelGameModeInvalid => "k_ECitadelGameMode_Invalid",
9133            Self::KECitadelGameModeNormal => "k_ECitadelGameMode_Normal",
9134            Self::KECitadelGameMode1v1Test => "k_ECitadelGameMode_1v1Test",
9135            Self::KECitadelGameModeSandbox => "k_ECitadelGameMode_Sandbox",
9136            Self::KECitadelGameModeStreetBrawl => "k_ECitadelGameMode_StreetBrawl",
9137            Self::KECitadelGameModeExploreNyc => "k_ECitadelGameMode_ExploreNYC",
9138            Self::KECitadelGameModeInternal => "k_ECitadelGameMode_Internal",
9139        }
9140    }
9141    /// Creates an enum from field names used in the ProtoBuf definition.
9142    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9143        match value {
9144            "k_ECitadelGameMode_Invalid" => Some(Self::KECitadelGameModeInvalid),
9145            "k_ECitadelGameMode_Normal" => Some(Self::KECitadelGameModeNormal),
9146            "k_ECitadelGameMode_1v1Test" => Some(Self::KECitadelGameMode1v1Test),
9147            "k_ECitadelGameMode_Sandbox" => Some(Self::KECitadelGameModeSandbox),
9148            "k_ECitadelGameMode_StreetBrawl" => Some(Self::KECitadelGameModeStreetBrawl),
9149            "k_ECitadelGameMode_ExploreNYC" => Some(Self::KECitadelGameModeExploreNyc),
9150            "k_ECitadelGameMode_Internal" => Some(Self::KECitadelGameModeInternal),
9151            _ => None,
9152        }
9153    }
9154}
9155#[derive(serde::Serialize, serde::Deserialize)]
9156#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
9157#[repr(i32)]
9158pub enum ELobbyServerState {
9159    KELobbyServerStateAssign = 0,
9160    KELobbyServerStateInGame = 1,
9161    KELobbyServerStatePostMatch = 2,
9162    KELobbyServerStateSignedOut = 3,
9163    KELobbyServerStateAbandoned = 4,
9164}
9165impl ELobbyServerState {
9166    /// String value of the enum field names used in the ProtoBuf definition.
9167    ///
9168    /// The values are not transformed in any way and thus are considered stable
9169    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9170    pub fn as_str_name(&self) -> &'static str {
9171        match self {
9172            Self::KELobbyServerStateAssign => "k_eLobbyServerState_Assign",
9173            Self::KELobbyServerStateInGame => "k_eLobbyServerState_InGame",
9174            Self::KELobbyServerStatePostMatch => "k_eLobbyServerState_PostMatch",
9175            Self::KELobbyServerStateSignedOut => "k_eLobbyServerState_SignedOut",
9176            Self::KELobbyServerStateAbandoned => "k_eLobbyServerState_Abandoned",
9177        }
9178    }
9179    /// Creates an enum from field names used in the ProtoBuf definition.
9180    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9181        match value {
9182            "k_eLobbyServerState_Assign" => Some(Self::KELobbyServerStateAssign),
9183            "k_eLobbyServerState_InGame" => Some(Self::KELobbyServerStateInGame),
9184            "k_eLobbyServerState_PostMatch" => Some(Self::KELobbyServerStatePostMatch),
9185            "k_eLobbyServerState_SignedOut" => Some(Self::KELobbyServerStateSignedOut),
9186            "k_eLobbyServerState_Abandoned" => Some(Self::KELobbyServerStateAbandoned),
9187            _ => None,
9188        }
9189    }
9190}
9191#[derive(serde::Serialize, serde::Deserialize)]
9192#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
9193#[repr(i32)]
9194pub enum EBannedFeature {
9195    KEBannedFeatureInvalid = 0,
9196    KEBannedFeatureLowPriorityMatchmaking = 1,
9197    KEBannedFeatureCommsRestricted = 2,
9198    KEBannedFeatureReportingDisabled = 3,
9199}
9200impl EBannedFeature {
9201    /// String value of the enum field names used in the ProtoBuf definition.
9202    ///
9203    /// The values are not transformed in any way and thus are considered stable
9204    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9205    pub fn as_str_name(&self) -> &'static str {
9206        match self {
9207            Self::KEBannedFeatureInvalid => "k_eBannedFeature_Invalid",
9208            Self::KEBannedFeatureLowPriorityMatchmaking => {
9209                "k_eBannedFeature_LowPriorityMatchmaking"
9210            }
9211            Self::KEBannedFeatureCommsRestricted => "k_eBannedFeature_CommsRestricted",
9212            Self::KEBannedFeatureReportingDisabled => {
9213                "k_eBannedFeature_ReportingDisabled"
9214            }
9215        }
9216    }
9217    /// Creates an enum from field names used in the ProtoBuf definition.
9218    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9219        match value {
9220            "k_eBannedFeature_Invalid" => Some(Self::KEBannedFeatureInvalid),
9221            "k_eBannedFeature_LowPriorityMatchmaking" => {
9222                Some(Self::KEBannedFeatureLowPriorityMatchmaking)
9223            }
9224            "k_eBannedFeature_CommsRestricted" => {
9225                Some(Self::KEBannedFeatureCommsRestricted)
9226            }
9227            "k_eBannedFeature_ReportingDisabled" => {
9228                Some(Self::KEBannedFeatureReportingDisabled)
9229            }
9230            _ => None,
9231        }
9232    }
9233}
9234#[derive(serde::Serialize, serde::Deserialize)]
9235#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
9236#[repr(i32)]
9237pub enum EFeatureBanReason {
9238    KEFeatureBanReasonInvalid = 0,
9239    KEFeatureBanReasonDevCommand = 1,
9240    KEFeatureBanReasonReportedByOtherPlayers = 2,
9241    KEFeatureBanReasonMatchAbandons = 3,
9242    KEFeatureBanReasonTooManyReportsSubmitted = 4,
9243}
9244impl EFeatureBanReason {
9245    /// String value of the enum field names used in the ProtoBuf definition.
9246    ///
9247    /// The values are not transformed in any way and thus are considered stable
9248    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9249    pub fn as_str_name(&self) -> &'static str {
9250        match self {
9251            Self::KEFeatureBanReasonInvalid => "k_eFeatureBanReason_Invalid",
9252            Self::KEFeatureBanReasonDevCommand => "k_eFeatureBanReason_DevCommand",
9253            Self::KEFeatureBanReasonReportedByOtherPlayers => {
9254                "k_eFeatureBanReason_ReportedByOtherPlayers"
9255            }
9256            Self::KEFeatureBanReasonMatchAbandons => "k_eFeatureBanReason_MatchAbandons",
9257            Self::KEFeatureBanReasonTooManyReportsSubmitted => {
9258                "k_eFeatureBanReason_TooManyReportsSubmitted"
9259            }
9260        }
9261    }
9262    /// Creates an enum from field names used in the ProtoBuf definition.
9263    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9264        match value {
9265            "k_eFeatureBanReason_Invalid" => Some(Self::KEFeatureBanReasonInvalid),
9266            "k_eFeatureBanReason_DevCommand" => Some(Self::KEFeatureBanReasonDevCommand),
9267            "k_eFeatureBanReason_ReportedByOtherPlayers" => {
9268                Some(Self::KEFeatureBanReasonReportedByOtherPlayers)
9269            }
9270            "k_eFeatureBanReason_MatchAbandons" => {
9271                Some(Self::KEFeatureBanReasonMatchAbandons)
9272            }
9273            "k_eFeatureBanReason_TooManyReportsSubmitted" => {
9274                Some(Self::KEFeatureBanReasonTooManyReportsSubmitted)
9275            }
9276            _ => None,
9277        }
9278    }
9279}
9280#[derive(serde::Serialize, serde::Deserialize)]
9281#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9282pub struct CCitadelClientMsgPause {}
9283#[derive(serde::Serialize, serde::Deserialize)]
9284#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9285pub struct CCitadelClientMsgMapPing {
9286    #[prost(message, optional, tag = "1")]
9287    pub ping_location: ::core::option::Option<CMsgVector>,
9288    #[prost(int32, optional, tag = "2")]
9289    pub event_type: ::core::option::Option<i32>,
9290    #[prost(int32, optional, tag = "3", default = "-1")]
9291    pub entity_index: ::core::option::Option<i32>,
9292    #[prost(bool, optional, tag = "4")]
9293    pub is_aggressive_ping: ::core::option::Option<bool>,
9294    #[prost(bool, optional, tag = "5")]
9295    pub is_minimap_ping: ::core::option::Option<bool>,
9296    #[prost(bool, optional, tag = "6")]
9297    pub is_blind_ping: ::core::option::Option<bool>,
9298}
9299#[derive(serde::Serialize, serde::Deserialize)]
9300#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9301pub struct CCitadelClientMsgPingWheel {
9302    #[prost(uint32, optional, tag = "1")]
9303    pub ping_wheel_option_id: ::core::option::Option<u32>,
9304    #[prost(uint32, optional, tag = "2")]
9305    pub subnav_message_id: ::core::option::Option<u32>,
9306    #[prost(message, optional, tag = "3")]
9307    pub ping_location: ::core::option::Option<CMsgVector>,
9308    #[prost(int32, optional, tag = "4", default = "-1")]
9309    pub entity_index: ::core::option::Option<i32>,
9310}
9311#[derive(serde::Serialize, serde::Deserialize)]
9312#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9313pub struct CCitadelClientMsgAbilityPing {
9314    #[prost(int32, optional, tag = "1", default = "-1")]
9315    pub entity_index: ::core::option::Option<i32>,
9316    #[prost(uint32, optional, tag = "2")]
9317    pub pinged_ability_id: ::core::option::Option<u32>,
9318    #[prost(int32, optional, tag = "3", default = "-1")]
9319    pub pinged_player_slot: ::core::option::Option<i32>,
9320}
9321#[derive(serde::Serialize, serde::Deserialize)]
9322#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9323pub struct CCitadelClientMsgMapLine {
9324    #[prost(message, optional, tag = "1")]
9325    pub mapline: ::core::option::Option<CMsgMapLine>,
9326}
9327#[derive(serde::Serialize, serde::Deserialize)]
9328#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9329pub struct CCitadelClientMsgQuickResponse {
9330    #[prost(uint32, optional, tag = "1")]
9331    pub ping_wheel_message_id: ::core::option::Option<u32>,
9332    #[prost(uint32, optional, tag = "2")]
9333    pub responding_to_ping_message_id: ::core::option::Option<u32>,
9334    #[prost(int32, optional, tag = "3", default = "-1")]
9335    pub responding_to_player_slot: ::core::option::Option<i32>,
9336}
9337#[derive(serde::Serialize, serde::Deserialize)]
9338#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9339pub struct CCitadelClientMsgPerformanceStats {
9340    #[prost(float, optional, tag = "1")]
9341    pub current_game_time: ::core::option::Option<f32>,
9342    #[prost(float, optional, tag = "2")]
9343    pub average_fps: ::core::option::Option<f32>,
9344    #[prost(float, optional, tag = "3")]
9345    pub min_fps: ::core::option::Option<f32>,
9346    #[prost(float, optional, tag = "4")]
9347    pub max_fps: ::core::option::Option<f32>,
9348}
9349#[derive(serde::Serialize, serde::Deserialize)]
9350#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
9351pub struct CCitadelClientMsgChatMsg {
9352    #[prost(string, optional, tag = "1")]
9353    pub chat_text: ::core::option::Option<::prost::alloc::string::String>,
9354    #[prost(bool, optional, tag = "2")]
9355    pub all_chat: ::core::option::Option<bool>,
9356    #[prost(
9357        enumeration = "CMsgLaneColor",
9358        optional,
9359        tag = "3",
9360        default = "KELaneColorInvalid"
9361    )]
9362    pub lane_color: ::core::option::Option<i32>,
9363}
9364#[derive(serde::Serialize, serde::Deserialize)]
9365#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9366pub struct CCitadelClientMsgPerfReport {
9367    #[prost(float, optional, tag = "1")]
9368    pub average_frame_time: ::core::option::Option<f32>,
9369    #[prost(float, optional, tag = "2")]
9370    pub max_frame_time: ::core::option::Option<f32>,
9371    #[prost(float, optional, tag = "3")]
9372    pub average_compute_time: ::core::option::Option<f32>,
9373    #[prost(float, optional, tag = "4")]
9374    pub max_compute_time: ::core::option::Option<f32>,
9375    #[prost(float, optional, tag = "5")]
9376    pub average_client_tick_time: ::core::option::Option<f32>,
9377    #[prost(float, optional, tag = "6")]
9378    pub max_client_tick_time: ::core::option::Option<f32>,
9379    #[prost(float, optional, tag = "7")]
9380    pub average_client_simulate_time: ::core::option::Option<f32>,
9381    #[prost(float, optional, tag = "8")]
9382    pub max_client_simulate_time: ::core::option::Option<f32>,
9383    #[prost(float, optional, tag = "9")]
9384    pub average_output_time: ::core::option::Option<f32>,
9385    #[prost(float, optional, tag = "10")]
9386    pub max_output_time: ::core::option::Option<f32>,
9387    #[prost(float, optional, tag = "11")]
9388    pub average_wait_for_rendering_to_complete_time: ::core::option::Option<f32>,
9389    #[prost(float, optional, tag = "12")]
9390    pub max_wait_for_rendering_to_complete_time: ::core::option::Option<f32>,
9391    #[prost(float, optional, tag = "13")]
9392    pub average_swap_time: ::core::option::Option<f32>,
9393    #[prost(float, optional, tag = "14")]
9394    pub max_swap_time: ::core::option::Option<f32>,
9395    #[prost(float, optional, tag = "15")]
9396    pub average_frame_update_time: ::core::option::Option<f32>,
9397    #[prost(float, optional, tag = "16")]
9398    pub max_frame_update_time: ::core::option::Option<f32>,
9399    #[prost(float, optional, tag = "17")]
9400    pub average_idle_time: ::core::option::Option<f32>,
9401    #[prost(float, optional, tag = "18")]
9402    pub max_idle_time: ::core::option::Option<f32>,
9403    #[prost(float, optional, tag = "19")]
9404    pub average_input_processing_time: ::core::option::Option<f32>,
9405    #[prost(float, optional, tag = "20")]
9406    pub max_input_processing_time: ::core::option::Option<f32>,
9407}
9408#[derive(serde::Serialize, serde::Deserialize)]
9409#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
9410pub struct CCitadelClientMsgGetDamageStats {
9411    #[prost(uint32, optional, tag = "1")]
9412    pub lobby_player_slot: ::core::option::Option<u32>,
9413    #[prost(string, optional, tag = "2")]
9414    pub ability_name: ::core::option::Option<::prost::alloc::string::String>,
9415}
9416#[derive(serde::Serialize, serde::Deserialize)]
9417#[derive(Clone, PartialEq, ::prost::Message)]
9418pub struct CCitadelClientCachedPlayerStats {
9419    #[prost(uint32, optional, tag = "1")]
9420    pub version: ::core::option::Option<u32>,
9421    #[prost(message, repeated, tag = "2")]
9422    pub stats: ::prost::alloc::vec::Vec<c_citadel_client_cached_player_stats::Stat>,
9423}
9424/// Nested message and enum types in `CCitadelClientCachedPlayerStats`.
9425pub mod c_citadel_client_cached_player_stats {
9426    #[derive(serde::Serialize, serde::Deserialize)]
9427    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
9428    pub struct Stat {
9429        #[prost(string, optional, tag = "1")]
9430        pub stat_name: ::core::option::Option<::prost::alloc::string::String>,
9431        #[prost(uint64, optional, tag = "2")]
9432        pub all_time_total: ::core::option::Option<u64>,
9433        #[prost(uint32, optional, tag = "3")]
9434        pub all_time_match_max: ::core::option::Option<u32>,
9435        #[prost(uint32, optional, tag = "4")]
9436        pub all_time_life_max: ::core::option::Option<u32>,
9437    }
9438}
9439#[derive(serde::Serialize, serde::Deserialize)]
9440#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9441pub struct CCitadelClientMsgExecuteMapUnitAbility {
9442    #[prost(int32, optional, tag = "1")]
9443    pub ability_entity_index: ::core::option::Option<i32>,
9444    #[prost(int32, optional, tag = "2")]
9445    pub target_entity_index: ::core::option::Option<i32>,
9446}
9447#[derive(serde::Serialize, serde::Deserialize)]
9448#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9449pub struct CCitadelClientMsgCheaterVote {
9450    #[prost(bool, optional, tag = "1")]
9451    pub end_game_immediately: ::core::option::Option<bool>,
9452}
9453#[derive(serde::Serialize, serde::Deserialize)]
9454#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
9455pub struct CCitadelClientMsgMutePlayers {
9456    #[prost(int32, repeated, packed = "false", tag = "1")]
9457    pub player_slots: ::prost::alloc::vec::Vec<i32>,
9458    #[prost(bool, optional, tag = "2")]
9459    pub unmute: ::core::option::Option<bool>,
9460}
9461#[derive(serde::Serialize, serde::Deserialize)]
9462#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9463pub struct CCitadelClientMsgHitMismatch {
9464    #[prost(int32, optional, tag = "1", default = "-1")]
9465    pub client_hit_entity_index: ::core::option::Option<i32>,
9466    #[prost(int32, optional, tag = "2", default = "-1")]
9467    pub server_hit_entity_index: ::core::option::Option<i32>,
9468}
9469#[derive(serde::Serialize, serde::Deserialize)]
9470#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9471pub struct CCitadelClientMsgHideoutStart {}
9472#[derive(serde::Serialize, serde::Deserialize)]
9473#[derive(Clone, PartialEq, ::prost::Message)]
9474pub struct CCitadelClientMsgHeroBuild {
9475    #[prost(message, optional, tag = "1")]
9476    pub hero_build: ::core::option::Option<CMsgHeroBuild>,
9477}
9478#[derive(serde::Serialize, serde::Deserialize)]
9479#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9480pub struct CCitadelClientMsgHideoutMenuState {
9481    #[prost(
9482        enumeration = "c_citadel_client_msg_hideout_menu_state::MenuState",
9483        optional,
9484        tag = "1",
9485        default = "KENone"
9486    )]
9487    pub menu_state: ::core::option::Option<i32>,
9488}
9489/// Nested message and enum types in `CCitadelClientMsg_HideoutMenuState`.
9490pub mod c_citadel_client_msg_hideout_menu_state {
9491    #[derive(serde::Serialize, serde::Deserialize)]
9492    #[derive(
9493        Clone,
9494        Copy,
9495        Debug,
9496        PartialEq,
9497        Eq,
9498        Hash,
9499        PartialOrd,
9500        Ord,
9501        ::prost::Enumeration
9502    )]
9503    #[repr(i32)]
9504    pub enum MenuState {
9505        KENone = 0,
9506        KEEscapeMenu = 1,
9507        KEDashboard = 2,
9508    }
9509    impl MenuState {
9510        /// String value of the enum field names used in the ProtoBuf definition.
9511        ///
9512        /// The values are not transformed in any way and thus are considered stable
9513        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9514        pub fn as_str_name(&self) -> &'static str {
9515            match self {
9516                Self::KENone => "k_eNone",
9517                Self::KEEscapeMenu => "k_eEscapeMenu",
9518                Self::KEDashboard => "k_eDashboard",
9519            }
9520        }
9521        /// Creates an enum from field names used in the ProtoBuf definition.
9522        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9523            match value {
9524                "k_eNone" => Some(Self::KENone),
9525                "k_eEscapeMenu" => Some(Self::KEEscapeMenu),
9526                "k_eDashboard" => Some(Self::KEDashboard),
9527                _ => None,
9528            }
9529        }
9530    }
9531}
9532#[derive(serde::Serialize, serde::Deserialize)]
9533#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9534pub struct CCitadelClientMsgHideoutSpawn {
9535    #[prost(uint32, optional, tag = "1")]
9536    pub hero_id: ::core::option::Option<u32>,
9537    #[prost(bool, optional, tag = "2")]
9538    pub show_intro: ::core::option::Option<bool>,
9539}
9540#[derive(serde::Serialize, serde::Deserialize)]
9541#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9542pub struct CCitadelClientMsgHideoutMatchmakingState {
9543    #[prost(bool, optional, tag = "1")]
9544    pub is_matchmaking: ::core::option::Option<bool>,
9545}
9546#[derive(serde::Serialize, serde::Deserialize)]
9547#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9548pub struct CCitadelClientMsgPlayerStatsUpdated {}
9549#[derive(serde::Serialize, serde::Deserialize)]
9550#[derive(Clone, PartialEq, ::prost::Message)]
9551pub struct CCitadelClientMsgHideoutUpdateHeroReleaseVoteTally {
9552    #[prost(message, repeated, tag = "1")]
9553    pub vote_round_to_tally: ::prost::alloc::vec::Vec<
9554        c_citadel_client_msg_hideout_update_hero_release_vote_tally::VoteRoundToTallyEntry,
9555    >,
9556}
9557/// Nested message and enum types in `CCitadelClientMsg_HideoutUpdateHeroReleaseVoteTally`.
9558pub mod c_citadel_client_msg_hideout_update_hero_release_vote_tally {
9559    #[derive(serde::Serialize, serde::Deserialize)]
9560    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
9561    pub struct VoteRoundToTallyEntry {
9562        #[prost(uint32, optional, tag = "1")]
9563        pub key: ::core::option::Option<u32>,
9564        #[prost(message, optional, tag = "2")]
9565        pub value: ::core::option::Option<super::CMsgHeroReleaseVoteTally>,
9566    }
9567}
9568#[derive(serde::Serialize, serde::Deserialize)]
9569#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9570pub struct CCitadelClientMsgExecuteMapPositionAbility {
9571    #[prost(int32, optional, tag = "1")]
9572    pub ability_entity_index: ::core::option::Option<i32>,
9573    #[prost(float, optional, tag = "2")]
9574    pub pos_x: ::core::option::Option<f32>,
9575    #[prost(float, optional, tag = "3")]
9576    pub pos_y: ::core::option::Option<f32>,
9577    #[prost(float, optional, tag = "4")]
9578    pub pos_z: ::core::option::Option<f32>,
9579}
9580#[derive(serde::Serialize, serde::Deserialize)]
9581#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
9582#[repr(i32)]
9583pub enum ECitadelClientMessages {
9584    CitadelCmMapPing = 1002,
9585    CitadelCmPerformanceStats = 1003,
9586    CitadelCmPingWheel = 1004,
9587    CitadelCmChatMsg = 1005,
9588    CitadelCmPerfReport = 1006,
9589    CitadelCmQuickResponse = 1007,
9590    CitadelCmPause = 1008,
9591    CitadelCmMapLine = 1009,
9592    CitadelCmAbilityPing = 1010,
9593    CitadelCmExecuteMapUnitAbility = 1011,
9594    CitadelCmGetDamageStats = 1012,
9595    CitadelCmCheaterVote = 1013,
9596    CitadelCmMutePlayers = 1014,
9597    CitadelCmHitMismatch = 1015,
9598    CitadelCmHideoutStart = 1016,
9599    CitadelCmHeroBuild = 1017,
9600    CitadelCmHideoutMenuState = 1018,
9601    CitadelCmHideoutSpawn = 1019,
9602    CitadelCmHideoutMatchmakingState = 1020,
9603    CitadelCmPlayerStatsUpdated = 1021,
9604    CitadelCmHideoutUpdateHeroReleaseVoteTally = 1022,
9605    CitadelCmExecuteMapPositionAbility = 1023,
9606}
9607impl ECitadelClientMessages {
9608    /// String value of the enum field names used in the ProtoBuf definition.
9609    ///
9610    /// The values are not transformed in any way and thus are considered stable
9611    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9612    pub fn as_str_name(&self) -> &'static str {
9613        match self {
9614            Self::CitadelCmMapPing => "CITADEL_CM_MapPing",
9615            Self::CitadelCmPerformanceStats => "CITADEL_CM_PerformanceStats",
9616            Self::CitadelCmPingWheel => "CITADEL_CM_PingWheel",
9617            Self::CitadelCmChatMsg => "CITADEL_CM_ChatMsg",
9618            Self::CitadelCmPerfReport => "CITADEL_CM_PerfReport",
9619            Self::CitadelCmQuickResponse => "CITADEL_CM_QuickResponse",
9620            Self::CitadelCmPause => "CITADEL_CM_Pause",
9621            Self::CitadelCmMapLine => "CITADEL_CM_MapLine",
9622            Self::CitadelCmAbilityPing => "CITADEL_CM_AbilityPing",
9623            Self::CitadelCmExecuteMapUnitAbility => "CITADEL_CM_ExecuteMapUnitAbility",
9624            Self::CitadelCmGetDamageStats => "CITADEL_CM_GetDamageStats",
9625            Self::CitadelCmCheaterVote => "CITADEL_CM_CheaterVote",
9626            Self::CitadelCmMutePlayers => "CITADEL_CM_MutePlayers",
9627            Self::CitadelCmHitMismatch => "CITADEL_CM_HitMismatch",
9628            Self::CitadelCmHideoutStart => "CITADEL_CM_HideoutStart",
9629            Self::CitadelCmHeroBuild => "CITADEL_CM_HeroBuild",
9630            Self::CitadelCmHideoutMenuState => "CITADEL_CM_HideoutMenuState",
9631            Self::CitadelCmHideoutSpawn => "CITADEL_CM_HideoutSpawn",
9632            Self::CitadelCmHideoutMatchmakingState => {
9633                "CITADEL_CM_HideoutMatchmakingState"
9634            }
9635            Self::CitadelCmPlayerStatsUpdated => "CITADEL_CM_PlayerStatsUpdated",
9636            Self::CitadelCmHideoutUpdateHeroReleaseVoteTally => {
9637                "CITADEL_CM_HideoutUpdateHeroReleaseVoteTally"
9638            }
9639            Self::CitadelCmExecuteMapPositionAbility => {
9640                "CITADEL_CM_ExecuteMapPositionAbility"
9641            }
9642        }
9643    }
9644    /// Creates an enum from field names used in the ProtoBuf definition.
9645    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9646        match value {
9647            "CITADEL_CM_MapPing" => Some(Self::CitadelCmMapPing),
9648            "CITADEL_CM_PerformanceStats" => Some(Self::CitadelCmPerformanceStats),
9649            "CITADEL_CM_PingWheel" => Some(Self::CitadelCmPingWheel),
9650            "CITADEL_CM_ChatMsg" => Some(Self::CitadelCmChatMsg),
9651            "CITADEL_CM_PerfReport" => Some(Self::CitadelCmPerfReport),
9652            "CITADEL_CM_QuickResponse" => Some(Self::CitadelCmQuickResponse),
9653            "CITADEL_CM_Pause" => Some(Self::CitadelCmPause),
9654            "CITADEL_CM_MapLine" => Some(Self::CitadelCmMapLine),
9655            "CITADEL_CM_AbilityPing" => Some(Self::CitadelCmAbilityPing),
9656            "CITADEL_CM_ExecuteMapUnitAbility" => {
9657                Some(Self::CitadelCmExecuteMapUnitAbility)
9658            }
9659            "CITADEL_CM_GetDamageStats" => Some(Self::CitadelCmGetDamageStats),
9660            "CITADEL_CM_CheaterVote" => Some(Self::CitadelCmCheaterVote),
9661            "CITADEL_CM_MutePlayers" => Some(Self::CitadelCmMutePlayers),
9662            "CITADEL_CM_HitMismatch" => Some(Self::CitadelCmHitMismatch),
9663            "CITADEL_CM_HideoutStart" => Some(Self::CitadelCmHideoutStart),
9664            "CITADEL_CM_HeroBuild" => Some(Self::CitadelCmHeroBuild),
9665            "CITADEL_CM_HideoutMenuState" => Some(Self::CitadelCmHideoutMenuState),
9666            "CITADEL_CM_HideoutSpawn" => Some(Self::CitadelCmHideoutSpawn),
9667            "CITADEL_CM_HideoutMatchmakingState" => {
9668                Some(Self::CitadelCmHideoutMatchmakingState)
9669            }
9670            "CITADEL_CM_PlayerStatsUpdated" => Some(Self::CitadelCmPlayerStatsUpdated),
9671            "CITADEL_CM_HideoutUpdateHeroReleaseVoteTally" => {
9672                Some(Self::CitadelCmHideoutUpdateHeroReleaseVoteTally)
9673            }
9674            "CITADEL_CM_ExecuteMapPositionAbility" => {
9675                Some(Self::CitadelCmExecuteMapPositionAbility)
9676            }
9677            _ => None,
9678        }
9679    }
9680}
9681#[derive(serde::Serialize, serde::Deserialize)]
9682#[derive(Clone, PartialEq, ::prost::Message)]
9683pub struct CMsgFireBullets {
9684    #[prost(message, optional, tag = "1")]
9685    pub origin: ::core::option::Option<CMsgVector>,
9686    #[prost(message, optional, tag = "2")]
9687    pub angles: ::core::option::Option<CMsgQAngle>,
9688    #[prost(uint32, optional, tag = "4")]
9689    pub seed: ::core::option::Option<u32>,
9690    #[prost(int32, optional, tag = "5", default = "-1")]
9691    pub shooter_entity: ::core::option::Option<i32>,
9692    #[prost(int32, optional, tag = "7", default = "-1")]
9693    pub ability: ::core::option::Option<i32>,
9694    #[prost(float, optional, tag = "8")]
9695    pub penetration_percent: ::core::option::Option<f32>,
9696    #[prost(float, optional, tag = "9")]
9697    pub spread: ::core::option::Option<f32>,
9698    #[prost(bool, optional, tag = "10", default = "true")]
9699    pub fired_from_gun: ::core::option::Option<bool>,
9700    #[prost(uint32, optional, tag = "11")]
9701    pub bullets_override: ::core::option::Option<u32>,
9702    #[prost(message, optional, tag = "12")]
9703    pub tracer_replacement: ::core::option::Option<c_msg_fire_bullets::TracerAssignment>,
9704    #[prost(message, repeated, tag = "13")]
9705    pub tracer_additional: ::prost::alloc::vec::Vec<
9706        c_msg_fire_bullets::TracerAssignment,
9707    >,
9708    #[prost(message, optional, tag = "14")]
9709    pub angles_original: ::core::option::Option<CMsgQAngle>,
9710    #[prost(uint32, optional, tag = "15")]
9711    pub weapon_subclass_id: ::core::option::Option<u32>,
9712    #[prost(uint32, optional, tag = "16")]
9713    pub shot_number: ::core::option::Option<u32>,
9714    #[prost(int32, optional, tag = "17", default = "-1")]
9715    pub ignore_entity: ::core::option::Option<i32>,
9716    #[prost(float, optional, tag = "18")]
9717    pub max_range: ::core::option::Option<f32>,
9718    #[prost(uint32, optional, tag = "19")]
9719    pub shot_id: ::core::option::Option<u32>,
9720    #[prost(bool, optional, tag = "20", default = "true")]
9721    pub predict_hits_against_units: ::core::option::Option<bool>,
9722    #[prost(float, optional, tag = "21", default = "0")]
9723    pub bullet_radius_override: ::core::option::Option<f32>,
9724    #[prost(float, optional, tag = "22", default = "0")]
9725    pub bullet_speed_override: ::core::option::Option<f32>,
9726    #[prost(float, optional, tag = "23", default = "0")]
9727    pub bullet_gravity_override: ::core::option::Option<f32>,
9728    #[prost(int32, optional, tag = "24")]
9729    pub muzzle_number: ::core::option::Option<i32>,
9730    #[prost(bool, optional, tag = "25")]
9731    pub ability_as_bullet: ::core::option::Option<bool>,
9732}
9733/// Nested message and enum types in `CMsgFireBullets`.
9734pub mod c_msg_fire_bullets {
9735    #[derive(serde::Serialize, serde::Deserialize)]
9736    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9737    pub struct TracerAssignment {
9738        #[prost(uint64, optional, tag = "1")]
9739        pub tracer_resource_id: ::core::option::Option<u64>,
9740        #[prost(uint32, optional, tag = "2")]
9741        pub bullet_indicies: ::core::option::Option<u32>,
9742    }
9743}
9744#[derive(serde::Serialize, serde::Deserialize)]
9745#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9746pub struct CMsgBulletImpact {
9747    #[prost(message, optional, tag = "1")]
9748    pub trace_start: ::core::option::Option<CMsgVector>,
9749    #[prost(message, optional, tag = "2")]
9750    pub impact_origin: ::core::option::Option<CMsgVector>,
9751    #[prost(message, optional, tag = "3")]
9752    pub surface_normal: ::core::option::Option<CMsgVector>,
9753    #[prost(uint32, optional, tag = "4")]
9754    pub damage: ::core::option::Option<u32>,
9755    #[prost(uint32, optional, tag = "5")]
9756    pub surface_type: ::core::option::Option<u32>,
9757    #[prost(uint32, optional, tag = "7", default = "16777215")]
9758    pub ability_ehandle: ::core::option::Option<u32>,
9759    #[prost(uint32, optional, tag = "8", default = "16777215")]
9760    pub impacted_ehandle: ::core::option::Option<u32>,
9761    #[prost(uint32, optional, tag = "9")]
9762    pub impacted_bone_index: ::core::option::Option<u32>,
9763    #[prost(uint32, optional, tag = "10")]
9764    pub weapon_subclass_id: ::core::option::Option<u32>,
9765    #[prost(uint32, optional, tag = "11", default = "16777215")]
9766    pub shooter_ehandle: ::core::option::Option<u32>,
9767    #[prost(float, optional, tag = "12")]
9768    pub bullet_radius_override: ::core::option::Option<f32>,
9769}
9770#[derive(serde::Serialize, serde::Deserialize)]
9771#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9772pub struct CMsgPlayerAnimEvent {
9773    #[prost(fixed32, optional, tag = "1", default = "16777215")]
9774    pub player: ::core::option::Option<u32>,
9775    #[prost(uint32, optional, tag = "2")]
9776    pub event: ::core::option::Option<u32>,
9777    #[prost(int32, optional, tag = "3")]
9778    pub data: ::core::option::Option<i32>,
9779}
9780#[derive(serde::Serialize, serde::Deserialize)]
9781#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9782pub struct CMsgParticleSystemManager {
9783    #[prost(
9784        enumeration = "ParticleSystemManagerMessage",
9785        optional,
9786        tag = "1",
9787        default = "ParticleSystemManagerEventCreate"
9788    )]
9789    pub r#type: ::core::option::Option<i32>,
9790    #[prost(uint32, optional, tag = "2")]
9791    pub index: ::core::option::Option<u32>,
9792    #[prost(message, optional, tag = "3")]
9793    pub create_particle: ::core::option::Option<
9794        c_msg_particle_system_manager::CreateParticle,
9795    >,
9796    #[prost(message, optional, tag = "4")]
9797    pub destroy_particle: ::core::option::Option<
9798        c_msg_particle_system_manager::DestroyParticle,
9799    >,
9800    #[prost(message, optional, tag = "5")]
9801    pub destroy_particle_involving: ::core::option::Option<
9802        c_msg_particle_system_manager::DestroyParticleInvolving,
9803    >,
9804    #[prost(message, optional, tag = "6")]
9805    pub release_particle_index: ::core::option::Option<
9806        c_msg_particle_system_manager::ReleaseParticleIndex,
9807    >,
9808    #[prost(message, optional, tag = "7")]
9809    pub update_particle: ::core::option::Option<
9810        c_msg_particle_system_manager::UpdateParticle,
9811    >,
9812    #[prost(message, optional, tag = "8")]
9813    pub update_particle_fwd: ::core::option::Option<
9814        c_msg_particle_system_manager::UpdateParticleFwd,
9815    >,
9816    #[prost(message, optional, tag = "9")]
9817    pub update_particle_orient: ::core::option::Option<
9818        c_msg_particle_system_manager::UpdateParticleOrient,
9819    >,
9820    #[prost(message, optional, tag = "10")]
9821    pub update_particle_fallback: ::core::option::Option<
9822        c_msg_particle_system_manager::UpdateParticleFallback,
9823    >,
9824    #[prost(message, optional, tag = "11")]
9825    pub update_particle_offset: ::core::option::Option<
9826        c_msg_particle_system_manager::UpdateParticleOffset,
9827    >,
9828    #[prost(message, optional, tag = "12")]
9829    pub update_particle_ent: ::core::option::Option<
9830        c_msg_particle_system_manager::UpdateParticleEnt,
9831    >,
9832    #[prost(message, optional, tag = "13")]
9833    pub update_particle_frozen: ::core::option::Option<
9834        c_msg_particle_system_manager::UpdateParticleFrozen,
9835    >,
9836    #[prost(message, optional, tag = "14")]
9837    pub update_particle_should_draw: ::core::option::Option<
9838        c_msg_particle_system_manager::UpdateParticleShouldDraw,
9839    >,
9840}
9841/// Nested message and enum types in `CMsgParticleSystemManager`.
9842pub mod c_msg_particle_system_manager {
9843    #[derive(serde::Serialize, serde::Deserialize)]
9844    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
9845    pub struct CreateParticle {
9846        #[prost(fixed64, optional, tag = "1")]
9847        pub particle_name_index: ::core::option::Option<u64>,
9848        #[prost(int32, optional, tag = "2")]
9849        pub attach_type: ::core::option::Option<i32>,
9850        #[prost(uint32, optional, tag = "3", default = "16777215")]
9851        pub entity_handle: ::core::option::Option<u32>,
9852        #[prost(message, optional, tag = "4")]
9853        pub position: ::core::option::Option<super::CMsgVector>,
9854        #[prost(message, optional, tag = "5")]
9855        pub angles: ::core::option::Option<super::CMsgQAngle>,
9856    }
9857    #[derive(serde::Serialize, serde::Deserialize)]
9858    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9859    pub struct DestroyParticle {
9860        #[prost(bool, optional, tag = "1")]
9861        pub destroy_immediately: ::core::option::Option<bool>,
9862    }
9863    #[derive(serde::Serialize, serde::Deserialize)]
9864    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9865    pub struct DestroyParticleInvolving {
9866        #[prost(bool, optional, tag = "1")]
9867        pub destroy_immediately: ::core::option::Option<bool>,
9868        #[prost(uint32, optional, tag = "3", default = "16777215")]
9869        pub entity_handle: ::core::option::Option<u32>,
9870    }
9871    #[derive(serde::Serialize, serde::Deserialize)]
9872    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9873    pub struct ReleaseParticleIndex {}
9874    #[derive(serde::Serialize, serde::Deserialize)]
9875    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
9876    pub struct UpdateParticle {
9877        #[prost(int32, optional, tag = "1")]
9878        pub control_point: ::core::option::Option<i32>,
9879        #[prost(message, optional, tag = "2")]
9880        pub position: ::core::option::Option<super::CMsgVector>,
9881    }
9882    #[derive(serde::Serialize, serde::Deserialize)]
9883    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
9884    pub struct UpdateParticleFwd {
9885        #[prost(int32, optional, tag = "1")]
9886        pub control_point: ::core::option::Option<i32>,
9887        #[prost(message, optional, tag = "2")]
9888        pub forward: ::core::option::Option<super::CMsgVector>,
9889    }
9890    #[derive(serde::Serialize, serde::Deserialize)]
9891    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
9892    pub struct UpdateParticleOrient {
9893        #[prost(int32, optional, tag = "1")]
9894        pub control_point: ::core::option::Option<i32>,
9895        #[prost(message, optional, tag = "2")]
9896        pub forward: ::core::option::Option<super::CMsgVector>,
9897        #[prost(message, optional, tag = "3")]
9898        pub left: ::core::option::Option<super::CMsgVector>,
9899        #[prost(message, optional, tag = "4")]
9900        pub up: ::core::option::Option<super::CMsgVector>,
9901    }
9902    #[derive(serde::Serialize, serde::Deserialize)]
9903    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
9904    pub struct UpdateParticleFallback {
9905        #[prost(int32, optional, tag = "1")]
9906        pub control_point: ::core::option::Option<i32>,
9907        #[prost(message, optional, tag = "2")]
9908        pub position: ::core::option::Option<super::CMsgVector>,
9909    }
9910    #[derive(serde::Serialize, serde::Deserialize)]
9911    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
9912    pub struct UpdateParticleEnt {
9913        #[prost(int32, optional, tag = "1")]
9914        pub control_point: ::core::option::Option<i32>,
9915        #[prost(uint32, optional, tag = "2", default = "16777215")]
9916        pub entity_handle: ::core::option::Option<u32>,
9917        #[prost(int32, optional, tag = "3")]
9918        pub attach_type: ::core::option::Option<i32>,
9919        #[prost(int32, optional, tag = "4")]
9920        pub attachment: ::core::option::Option<i32>,
9921        #[prost(message, optional, tag = "5")]
9922        pub fallback_position: ::core::option::Option<super::CMsgVector>,
9923    }
9924    #[derive(serde::Serialize, serde::Deserialize)]
9925    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
9926    pub struct UpdateParticleOffset {
9927        #[prost(int32, optional, tag = "1")]
9928        pub control_point: ::core::option::Option<i32>,
9929        #[prost(message, optional, tag = "2")]
9930        pub origin_offset: ::core::option::Option<super::CMsgVector>,
9931    }
9932    #[derive(serde::Serialize, serde::Deserialize)]
9933    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9934    pub struct UpdateParticleFrozen {
9935        #[prost(bool, optional, tag = "1")]
9936        pub set_frozen: ::core::option::Option<bool>,
9937    }
9938    #[derive(serde::Serialize, serde::Deserialize)]
9939    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9940    pub struct UpdateParticleShouldDraw {
9941        #[prost(bool, optional, tag = "1")]
9942        pub should_draw: ::core::option::Option<bool>,
9943    }
9944}
9945#[derive(serde::Serialize, serde::Deserialize)]
9946#[derive(Clone, PartialEq, ::prost::Message)]
9947pub struct CMsgScreenTextPretty {
9948    #[prost(float, optional, tag = "1")]
9949    pub x_pos: ::core::option::Option<f32>,
9950    #[prost(float, optional, tag = "2")]
9951    pub y_pos: ::core::option::Option<f32>,
9952    #[prost(int32, optional, tag = "3")]
9953    pub line: ::core::option::Option<i32>,
9954    #[prost(string, optional, tag = "4")]
9955    pub text: ::core::option::Option<::prost::alloc::string::String>,
9956    #[prost(int32, optional, tag = "5")]
9957    pub r: ::core::option::Option<i32>,
9958    #[prost(int32, optional, tag = "6")]
9959    pub g: ::core::option::Option<i32>,
9960    #[prost(int32, optional, tag = "7")]
9961    pub b: ::core::option::Option<i32>,
9962    #[prost(int32, optional, tag = "8")]
9963    pub a: ::core::option::Option<i32>,
9964    #[prost(float, optional, tag = "9")]
9965    pub duration: ::core::option::Option<f32>,
9966    #[prost(string, optional, tag = "10")]
9967    pub font_name: ::core::option::Option<::prost::alloc::string::String>,
9968    #[prost(int32, optional, tag = "11")]
9969    pub font_size: ::core::option::Option<i32>,
9970    #[prost(bool, optional, tag = "12")]
9971    pub bold_font: ::core::option::Option<bool>,
9972}
9973#[derive(serde::Serialize, serde::Deserialize)]
9974#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9975pub struct CMsgServerRequestedTracer {
9976    #[prost(message, optional, tag = "1")]
9977    pub origin: ::core::option::Option<CMsgVector>,
9978    #[prost(message, optional, tag = "2")]
9979    pub end: ::core::option::Option<CMsgVector>,
9980    #[prost(int32, optional, tag = "3", default = "-1")]
9981    pub weaponid: ::core::option::Option<i32>,
9982    #[prost(uint32, optional, tag = "4", default = "16777215")]
9983    pub entity_handle: ::core::option::Option<u32>,
9984    #[prost(float, optional, tag = "5")]
9985    pub dps: ::core::option::Option<f32>,
9986}
9987#[derive(serde::Serialize, serde::Deserialize)]
9988#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9989pub struct CMsgEnableSatVolumesEvent {
9990    #[prost(uint32, optional, tag = "1")]
9991    pub mode: ::core::option::Option<u32>,
9992    #[prost(float, optional, tag = "2")]
9993    pub desat_amount: ::core::option::Option<f32>,
9994    #[prost(fixed32, optional, tag = "3")]
9995    pub sat_tint: ::core::option::Option<u32>,
9996    #[prost(fixed32, optional, tag = "4")]
9997    pub desat_tint: ::core::option::Option<u32>,
9998    #[prost(fixed32, optional, tag = "5")]
9999    pub outline_color: ::core::option::Option<u32>,
10000}
10001#[derive(serde::Serialize, serde::Deserialize)]
10002#[derive(Clone, Copy, PartialEq, ::prost::Message)]
10003pub struct CMsgPlaceSatVolumeEvent {
10004    #[prost(message, optional, tag = "1")]
10005    pub position: ::core::option::Option<CMsgVector>,
10006    #[prost(message, optional, tag = "2")]
10007    pub direction: ::core::option::Option<CMsgVector>,
10008    #[prost(float, optional, tag = "3")]
10009    pub radius: ::core::option::Option<f32>,
10010    #[prost(float, optional, tag = "4")]
10011    pub falloff_distance: ::core::option::Option<f32>,
10012    #[prost(float, optional, tag = "5")]
10013    pub theta_dot: ::core::option::Option<f32>,
10014    #[prost(float, optional, tag = "6")]
10015    pub phi_dot: ::core::option::Option<f32>,
10016    #[prost(uint32, optional, tag = "7", default = "16777215")]
10017    pub entity_handle: ::core::option::Option<u32>,
10018    #[prost(uint32, optional, tag = "8")]
10019    pub attachment_handle: ::core::option::Option<u32>,
10020    #[prost(uint32, optional, tag = "9")]
10021    pub r#type: ::core::option::Option<u32>,
10022    #[prost(int32, optional, tag = "10")]
10023    pub volume_id: ::core::option::Option<i32>,
10024}
10025#[derive(serde::Serialize, serde::Deserialize)]
10026#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10027pub struct CMsgRemoveSatVolumeEvent {
10028    #[prost(int32, optional, tag = "1")]
10029    pub volume_id: ::core::option::Option<i32>,
10030}
10031#[derive(serde::Serialize, serde::Deserialize)]
10032#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10033pub struct CMsgDisableSatVolumesEvent {}
10034#[derive(serde::Serialize, serde::Deserialize)]
10035#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10036pub struct CMsgRemoveBullet {
10037    #[prost(int32, optional, tag = "1", default = "-1")]
10038    pub shooter_entindex: ::core::option::Option<i32>,
10039    #[prost(uint32, optional, tag = "2")]
10040    pub shot_id: ::core::option::Option<u32>,
10041    #[prost(uint32, optional, tag = "3")]
10042    pub bullet_index: ::core::option::Option<u32>,
10043}
10044#[derive(serde::Serialize, serde::Deserialize)]
10045#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
10046#[repr(i32)]
10047pub enum ECitadelGameEvents {
10048    GeFireBullets = 450,
10049    GePlayerAnimEvent = 451,
10050    GeParticleSystemManager = 458,
10051    GeScreenTextPretty = 459,
10052    GeBulletImpact = 461,
10053    GeEnableSatVolumesEvent = 462,
10054    GePlaceSatVolumeEvent = 463,
10055    GeDisableSatVolumesEvent = 464,
10056    GeRemoveSatVolumeEvent = 465,
10057    GeRemoveBullet = 466,
10058}
10059impl ECitadelGameEvents {
10060    /// String value of the enum field names used in the ProtoBuf definition.
10061    ///
10062    /// The values are not transformed in any way and thus are considered stable
10063    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10064    pub fn as_str_name(&self) -> &'static str {
10065        match self {
10066            Self::GeFireBullets => "GE_FireBullets",
10067            Self::GePlayerAnimEvent => "GE_PlayerAnimEvent",
10068            Self::GeParticleSystemManager => "GE_ParticleSystemManager",
10069            Self::GeScreenTextPretty => "GE_ScreenTextPretty",
10070            Self::GeBulletImpact => "GE_BulletImpact",
10071            Self::GeEnableSatVolumesEvent => "GE_EnableSatVolumesEvent",
10072            Self::GePlaceSatVolumeEvent => "GE_PlaceSatVolumeEvent",
10073            Self::GeDisableSatVolumesEvent => "GE_DisableSatVolumesEvent",
10074            Self::GeRemoveSatVolumeEvent => "GE_RemoveSatVolumeEvent",
10075            Self::GeRemoveBullet => "GE_RemoveBullet",
10076        }
10077    }
10078    /// Creates an enum from field names used in the ProtoBuf definition.
10079    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10080        match value {
10081            "GE_FireBullets" => Some(Self::GeFireBullets),
10082            "GE_PlayerAnimEvent" => Some(Self::GePlayerAnimEvent),
10083            "GE_ParticleSystemManager" => Some(Self::GeParticleSystemManager),
10084            "GE_ScreenTextPretty" => Some(Self::GeScreenTextPretty),
10085            "GE_BulletImpact" => Some(Self::GeBulletImpact),
10086            "GE_EnableSatVolumesEvent" => Some(Self::GeEnableSatVolumesEvent),
10087            "GE_PlaceSatVolumeEvent" => Some(Self::GePlaceSatVolumeEvent),
10088            "GE_DisableSatVolumesEvent" => Some(Self::GeDisableSatVolumesEvent),
10089            "GE_RemoveSatVolumeEvent" => Some(Self::GeRemoveSatVolumeEvent),
10090            "GE_RemoveBullet" => Some(Self::GeRemoveBullet),
10091            _ => None,
10092        }
10093    }
10094}
10095#[derive(serde::Serialize, serde::Deserialize)]
10096#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
10097#[repr(i32)]
10098pub enum ParticleSystemManagerMessage {
10099    ParticleSystemManagerEventCreate = 0,
10100    ParticleSystemManagerEventDestroy = 1,
10101    ParticleSystemManagerEventDestroyInvolving = 2,
10102    ParticleSystemManagerEventRelease = 3,
10103    ParticleSystemManagerEventUpdate = 4,
10104    ParticleSystemManagerEventUpdateForward = 5,
10105    ParticleSystemManagerEventUpdateOrientation = 6,
10106    ParticleSystemManagerEventUpdateFallback = 7,
10107    ParticleSystemManagerEventUpdateEnt = 8,
10108    ParticleSystemManagerEventUpdateOffset = 9,
10109    ParticleSystemManagerEventUpdateFrozen = 10,
10110    ParticleSystemManagerEventUpdateShouldDraw = 11,
10111}
10112impl ParticleSystemManagerMessage {
10113    /// String value of the enum field names used in the ProtoBuf definition.
10114    ///
10115    /// The values are not transformed in any way and thus are considered stable
10116    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10117    pub fn as_str_name(&self) -> &'static str {
10118        match self {
10119            Self::ParticleSystemManagerEventCreate => {
10120                "PARTICLE_SYSTEM_MANAGER_EVENT_CREATE"
10121            }
10122            Self::ParticleSystemManagerEventDestroy => {
10123                "PARTICLE_SYSTEM_MANAGER_EVENT_DESTROY"
10124            }
10125            Self::ParticleSystemManagerEventDestroyInvolving => {
10126                "PARTICLE_SYSTEM_MANAGER_EVENT_DESTROY_INVOLVING"
10127            }
10128            Self::ParticleSystemManagerEventRelease => {
10129                "PARTICLE_SYSTEM_MANAGER_EVENT_RELEASE"
10130            }
10131            Self::ParticleSystemManagerEventUpdate => {
10132                "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE"
10133            }
10134            Self::ParticleSystemManagerEventUpdateForward => {
10135                "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FORWARD"
10136            }
10137            Self::ParticleSystemManagerEventUpdateOrientation => {
10138                "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_ORIENTATION"
10139            }
10140            Self::ParticleSystemManagerEventUpdateFallback => {
10141                "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FALLBACK"
10142            }
10143            Self::ParticleSystemManagerEventUpdateEnt => {
10144                "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_ENT"
10145            }
10146            Self::ParticleSystemManagerEventUpdateOffset => {
10147                "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_OFFSET"
10148            }
10149            Self::ParticleSystemManagerEventUpdateFrozen => {
10150                "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FROZEN"
10151            }
10152            Self::ParticleSystemManagerEventUpdateShouldDraw => {
10153                "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_SHOULD_DRAW"
10154            }
10155        }
10156    }
10157    /// Creates an enum from field names used in the ProtoBuf definition.
10158    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10159        match value {
10160            "PARTICLE_SYSTEM_MANAGER_EVENT_CREATE" => {
10161                Some(Self::ParticleSystemManagerEventCreate)
10162            }
10163            "PARTICLE_SYSTEM_MANAGER_EVENT_DESTROY" => {
10164                Some(Self::ParticleSystemManagerEventDestroy)
10165            }
10166            "PARTICLE_SYSTEM_MANAGER_EVENT_DESTROY_INVOLVING" => {
10167                Some(Self::ParticleSystemManagerEventDestroyInvolving)
10168            }
10169            "PARTICLE_SYSTEM_MANAGER_EVENT_RELEASE" => {
10170                Some(Self::ParticleSystemManagerEventRelease)
10171            }
10172            "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE" => {
10173                Some(Self::ParticleSystemManagerEventUpdate)
10174            }
10175            "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FORWARD" => {
10176                Some(Self::ParticleSystemManagerEventUpdateForward)
10177            }
10178            "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_ORIENTATION" => {
10179                Some(Self::ParticleSystemManagerEventUpdateOrientation)
10180            }
10181            "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FALLBACK" => {
10182                Some(Self::ParticleSystemManagerEventUpdateFallback)
10183            }
10184            "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_ENT" => {
10185                Some(Self::ParticleSystemManagerEventUpdateEnt)
10186            }
10187            "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_OFFSET" => {
10188                Some(Self::ParticleSystemManagerEventUpdateOffset)
10189            }
10190            "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_FROZEN" => {
10191                Some(Self::ParticleSystemManagerEventUpdateFrozen)
10192            }
10193            "PARTICLE_SYSTEM_MANAGER_EVENT_UPDATE_SHOULD_DRAW" => {
10194                Some(Self::ParticleSystemManagerEventUpdateShouldDraw)
10195            }
10196            _ => None,
10197        }
10198    }
10199}
10200#[derive(serde::Serialize, serde::Deserialize)]
10201#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10202pub struct CsoGameAccountClient {
10203    #[prost(uint32, optional, tag = "1")]
10204    pub account_id: ::core::option::Option<u32>,
10205    #[prost(uint64, optional, tag = "2")]
10206    pub flags: ::core::option::Option<u64>,
10207    #[prost(uint32, optional, tag = "3")]
10208    pub wins: ::core::option::Option<u32>,
10209    #[prost(uint32, optional, tag = "4")]
10210    pub losses: ::core::option::Option<u32>,
10211    #[prost(uint32, optional, tag = "5")]
10212    pub kills: ::core::option::Option<u32>,
10213    #[prost(uint32, optional, tag = "6")]
10214    pub most_played_hero_id: ::core::option::Option<u32>,
10215    #[prost(uint64, optional, tag = "7")]
10216    pub permissions: ::core::option::Option<u64>,
10217    #[prost(uint64, optional, tag = "8")]
10218    pub new_player_progress: ::core::option::Option<u64>,
10219    #[prost(uint32, optional, tag = "9")]
10220    pub hero_unlock_credits: ::core::option::Option<u32>,
10221    #[prost(uint32, optional, tag = "10")]
10222    pub mm_ban_until: ::core::option::Option<u32>,
10223    #[prost(uint32, optional, tag = "11")]
10224    pub comms_ban_until: ::core::option::Option<u32>,
10225    #[prost(uint32, optional, tag = "12")]
10226    pub low_priority_games_remaining: ::core::option::Option<u32>,
10227    #[prost(uint32, optional, tag = "13")]
10228    pub report_ban_until: ::core::option::Option<u32>,
10229    #[prost(uint32, optional, tag = "14")]
10230    pub ranked_badge_level: ::core::option::Option<u32>,
10231    #[prost(uint32, optional, tag = "15")]
10232    pub priority_tokens: ::core::option::Option<u32>,
10233    #[prost(uint32, optional, tag = "16")]
10234    pub priority_token_progress: ::core::option::Option<u32>,
10235    #[prost(uint32, optional, tag = "17")]
10236    pub priority_tokens_earned: ::core::option::Option<u32>,
10237    #[prost(uint32, optional, tag = "18")]
10238    pub brawl_wins: ::core::option::Option<u32>,
10239    #[prost(uint32, optional, tag = "19")]
10240    pub brawl_losses: ::core::option::Option<u32>,
10241    #[prost(uint32, optional, tag = "20")]
10242    pub brawl_kills: ::core::option::Option<u32>,
10243    #[prost(uint32, optional, tag = "21")]
10244    pub last_mm_match_time: ::core::option::Option<u32>,
10245    #[prost(
10246        enumeration = "cso_game_account_client::EPrivacySetting",
10247        optional,
10248        tag = "22",
10249        default = "KEPrivacyFriendsOnly"
10250    )]
10251    pub privacy_setting: ::core::option::Option<i32>,
10252}
10253/// Nested message and enum types in `CSOGameAccountClient`.
10254pub mod cso_game_account_client {
10255    #[derive(serde::Serialize, serde::Deserialize)]
10256    #[derive(
10257        Clone,
10258        Copy,
10259        Debug,
10260        PartialEq,
10261        Eq,
10262        Hash,
10263        PartialOrd,
10264        Ord,
10265        ::prost::Enumeration
10266    )]
10267    #[repr(i32)]
10268    pub enum EFlags {
10269        KEDeveloper = 1,
10270        KEExternalModerator = 2,
10271        KEGotInitialHeroes = 4,
10272        KEHideHolidayModels = 8,
10273        KEClaimedDiscordLink = 16,
10274        KEClaimedForum = 32,
10275        KEAccountBanned = 64,
10276    }
10277    impl EFlags {
10278        /// String value of the enum field names used in the ProtoBuf definition.
10279        ///
10280        /// The values are not transformed in any way and thus are considered stable
10281        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10282        pub fn as_str_name(&self) -> &'static str {
10283            match self {
10284                Self::KEDeveloper => "k_eDeveloper",
10285                Self::KEExternalModerator => "k_eExternalModerator",
10286                Self::KEGotInitialHeroes => "k_eGotInitialHeroes",
10287                Self::KEHideHolidayModels => "k_eHideHolidayModels",
10288                Self::KEClaimedDiscordLink => "k_eClaimedDiscordLink",
10289                Self::KEClaimedForum => "k_eClaimedForum",
10290                Self::KEAccountBanned => "k_eAccountBanned",
10291            }
10292        }
10293        /// Creates an enum from field names used in the ProtoBuf definition.
10294        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10295            match value {
10296                "k_eDeveloper" => Some(Self::KEDeveloper),
10297                "k_eExternalModerator" => Some(Self::KEExternalModerator),
10298                "k_eGotInitialHeroes" => Some(Self::KEGotInitialHeroes),
10299                "k_eHideHolidayModels" => Some(Self::KEHideHolidayModels),
10300                "k_eClaimedDiscordLink" => Some(Self::KEClaimedDiscordLink),
10301                "k_eClaimedForum" => Some(Self::KEClaimedForum),
10302                "k_eAccountBanned" => Some(Self::KEAccountBanned),
10303                _ => None,
10304            }
10305        }
10306    }
10307    #[derive(serde::Serialize, serde::Deserialize)]
10308    #[derive(
10309        Clone,
10310        Copy,
10311        Debug,
10312        PartialEq,
10313        Eq,
10314        Hash,
10315        PartialOrd,
10316        Ord,
10317        ::prost::Enumeration
10318    )]
10319    #[repr(i32)]
10320    pub enum EPrivacySetting {
10321        KEPrivacyFriendsOnly = 0,
10322        KEPrivacyHidden = 1,
10323        KEPrivacyPublic = 2,
10324    }
10325    impl EPrivacySetting {
10326        /// String value of the enum field names used in the ProtoBuf definition.
10327        ///
10328        /// The values are not transformed in any way and thus are considered stable
10329        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10330        pub fn as_str_name(&self) -> &'static str {
10331            match self {
10332                Self::KEPrivacyFriendsOnly => "k_ePrivacy_FriendsOnly",
10333                Self::KEPrivacyHidden => "k_ePrivacy_Hidden",
10334                Self::KEPrivacyPublic => "k_ePrivacy_Public",
10335            }
10336        }
10337        /// Creates an enum from field names used in the ProtoBuf definition.
10338        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10339            match value {
10340                "k_ePrivacy_FriendsOnly" => Some(Self::KEPrivacyFriendsOnly),
10341                "k_ePrivacy_Hidden" => Some(Self::KEPrivacyHidden),
10342                "k_ePrivacy_Public" => Some(Self::KEPrivacyPublic),
10343                _ => None,
10344            }
10345        }
10346    }
10347}
10348#[derive(serde::Serialize, serde::Deserialize)]
10349#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10350pub struct CsoAccountSyncStorage {
10351    #[prost(uint32, optional, tag = "1")]
10352    pub account_id: ::core::option::Option<u32>,
10353    #[prost(uint32, optional, tag = "2")]
10354    pub id: ::core::option::Option<u32>,
10355    #[prost(uint32, optional, tag = "3")]
10356    pub value: ::core::option::Option<u32>,
10357}
10358#[derive(serde::Serialize, serde::Deserialize)]
10359#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10360pub struct CsoAccountHeroInfo {
10361    #[prost(uint32, optional, tag = "1")]
10362    pub account_id: ::core::option::Option<u32>,
10363    #[prost(uint32, optional, tag = "2")]
10364    pub hero_id: ::core::option::Option<u32>,
10365    #[prost(
10366        enumeration = "cso_account_hero_info::EHeroStatus",
10367        optional,
10368        tag = "3",
10369        default = "KELocked"
10370    )]
10371    pub status: ::core::option::Option<i32>,
10372    #[prost(uint32, optional, tag = "4")]
10373    pub wins: ::core::option::Option<u32>,
10374    #[prost(uint32, optional, tag = "6")]
10375    pub hero_xp: ::core::option::Option<u32>,
10376    #[prost(uint32, optional, tag = "7")]
10377    pub brawl_wins: ::core::option::Option<u32>,
10378}
10379/// Nested message and enum types in `CSOAccountHeroInfo`.
10380pub mod cso_account_hero_info {
10381    #[derive(serde::Serialize, serde::Deserialize)]
10382    #[derive(
10383        Clone,
10384        Copy,
10385        Debug,
10386        PartialEq,
10387        Eq,
10388        Hash,
10389        PartialOrd,
10390        Ord,
10391        ::prost::Enumeration
10392    )]
10393    #[repr(i32)]
10394    pub enum EHeroStatus {
10395        KELocked = 0,
10396        KEOwned = 1,
10397    }
10398    impl EHeroStatus {
10399        /// String value of the enum field names used in the ProtoBuf definition.
10400        ///
10401        /// The values are not transformed in any way and thus are considered stable
10402        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10403        pub fn as_str_name(&self) -> &'static str {
10404            match self {
10405                Self::KELocked => "k_eLocked",
10406                Self::KEOwned => "k_eOwned",
10407            }
10408        }
10409        /// Creates an enum from field names used in the ProtoBuf definition.
10410        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10411            match value {
10412                "k_eLocked" => Some(Self::KELocked),
10413                "k_eOwned" => Some(Self::KEOwned),
10414                _ => None,
10415            }
10416        }
10417    }
10418}
10419#[derive(serde::Serialize, serde::Deserialize)]
10420#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10421pub struct CsoAccountChallenge {
10422    #[prost(uint32, optional, tag = "1")]
10423    pub account_id: ::core::option::Option<u32>,
10424    #[prost(uint64, optional, tag = "2")]
10425    pub challenge_id: ::core::option::Option<u64>,
10426    #[prost(
10427        enumeration = "cso_account_challenge::EChallengeStatus",
10428        optional,
10429        tag = "3",
10430        default = "KEInvalid"
10431    )]
10432    pub status: ::core::option::Option<i32>,
10433    #[prost(uint32, optional, tag = "4")]
10434    pub progress: ::core::option::Option<u32>,
10435    #[prost(uint32, optional, tag = "5")]
10436    pub max_progress: ::core::option::Option<u32>,
10437    #[prost(uint32, optional, tag = "6")]
10438    pub choice_group: ::core::option::Option<u32>,
10439    #[prost(
10440        enumeration = "cso_account_challenge::ERewardType",
10441        optional,
10442        tag = "7",
10443        default = "KERewardHeroXp"
10444    )]
10445    pub reward_type: ::core::option::Option<i32>,
10446    #[prost(uint32, optional, tag = "8")]
10447    pub reward_param: ::core::option::Option<u32>,
10448    #[prost(uint32, optional, tag = "9")]
10449    pub reward_amount: ::core::option::Option<u32>,
10450}
10451/// Nested message and enum types in `CSOAccountChallenge`.
10452pub mod cso_account_challenge {
10453    #[derive(serde::Serialize, serde::Deserialize)]
10454    #[derive(
10455        Clone,
10456        Copy,
10457        Debug,
10458        PartialEq,
10459        Eq,
10460        Hash,
10461        PartialOrd,
10462        Ord,
10463        ::prost::Enumeration
10464    )]
10465    #[repr(i32)]
10466    pub enum EChallengeStatus {
10467        KEInvalid = 0,
10468        KERejected = 1,
10469        KEActiveChoice = 2,
10470        KEActive = 3,
10471        KECompleted = 4,
10472        KEExpired = 5,
10473    }
10474    impl EChallengeStatus {
10475        /// String value of the enum field names used in the ProtoBuf definition.
10476        ///
10477        /// The values are not transformed in any way and thus are considered stable
10478        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10479        pub fn as_str_name(&self) -> &'static str {
10480            match self {
10481                Self::KEInvalid => "k_eInvalid",
10482                Self::KERejected => "k_eRejected",
10483                Self::KEActiveChoice => "k_eActiveChoice",
10484                Self::KEActive => "k_eActive",
10485                Self::KECompleted => "k_eCompleted",
10486                Self::KEExpired => "k_eExpired",
10487            }
10488        }
10489        /// Creates an enum from field names used in the ProtoBuf definition.
10490        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10491            match value {
10492                "k_eInvalid" => Some(Self::KEInvalid),
10493                "k_eRejected" => Some(Self::KERejected),
10494                "k_eActiveChoice" => Some(Self::KEActiveChoice),
10495                "k_eActive" => Some(Self::KEActive),
10496                "k_eCompleted" => Some(Self::KECompleted),
10497                "k_eExpired" => Some(Self::KEExpired),
10498                _ => None,
10499            }
10500        }
10501    }
10502    #[derive(serde::Serialize, serde::Deserialize)]
10503    #[derive(
10504        Clone,
10505        Copy,
10506        Debug,
10507        PartialEq,
10508        Eq,
10509        Hash,
10510        PartialOrd,
10511        Ord,
10512        ::prost::Enumeration
10513    )]
10514    #[repr(i32)]
10515    pub enum ERewardType {
10516        KERewardHeroXp = 0,
10517    }
10518    impl ERewardType {
10519        /// String value of the enum field names used in the ProtoBuf definition.
10520        ///
10521        /// The values are not transformed in any way and thus are considered stable
10522        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10523        pub fn as_str_name(&self) -> &'static str {
10524            match self {
10525                Self::KERewardHeroXp => "k_eReward_HeroXP",
10526            }
10527        }
10528        /// Creates an enum from field names used in the ProtoBuf definition.
10529        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10530            match value {
10531                "k_eReward_HeroXP" => Some(Self::KERewardHeroXp),
10532                _ => None,
10533            }
10534        }
10535    }
10536}
10537#[derive(serde::Serialize, serde::Deserialize)]
10538#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10539pub struct CMsgCitadelClientHello {
10540    #[prost(bytes = "vec", optional, tag = "1")]
10541    pub pgi_hash: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
10542    #[prost(bytes = "vec", optional, tag = "2")]
10543    pub pgi_version: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
10544}
10545#[derive(serde::Serialize, serde::Deserialize)]
10546#[derive(Clone, PartialEq, ::prost::Message)]
10547pub struct CMsgClientToGcStartMatchmaking {
10548    #[prost(uint32, optional, tag = "1")]
10549    pub client_version: ::core::option::Option<u32>,
10550    #[prost(
10551        enumeration = "EgcPlatform",
10552        optional,
10553        tag = "2",
10554        default = "KEGcPlatformNone"
10555    )]
10556    pub client_platform: ::core::option::Option<i32>,
10557    #[prost(message, optional, tag = "3")]
10558    pub match_info: ::core::option::Option<CMsgStartFindingMatchInfo>,
10559    #[prost(message, optional, tag = "4")]
10560    pub ping_times: ::core::option::Option<CMsgRegionPingTimesClient>,
10561    #[prost(message, optional, tag = "5")]
10562    pub heroes: ::core::option::Option<CMsgHeroSelectionMatchInfo>,
10563    #[prost(bool, optional, tag = "6")]
10564    pub pgi_verified: ::core::option::Option<bool>,
10565}
10566#[derive(serde::Serialize, serde::Deserialize)]
10567#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10568pub struct CMsgClientToGcStartMatchmakingResponse {
10569    #[prost(
10570        enumeration = "c_msg_client_to_gc_start_matchmaking_response::EResultCode",
10571        optional,
10572        tag = "1",
10573        default = "KEResultOk"
10574    )]
10575    pub result: ::core::option::Option<i32>,
10576    #[prost(uint32, optional, tag = "2")]
10577    pub time_stamp: ::core::option::Option<u32>,
10578    #[prost(string, optional, tag = "3")]
10579    pub debug_message: ::core::option::Option<::prost::alloc::string::String>,
10580}
10581/// Nested message and enum types in `CMsgClientToGCStartMatchmakingResponse`.
10582pub mod c_msg_client_to_gc_start_matchmaking_response {
10583    #[derive(serde::Serialize, serde::Deserialize)]
10584    #[derive(
10585        Clone,
10586        Copy,
10587        Debug,
10588        PartialEq,
10589        Eq,
10590        Hash,
10591        PartialOrd,
10592        Ord,
10593        ::prost::Enumeration
10594    )]
10595    #[repr(i32)]
10596    pub enum EResultCode {
10597        KEResultOk = 0,
10598        KEResultAlreadyFindingMatch = 1,
10599        KEResultPartyMemberInLobby = 2,
10600        KEResultInvalidClientVersion = 3,
10601        KEResultMatchmakingDisabled = 4,
10602        KEResultMatchmakingTooBusy = 5,
10603        KEResultInternalError = 6,
10604        KEResultNoRegionPings = 7,
10605        KEResultInParty = 8,
10606        KEResultModeLocked = 9,
10607        KEResultModeBanned = 10,
10608        KEResultRegionInfoNotProvided = 11,
10609        KEResultDurationControlBlocked = 12,
10610        KEResultInvalidHeroSelection = 13,
10611        KEResultHeroesNotUnlocked = 14,
10612        KEResultPermanentBan = 15,
10613        KEResultRankedMmNotOpen = 16,
10614        KEResultRankedNotUnlocked = 17,
10615        KEResultNoRankedWhileInLowPri = 18,
10616        KEResultNoRankedWhileCommsBanned = 19,
10617        KEResultNoRankedWhileReportBanned = 20,
10618        KEResultHeroLabsMmNotOpen = 21,
10619        KEResultHeroLabsNotUnlocked = 22,
10620        KEResultNoHeroLabsWhileInLowPri = 23,
10621        KEResultAccountLocked = 24,
10622        KEResultTooManyLimitedHeroes = 25,
10623        KEResultUnverifiedPgi = 26,
10624    }
10625    impl EResultCode {
10626        /// String value of the enum field names used in the ProtoBuf definition.
10627        ///
10628        /// The values are not transformed in any way and thus are considered stable
10629        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10630        pub fn as_str_name(&self) -> &'static str {
10631            match self {
10632                Self::KEResultOk => "k_EResult_OK",
10633                Self::KEResultAlreadyFindingMatch => "k_EResult_AlreadyFindingMatch",
10634                Self::KEResultPartyMemberInLobby => "k_EResult_PartyMemberInLobby",
10635                Self::KEResultInvalidClientVersion => "k_EResult_InvalidClientVersion",
10636                Self::KEResultMatchmakingDisabled => "k_EResult_MatchmakingDisabled",
10637                Self::KEResultMatchmakingTooBusy => "k_EResult_MatchmakingTooBusy",
10638                Self::KEResultInternalError => "k_EResult_InternalError",
10639                Self::KEResultNoRegionPings => "k_EResult_NoRegionPings",
10640                Self::KEResultInParty => "k_EResult_InParty",
10641                Self::KEResultModeLocked => "k_EResult_ModeLocked",
10642                Self::KEResultModeBanned => "k_EResult_ModeBanned",
10643                Self::KEResultRegionInfoNotProvided => "k_EResult_RegionInfoNotProvided",
10644                Self::KEResultDurationControlBlocked => {
10645                    "k_EResult_DurationControlBlocked"
10646                }
10647                Self::KEResultInvalidHeroSelection => "k_EResult_InvalidHeroSelection",
10648                Self::KEResultHeroesNotUnlocked => "k_EResult_HeroesNotUnlocked",
10649                Self::KEResultPermanentBan => "k_EResult_PermanentBan",
10650                Self::KEResultRankedMmNotOpen => "k_EResult_RankedMMNotOpen",
10651                Self::KEResultRankedNotUnlocked => "k_EResult_RankedNotUnlocked",
10652                Self::KEResultNoRankedWhileInLowPri => "k_EResult_NoRankedWhileInLowPri",
10653                Self::KEResultNoRankedWhileCommsBanned => {
10654                    "k_EResult_NoRankedWhileCommsBanned"
10655                }
10656                Self::KEResultNoRankedWhileReportBanned => {
10657                    "k_EResult_NoRankedWhileReportBanned"
10658                }
10659                Self::KEResultHeroLabsMmNotOpen => "k_EResult_HeroLabsMMNotOpen",
10660                Self::KEResultHeroLabsNotUnlocked => "k_EResult_HeroLabsNotUnlocked",
10661                Self::KEResultNoHeroLabsWhileInLowPri => {
10662                    "k_EResult_NoHeroLabsWhileInLowPri"
10663                }
10664                Self::KEResultAccountLocked => "k_EResult_AccountLocked",
10665                Self::KEResultTooManyLimitedHeroes => "k_EResult_TooManyLimitedHeroes",
10666                Self::KEResultUnverifiedPgi => "k_EResult_UnverifiedPGI",
10667            }
10668        }
10669        /// Creates an enum from field names used in the ProtoBuf definition.
10670        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10671            match value {
10672                "k_EResult_OK" => Some(Self::KEResultOk),
10673                "k_EResult_AlreadyFindingMatch" => {
10674                    Some(Self::KEResultAlreadyFindingMatch)
10675                }
10676                "k_EResult_PartyMemberInLobby" => Some(Self::KEResultPartyMemberInLobby),
10677                "k_EResult_InvalidClientVersion" => {
10678                    Some(Self::KEResultInvalidClientVersion)
10679                }
10680                "k_EResult_MatchmakingDisabled" => {
10681                    Some(Self::KEResultMatchmakingDisabled)
10682                }
10683                "k_EResult_MatchmakingTooBusy" => Some(Self::KEResultMatchmakingTooBusy),
10684                "k_EResult_InternalError" => Some(Self::KEResultInternalError),
10685                "k_EResult_NoRegionPings" => Some(Self::KEResultNoRegionPings),
10686                "k_EResult_InParty" => Some(Self::KEResultInParty),
10687                "k_EResult_ModeLocked" => Some(Self::KEResultModeLocked),
10688                "k_EResult_ModeBanned" => Some(Self::KEResultModeBanned),
10689                "k_EResult_RegionInfoNotProvided" => {
10690                    Some(Self::KEResultRegionInfoNotProvided)
10691                }
10692                "k_EResult_DurationControlBlocked" => {
10693                    Some(Self::KEResultDurationControlBlocked)
10694                }
10695                "k_EResult_InvalidHeroSelection" => {
10696                    Some(Self::KEResultInvalidHeroSelection)
10697                }
10698                "k_EResult_HeroesNotUnlocked" => Some(Self::KEResultHeroesNotUnlocked),
10699                "k_EResult_PermanentBan" => Some(Self::KEResultPermanentBan),
10700                "k_EResult_RankedMMNotOpen" => Some(Self::KEResultRankedMmNotOpen),
10701                "k_EResult_RankedNotUnlocked" => Some(Self::KEResultRankedNotUnlocked),
10702                "k_EResult_NoRankedWhileInLowPri" => {
10703                    Some(Self::KEResultNoRankedWhileInLowPri)
10704                }
10705                "k_EResult_NoRankedWhileCommsBanned" => {
10706                    Some(Self::KEResultNoRankedWhileCommsBanned)
10707                }
10708                "k_EResult_NoRankedWhileReportBanned" => {
10709                    Some(Self::KEResultNoRankedWhileReportBanned)
10710                }
10711                "k_EResult_HeroLabsMMNotOpen" => Some(Self::KEResultHeroLabsMmNotOpen),
10712                "k_EResult_HeroLabsNotUnlocked" => {
10713                    Some(Self::KEResultHeroLabsNotUnlocked)
10714                }
10715                "k_EResult_NoHeroLabsWhileInLowPri" => {
10716                    Some(Self::KEResultNoHeroLabsWhileInLowPri)
10717                }
10718                "k_EResult_AccountLocked" => Some(Self::KEResultAccountLocked),
10719                "k_EResult_TooManyLimitedHeroes" => {
10720                    Some(Self::KEResultTooManyLimitedHeroes)
10721                }
10722                "k_EResult_UnverifiedPGI" => Some(Self::KEResultUnverifiedPgi),
10723                _ => None,
10724            }
10725        }
10726    }
10727}
10728#[derive(serde::Serialize, serde::Deserialize)]
10729#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10730pub struct CMsgClientToGcStopMatchmaking {}
10731#[derive(serde::Serialize, serde::Deserialize)]
10732#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10733pub struct CMsgClientToGcStopMatchmakingResponse {
10734    #[prost(bool, optional, tag = "1")]
10735    pub success: ::core::option::Option<bool>,
10736}
10737#[derive(serde::Serialize, serde::Deserialize)]
10738#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10739pub struct CMsgGcToClientMatchmakingStopped {
10740    #[prost(
10741        enumeration = "c_msg_gc_to_client_matchmaking_stopped::EReason",
10742        optional,
10743        tag = "1",
10744        default = "KEResultUnspecified"
10745    )]
10746    pub reason: ::core::option::Option<i32>,
10747}
10748/// Nested message and enum types in `CMsgGCToClientMatchmakingStopped`.
10749pub mod c_msg_gc_to_client_matchmaking_stopped {
10750    #[derive(serde::Serialize, serde::Deserialize)]
10751    #[derive(
10752        Clone,
10753        Copy,
10754        Debug,
10755        PartialEq,
10756        Eq,
10757        Hash,
10758        PartialOrd,
10759        Ord,
10760        ::prost::Enumeration
10761    )]
10762    #[repr(i32)]
10763    pub enum EReason {
10764        KEResultUnspecified = 0,
10765        KEResultVersionUpdated = 1,
10766        KEResultRankedClosed = 2,
10767        KEResultHeroLabsClosed = 3,
10768    }
10769    impl EReason {
10770        /// String value of the enum field names used in the ProtoBuf definition.
10771        ///
10772        /// The values are not transformed in any way and thus are considered stable
10773        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10774        pub fn as_str_name(&self) -> &'static str {
10775            match self {
10776                Self::KEResultUnspecified => "k_EResult_Unspecified",
10777                Self::KEResultVersionUpdated => "k_EResult_VersionUpdated",
10778                Self::KEResultRankedClosed => "k_EResult_RankedClosed",
10779                Self::KEResultHeroLabsClosed => "k_EResult_HeroLabsClosed",
10780            }
10781        }
10782        /// Creates an enum from field names used in the ProtoBuf definition.
10783        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10784            match value {
10785                "k_EResult_Unspecified" => Some(Self::KEResultUnspecified),
10786                "k_EResult_VersionUpdated" => Some(Self::KEResultVersionUpdated),
10787                "k_EResult_RankedClosed" => Some(Self::KEResultRankedClosed),
10788                "k_EResult_HeroLabsClosed" => Some(Self::KEResultHeroLabsClosed),
10789                _ => None,
10790            }
10791        }
10792    }
10793}
10794#[derive(serde::Serialize, serde::Deserialize)]
10795#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10796pub struct CMsgClientToGcLeaveLobby {
10797    #[prost(uint64, optional, tag = "1")]
10798    pub lobby_id: ::core::option::Option<u64>,
10799}
10800#[derive(serde::Serialize, serde::Deserialize)]
10801#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10802pub struct CMsgClientToGcLeaveLobbyResponse {}
10803#[derive(serde::Serialize, serde::Deserialize)]
10804#[derive(Clone, PartialEq, ::prost::Message)]
10805pub struct CMsgClientWelcomeCitadel {
10806    #[prost(uint32, optional, tag = "1")]
10807    pub currency: ::core::option::Option<u32>,
10808    #[prost(message, repeated, tag = "2")]
10809    pub extra_messages: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
10810    #[prost(uint32, optional, tag = "3")]
10811    pub compatibility_version: ::core::option::Option<u32>,
10812    #[prost(
10813        enumeration = "ECitadelRegionMode",
10814        optional,
10815        tag = "4",
10816        default = "KECitadelRegionModeRow"
10817    )]
10818    pub region_mode: ::core::option::Option<i32>,
10819    #[prost(bool, optional, tag = "5")]
10820    pub pgi_verified: ::core::option::Option<bool>,
10821}
10822#[derive(serde::Serialize, serde::Deserialize)]
10823#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10824pub struct CMsgClientToGcIsInMatchmaking {}
10825#[derive(serde::Serialize, serde::Deserialize)]
10826#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10827pub struct CMsgClientToGcIsInMatchmakingResponse {
10828    #[prost(bool, optional, tag = "1")]
10829    pub in_matchmaking: ::core::option::Option<bool>,
10830}
10831#[derive(serde::Serialize, serde::Deserialize)]
10832#[derive(Clone, PartialEq, ::prost::Message)]
10833pub struct CMsgDevMatchInfo {
10834    #[prost(uint32, optional, tag = "1")]
10835    pub start_time: ::core::option::Option<u32>,
10836    #[prost(
10837        enumeration = "ECitadelLobbyTeam",
10838        optional,
10839        tag = "2",
10840        default = "KECitadelLobbyTeamTeam0"
10841    )]
10842    pub winning_team: ::core::option::Option<i32>,
10843    #[prost(uint64, optional, tag = "3")]
10844    pub match_id: ::core::option::Option<u64>,
10845    #[prost(message, repeated, tag = "4")]
10846    pub players: ::prost::alloc::vec::Vec<c_msg_dev_match_info::MatchPlayer>,
10847    #[prost(fixed64, optional, tag = "5")]
10848    pub lobby_id: ::core::option::Option<u64>,
10849    #[prost(uint32, optional, tag = "6")]
10850    pub game_mode_version: ::core::option::Option<u32>,
10851    #[prost(uint32, optional, tag = "9")]
10852    pub net_worth_team_0: ::core::option::Option<u32>,
10853    #[prost(uint32, optional, tag = "10")]
10854    pub net_worth_team_1: ::core::option::Option<u32>,
10855    #[prost(uint32, optional, tag = "11")]
10856    pub duration_s: ::core::option::Option<u32>,
10857    #[prost(uint32, optional, tag = "12")]
10858    pub spectators: ::core::option::Option<u32>,
10859    #[prost(uint32, optional, tag = "13")]
10860    pub open_spectator_slots: ::core::option::Option<u32>,
10861    #[prost(uint64, optional, tag = "14")]
10862    pub objectives_mask_team0: ::core::option::Option<u64>,
10863    #[prost(uint64, optional, tag = "15")]
10864    pub objectives_mask_team1: ::core::option::Option<u64>,
10865    #[prost(
10866        enumeration = "ECitadelMatchMode",
10867        optional,
10868        tag = "16",
10869        default = "KECitadelMatchModeInvalid"
10870    )]
10871    pub match_mode: ::core::option::Option<i32>,
10872    #[prost(
10873        enumeration = "ECitadelGameMode",
10874        optional,
10875        tag = "17",
10876        default = "KECitadelGameModeInvalid"
10877    )]
10878    pub game_mode: ::core::option::Option<i32>,
10879    #[prost(uint32, optional, tag = "18")]
10880    pub match_score: ::core::option::Option<u32>,
10881    #[prost(
10882        enumeration = "ECitadelRegionMode",
10883        optional,
10884        tag = "19",
10885        default = "KECitadelRegionModeRow"
10886    )]
10887    pub region_mode: ::core::option::Option<i32>,
10888    #[prost(uint32, optional, tag = "20")]
10889    pub compat_version: ::core::option::Option<u32>,
10890    #[prost(message, repeated, tag = "22")]
10891    pub team_stats: ::prost::alloc::vec::Vec<c_msg_dev_match_info::Team>,
10892}
10893/// Nested message and enum types in `CMsgDevMatchInfo`.
10894pub mod c_msg_dev_match_info {
10895    #[derive(serde::Serialize, serde::Deserialize)]
10896    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10897    pub struct MatchPlayer {
10898        #[prost(uint32, optional, tag = "1")]
10899        pub account_id: ::core::option::Option<u32>,
10900        #[prost(
10901            enumeration = "super::ECitadelLobbyTeam",
10902            optional,
10903            tag = "2",
10904            default = "KECitadelLobbyTeamTeam0"
10905        )]
10906        pub team: ::core::option::Option<i32>,
10907        #[prost(bool, optional, tag = "3")]
10908        pub abandoned: ::core::option::Option<bool>,
10909        #[prost(uint32, optional, tag = "4")]
10910        pub hero_id: ::core::option::Option<u32>,
10911    }
10912    #[derive(serde::Serialize, serde::Deserialize)]
10913    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10914    pub struct Team {
10915        #[prost(
10916            enumeration = "super::ECitadelLobbyTeam",
10917            optional,
10918            tag = "1",
10919            default = "KECitadelLobbyTeamTeam0"
10920        )]
10921        pub team: ::core::option::Option<i32>,
10922        #[prost(uint32, optional, tag = "2")]
10923        pub net_worth: ::core::option::Option<u32>,
10924        #[prost(uint64, optional, tag = "3")]
10925        pub objectives_mask: ::core::option::Option<u64>,
10926        #[prost(uint32, optional, tag = "4")]
10927        pub brawl_score: ::core::option::Option<u32>,
10928    }
10929}
10930#[derive(serde::Serialize, serde::Deserialize)]
10931#[derive(Clone, PartialEq, ::prost::Message)]
10932pub struct CMsgGcToClientDevPlaytestStatus {
10933    #[prost(message, repeated, tag = "1")]
10934    pub dev_queue_size: ::prost::alloc::vec::Vec<
10935        c_msg_gc_to_client_dev_playtest_status::DevQueueSize,
10936    >,
10937    #[prost(uint32, optional, tag = "2")]
10938    pub dev_available_servers: ::core::option::Option<u32>,
10939    #[prost(uint32, optional, tag = "3")]
10940    pub coop_bot_max_wait_s: ::core::option::Option<u32>,
10941    #[prost(bool, optional, tag = "4")]
10942    pub is_mm_enabled: ::core::option::Option<bool>,
10943    #[prost(bool, optional, tag = "8")]
10944    pub locked_heroes: ::core::option::Option<bool>,
10945    #[prost(bool, optional, tag = "9")]
10946    pub party_shared_heroes: ::core::option::Option<bool>,
10947    #[prost(message, repeated, tag = "10")]
10948    pub hero_whitelists: ::prost::alloc::vec::Vec<
10949        c_msg_gc_to_client_dev_playtest_status::HeroWhitelist,
10950    >,
10951    #[prost(uint32, optional, tag = "14")]
10952    pub mm_pause_time: ::core::option::Option<u32>,
10953    #[prost(uint32, repeated, packed = "false", tag = "15")]
10954    pub valid_client_versions: ::prost::alloc::vec::Vec<u32>,
10955    #[prost(uint32, optional, tag = "21")]
10956    pub active_match_count: ::core::option::Option<u32>,
10957    #[prost(uint32, optional, tag = "22")]
10958    pub roster_non_limited_heroes: ::core::option::Option<u32>,
10959    #[prost(uint32, optional, tag = "23")]
10960    pub matches_per_priority_token: ::core::option::Option<u32>,
10961}
10962/// Nested message and enum types in `CMsgGCToClientDevPlaytestStatus`.
10963pub mod c_msg_gc_to_client_dev_playtest_status {
10964    #[derive(serde::Serialize, serde::Deserialize)]
10965    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10966    pub struct HeroWhitelist {
10967        #[prost(uint32, optional, tag = "1")]
10968        pub hero_id: ::core::option::Option<u32>,
10969        #[prost(uint32, repeated, packed = "false", tag = "2")]
10970        pub account_ids: ::prost::alloc::vec::Vec<u32>,
10971    }
10972    #[derive(serde::Serialize, serde::Deserialize)]
10973    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10974    pub struct DevQueueSize {
10975        #[prost(
10976            enumeration = "super::ECitadelMatchMode",
10977            optional,
10978            tag = "1",
10979            default = "KECitadelMatchModeInvalid"
10980        )]
10981        pub match_mode: ::core::option::Option<i32>,
10982        #[prost(uint32, optional, tag = "2")]
10983        pub queue_size: ::core::option::Option<u32>,
10984        #[prost(
10985            enumeration = "super::ECitadelGameMode",
10986            optional,
10987            tag = "3",
10988            default = "KECitadelGameModeInvalid"
10989        )]
10990        pub game_mode: ::core::option::Option<i32>,
10991    }
10992}
10993#[derive(serde::Serialize, serde::Deserialize)]
10994#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10995pub struct CMsgGcToClientSdrTicket {
10996    #[prost(bytes = "vec", optional, tag = "1")]
10997    pub ticket: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
10998}
10999#[derive(serde::Serialize, serde::Deserialize)]
11000#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11001pub struct CMsgClientToGcReplacementSdrTicket {
11002    #[prost(fixed64, optional, tag = "1")]
11003    pub lobby_id: ::core::option::Option<u64>,
11004}
11005#[derive(serde::Serialize, serde::Deserialize)]
11006#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11007pub struct CMsgClientToGcReplacementSdrTicketResponse {
11008    #[prost(bytes = "vec", optional, tag = "1")]
11009    pub ticket: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
11010    #[prost(string, optional, tag = "2")]
11011    pub error_message: ::core::option::Option<::prost::alloc::string::String>,
11012}
11013#[derive(serde::Serialize, serde::Deserialize)]
11014#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11015pub struct CMsgClientToGcGetHideoutSdrTicket {
11016    #[prost(fixed64, optional, tag = "1")]
11017    pub lobby_id: ::core::option::Option<u64>,
11018}
11019#[derive(serde::Serialize, serde::Deserialize)]
11020#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11021pub struct CMsgClientToGcGetHideoutSdrTicketResponse {
11022    #[prost(bytes = "vec", optional, tag = "1")]
11023    pub ticket: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
11024    #[prost(string, optional, tag = "2")]
11025    pub error_message: ::core::option::Option<::prost::alloc::string::String>,
11026}
11027#[derive(serde::Serialize, serde::Deserialize)]
11028#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11029pub struct CMsgClientToGcSetServerConVar {
11030    #[prost(string, optional, tag = "1")]
11031    pub convar_name: ::core::option::Option<::prost::alloc::string::String>,
11032    #[prost(string, optional, tag = "2")]
11033    pub convar_value: ::core::option::Option<::prost::alloc::string::String>,
11034    #[prost(fixed64, optional, tag = "3")]
11035    pub lobby_id: ::core::option::Option<u64>,
11036}
11037#[derive(serde::Serialize, serde::Deserialize)]
11038#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11039pub struct CMsgClientToGcSetServerConVarResponse {
11040    #[prost(string, optional, tag = "1")]
11041    pub message: ::core::option::Option<::prost::alloc::string::String>,
11042}
11043#[derive(serde::Serialize, serde::Deserialize)]
11044#[derive(Clone, PartialEq, ::prost::Message)]
11045pub struct CMsgClientToGcPostMatchSurveyResponse {
11046    #[prost(message, repeated, tag = "1")]
11047    pub post_match_survey: ::prost::alloc::vec::Vec<
11048        c_msg_client_to_gc_post_match_survey_response::PostMatchSurvey,
11049    >,
11050    #[prost(uint64, optional, tag = "2")]
11051    pub match_id: ::core::option::Option<u64>,
11052}
11053/// Nested message and enum types in `CMsgClientToGCPostMatchSurveyResponse`.
11054pub mod c_msg_client_to_gc_post_match_survey_response {
11055    #[derive(serde::Serialize, serde::Deserialize)]
11056    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11057    pub struct PostMatchSurvey {
11058        #[prost(uint32, optional, tag = "1")]
11059        pub question_id: ::core::option::Option<u32>,
11060        #[prost(uint32, optional, tag = "2")]
11061        pub response_value: ::core::option::Option<u32>,
11062        #[prost(string, optional, tag = "3")]
11063        pub response_freeform: ::core::option::Option<::prost::alloc::string::String>,
11064    }
11065}
11066#[derive(serde::Serialize, serde::Deserialize)]
11067#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11068pub struct CMsgPartyMmInfo {
11069    #[prost(
11070        enumeration = "EgcPlatform",
11071        optional,
11072        tag = "1",
11073        default = "KEGcPlatformNone"
11074    )]
11075    pub platform: ::core::option::Option<i32>,
11076    #[prost(message, optional, tag = "2")]
11077    pub ping_times: ::core::option::Option<CMsgRegionPingTimesClient>,
11078    #[prost(uint32, optional, tag = "3")]
11079    pub client_version: ::core::option::Option<u32>,
11080    #[prost(
11081        enumeration = "ECitadelRegionMode",
11082        optional,
11083        tag = "4",
11084        default = "KECitadelRegionModeRow"
11085    )]
11086    pub region_mode: ::core::option::Option<i32>,
11087    #[prost(bool, optional, tag = "5")]
11088    pub pgi_verified: ::core::option::Option<bool>,
11089}
11090#[derive(serde::Serialize, serde::Deserialize)]
11091#[derive(Clone, PartialEq, ::prost::Message)]
11092pub struct CMsgClientToGcPartyCreate {
11093    #[prost(message, optional, tag = "1")]
11094    pub party_mm_info: ::core::option::Option<CMsgPartyMmInfo>,
11095    #[prost(uint32, optional, tag = "3")]
11096    pub invite_account_id: ::core::option::Option<u32>,
11097    #[prost(bool, optional, tag = "4")]
11098    pub disable_party_code: ::core::option::Option<bool>,
11099    #[prost(bool, optional, tag = "5")]
11100    pub is_private_lobby: ::core::option::Option<bool>,
11101    #[prost(
11102        enumeration = "ECitadelRegionMode",
11103        optional,
11104        tag = "6",
11105        default = "KECitadelRegionModeRow"
11106    )]
11107    pub region_mode: ::core::option::Option<i32>,
11108    #[prost(string, optional, tag = "7")]
11109    pub server_search_key: ::core::option::Option<::prost::alloc::string::String>,
11110    #[prost(
11111        enumeration = "ECitadelMmPreference",
11112        optional,
11113        tag = "8",
11114        default = "KECitadelMmPreferenceInvalid"
11115    )]
11116    pub mm_preference: ::core::option::Option<i32>,
11117    #[prost(message, optional, tag = "9")]
11118    pub private_lobby_settings: ::core::option::Option<
11119        cso_citadel_party::PrivateLobbySettings,
11120    >,
11121    #[prost(
11122        enumeration = "ECitadelBotDifficulty",
11123        optional,
11124        tag = "10",
11125        default = "KECitadelBotDifficultyNone"
11126    )]
11127    pub bot_difficulty: ::core::option::Option<i32>,
11128    #[prost(string, optional, tag = "11")]
11129    pub hideout_search_key: ::core::option::Option<::prost::alloc::string::String>,
11130    #[prost(bool, optional, tag = "12")]
11131    pub dev_force_hideout: ::core::option::Option<bool>,
11132    #[prost(
11133        enumeration = "ECitadelGameMode",
11134        optional,
11135        tag = "13",
11136        default = "KECitadelGameModeInvalid"
11137    )]
11138    pub game_mode: ::core::option::Option<i32>,
11139}
11140#[derive(serde::Serialize, serde::Deserialize)]
11141#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11142pub struct CMsgClientToGcPartyCreateResponse {
11143    #[prost(
11144        enumeration = "c_msg_client_to_gc_party_create_response::EResponse",
11145        optional,
11146        tag = "1",
11147        default = "KEInternalError"
11148    )]
11149    pub result: ::core::option::Option<i32>,
11150    #[prost(fixed64, optional, tag = "2")]
11151    pub party_id: ::core::option::Option<u64>,
11152}
11153/// Nested message and enum types in `CMsgClientToGCPartyCreateResponse`.
11154pub mod c_msg_client_to_gc_party_create_response {
11155    #[derive(serde::Serialize, serde::Deserialize)]
11156    #[derive(
11157        Clone,
11158        Copy,
11159        Debug,
11160        PartialEq,
11161        Eq,
11162        Hash,
11163        PartialOrd,
11164        Ord,
11165        ::prost::Enumeration
11166    )]
11167    #[repr(i32)]
11168    pub enum EResponse {
11169        KEInternalError = 0,
11170        KESuccess = 1,
11171        KEAlreadyInParty = 2,
11172        KEDisabled = 3,
11173        KEInvalidVersion = 4,
11174        KENoRegionPings = 5,
11175        KETooBusy = 6,
11176        KERateLimited = 7,
11177        KENotFriends = 8,
11178        KERegionInfoNotProvided = 9,
11179        KEDurationControlBlocked = 10,
11180        KEInMatchmaking = 11,
11181        KEPlayerDoesntHaveGame = 12,
11182    }
11183    impl EResponse {
11184        /// String value of the enum field names used in the ProtoBuf definition.
11185        ///
11186        /// The values are not transformed in any way and thus are considered stable
11187        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11188        pub fn as_str_name(&self) -> &'static str {
11189            match self {
11190                Self::KEInternalError => "k_eInternalError",
11191                Self::KESuccess => "k_eSuccess",
11192                Self::KEAlreadyInParty => "k_eAlreadyInParty",
11193                Self::KEDisabled => "k_eDisabled",
11194                Self::KEInvalidVersion => "k_eInvalidVersion",
11195                Self::KENoRegionPings => "k_eNoRegionPings",
11196                Self::KETooBusy => "k_eTooBusy",
11197                Self::KERateLimited => "k_eRateLimited",
11198                Self::KENotFriends => "k_eNotFriends",
11199                Self::KERegionInfoNotProvided => "k_eRegionInfoNotProvided",
11200                Self::KEDurationControlBlocked => "k_eDurationControlBlocked",
11201                Self::KEInMatchmaking => "k_eInMatchmaking",
11202                Self::KEPlayerDoesntHaveGame => "k_ePlayerDoesntHaveGame",
11203            }
11204        }
11205        /// Creates an enum from field names used in the ProtoBuf definition.
11206        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11207            match value {
11208                "k_eInternalError" => Some(Self::KEInternalError),
11209                "k_eSuccess" => Some(Self::KESuccess),
11210                "k_eAlreadyInParty" => Some(Self::KEAlreadyInParty),
11211                "k_eDisabled" => Some(Self::KEDisabled),
11212                "k_eInvalidVersion" => Some(Self::KEInvalidVersion),
11213                "k_eNoRegionPings" => Some(Self::KENoRegionPings),
11214                "k_eTooBusy" => Some(Self::KETooBusy),
11215                "k_eRateLimited" => Some(Self::KERateLimited),
11216                "k_eNotFriends" => Some(Self::KENotFriends),
11217                "k_eRegionInfoNotProvided" => Some(Self::KERegionInfoNotProvided),
11218                "k_eDurationControlBlocked" => Some(Self::KEDurationControlBlocked),
11219                "k_eInMatchmaking" => Some(Self::KEInMatchmaking),
11220                "k_ePlayerDoesntHaveGame" => Some(Self::KEPlayerDoesntHaveGame),
11221                _ => None,
11222            }
11223        }
11224    }
11225}
11226#[derive(serde::Serialize, serde::Deserialize)]
11227#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11228pub struct CMsgClientToGcPartyLeave {
11229    #[prost(fixed64, optional, tag = "1")]
11230    pub party_id: ::core::option::Option<u64>,
11231}
11232#[derive(serde::Serialize, serde::Deserialize)]
11233#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11234pub struct CMsgClientToGcPartyLeaveResponse {
11235    #[prost(
11236        enumeration = "c_msg_client_to_gc_party_leave_response::EResponse",
11237        optional,
11238        tag = "1",
11239        default = "KEInternalError"
11240    )]
11241    pub result: ::core::option::Option<i32>,
11242}
11243/// Nested message and enum types in `CMsgClientToGCPartyLeaveResponse`.
11244pub mod c_msg_client_to_gc_party_leave_response {
11245    #[derive(serde::Serialize, serde::Deserialize)]
11246    #[derive(
11247        Clone,
11248        Copy,
11249        Debug,
11250        PartialEq,
11251        Eq,
11252        Hash,
11253        PartialOrd,
11254        Ord,
11255        ::prost::Enumeration
11256    )]
11257    #[repr(i32)]
11258    pub enum EResponse {
11259        KEInternalError = 0,
11260        KESuccess = 1,
11261        KENotInParty = 2,
11262        KEInMatchMaking = 3,
11263    }
11264    impl EResponse {
11265        /// String value of the enum field names used in the ProtoBuf definition.
11266        ///
11267        /// The values are not transformed in any way and thus are considered stable
11268        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11269        pub fn as_str_name(&self) -> &'static str {
11270            match self {
11271                Self::KEInternalError => "k_eInternalError",
11272                Self::KESuccess => "k_eSuccess",
11273                Self::KENotInParty => "k_eNotInParty",
11274                Self::KEInMatchMaking => "k_eInMatchMaking",
11275            }
11276        }
11277        /// Creates an enum from field names used in the ProtoBuf definition.
11278        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11279            match value {
11280                "k_eInternalError" => Some(Self::KEInternalError),
11281                "k_eSuccess" => Some(Self::KESuccess),
11282                "k_eNotInParty" => Some(Self::KENotInParty),
11283                "k_eInMatchMaking" => Some(Self::KEInMatchMaking),
11284                _ => None,
11285            }
11286        }
11287    }
11288}
11289#[derive(serde::Serialize, serde::Deserialize)]
11290#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11291pub struct CMsgClientToGcPartyJoin {
11292    #[prost(fixed64, optional, tag = "1")]
11293    pub party_id: ::core::option::Option<u64>,
11294    #[prost(bool, optional, tag = "2")]
11295    pub is_rejoin: ::core::option::Option<bool>,
11296    #[prost(message, optional, tag = "3")]
11297    pub party_mm_info: ::core::option::Option<CMsgPartyMmInfo>,
11298}
11299#[derive(serde::Serialize, serde::Deserialize)]
11300#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11301pub struct CMsgClientToGcPartyJoinResponse {
11302    #[prost(
11303        enumeration = "c_msg_client_to_gc_party_join_response::EResponse",
11304        optional,
11305        tag = "1",
11306        default = "KEInternalError"
11307    )]
11308    pub result: ::core::option::Option<i32>,
11309}
11310/// Nested message and enum types in `CMsgClientToGCPartyJoinResponse`.
11311pub mod c_msg_client_to_gc_party_join_response {
11312    #[derive(serde::Serialize, serde::Deserialize)]
11313    #[derive(
11314        Clone,
11315        Copy,
11316        Debug,
11317        PartialEq,
11318        Eq,
11319        Hash,
11320        PartialOrd,
11321        Ord,
11322        ::prost::Enumeration
11323    )]
11324    #[repr(i32)]
11325    pub enum EResponse {
11326        KEInternalError = 0,
11327        KESuccess = 1,
11328        KEAlreadyInParty = 2,
11329        KEDisabled = 3,
11330        KEInvalidPartyId = 4,
11331        KEInvalidPermissions = 5,
11332        KEInvalidVersion = 6,
11333        KENoRegionPings = 7,
11334        KETooBusy = 8,
11335        KEInvalidCode = 9,
11336        KERateLimited = 10,
11337        KERegionInfoNotProvided = 11,
11338        KEDurationControlBlocked = 12,
11339        KEPartyInMatchMaking = 13,
11340        KEInMatchmaking = 14,
11341        KEPartyFull = 15,
11342    }
11343    impl EResponse {
11344        /// String value of the enum field names used in the ProtoBuf definition.
11345        ///
11346        /// The values are not transformed in any way and thus are considered stable
11347        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11348        pub fn as_str_name(&self) -> &'static str {
11349            match self {
11350                Self::KEInternalError => "k_eInternalError",
11351                Self::KESuccess => "k_eSuccess",
11352                Self::KEAlreadyInParty => "k_eAlreadyInParty",
11353                Self::KEDisabled => "k_eDisabled",
11354                Self::KEInvalidPartyId => "k_eInvalidPartyID",
11355                Self::KEInvalidPermissions => "k_eInvalidPermissions",
11356                Self::KEInvalidVersion => "k_eInvalidVersion",
11357                Self::KENoRegionPings => "k_eNoRegionPings",
11358                Self::KETooBusy => "k_eTooBusy",
11359                Self::KEInvalidCode => "k_eInvalidCode",
11360                Self::KERateLimited => "k_eRateLimited",
11361                Self::KERegionInfoNotProvided => "k_eRegionInfoNotProvided",
11362                Self::KEDurationControlBlocked => "k_eDurationControlBlocked",
11363                Self::KEPartyInMatchMaking => "k_ePartyInMatchMaking",
11364                Self::KEInMatchmaking => "k_eInMatchmaking",
11365                Self::KEPartyFull => "k_ePartyFull",
11366            }
11367        }
11368        /// Creates an enum from field names used in the ProtoBuf definition.
11369        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11370            match value {
11371                "k_eInternalError" => Some(Self::KEInternalError),
11372                "k_eSuccess" => Some(Self::KESuccess),
11373                "k_eAlreadyInParty" => Some(Self::KEAlreadyInParty),
11374                "k_eDisabled" => Some(Self::KEDisabled),
11375                "k_eInvalidPartyID" => Some(Self::KEInvalidPartyId),
11376                "k_eInvalidPermissions" => Some(Self::KEInvalidPermissions),
11377                "k_eInvalidVersion" => Some(Self::KEInvalidVersion),
11378                "k_eNoRegionPings" => Some(Self::KENoRegionPings),
11379                "k_eTooBusy" => Some(Self::KETooBusy),
11380                "k_eInvalidCode" => Some(Self::KEInvalidCode),
11381                "k_eRateLimited" => Some(Self::KERateLimited),
11382                "k_eRegionInfoNotProvided" => Some(Self::KERegionInfoNotProvided),
11383                "k_eDurationControlBlocked" => Some(Self::KEDurationControlBlocked),
11384                "k_ePartyInMatchMaking" => Some(Self::KEPartyInMatchMaking),
11385                "k_eInMatchmaking" => Some(Self::KEInMatchmaking),
11386                "k_ePartyFull" => Some(Self::KEPartyFull),
11387                _ => None,
11388            }
11389        }
11390    }
11391}
11392#[derive(serde::Serialize, serde::Deserialize)]
11393#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11394pub struct CMsgClientToGcPartyAction {
11395    #[prost(fixed64, optional, tag = "1")]
11396    pub party_id: ::core::option::Option<u64>,
11397    #[prost(uint32, optional, tag = "2")]
11398    pub target_account_id: ::core::option::Option<u32>,
11399    #[prost(
11400        enumeration = "c_msg_client_to_gc_party_action::EAction",
11401        optional,
11402        tag = "3",
11403        default = "KEKickUser"
11404    )]
11405    pub action_id: ::core::option::Option<i32>,
11406    #[prost(uint64, optional, tag = "4")]
11407    pub uint_value: ::core::option::Option<u64>,
11408    #[prost(bool, optional, tag = "5")]
11409    pub bool_value: ::core::option::Option<bool>,
11410    #[prost(string, optional, tag = "6")]
11411    pub str_value: ::core::option::Option<::prost::alloc::string::String>,
11412}
11413/// Nested message and enum types in `CMsgClientToGCPartyAction`.
11414pub mod c_msg_client_to_gc_party_action {
11415    #[derive(serde::Serialize, serde::Deserialize)]
11416    #[derive(
11417        Clone,
11418        Copy,
11419        Debug,
11420        PartialEq,
11421        Eq,
11422        Hash,
11423        PartialOrd,
11424        Ord,
11425        ::prost::Enumeration
11426    )]
11427    #[repr(i32)]
11428    pub enum EAction {
11429        KEKickUser = 1,
11430        KECancelInvite = 2,
11431        KECancelFindMatch = 3,
11432        KESetPlayerType = 5,
11433        KEEnablePartyCode = 7,
11434        KESetMemberTeam = 8,
11435        KESetChatMode = 9,
11436        KESetPlayerSlot = 10,
11437        KESetSearchKey = 12,
11438        KESetBotDifficulty = 13,
11439        KESetRandomizedLanes = 14,
11440        KESetServerRegion = 15,
11441        KESetPubliclyVisible = 16,
11442        KESetCheatsEnabled = 17,
11443        KESwapTeams = 18,
11444        KEShuffleLobby = 19,
11445        KEShuffleLanes = 20,
11446        KESetDuplicateHeroesEnabled = 21,
11447        KESetDesiresLaningTogether = 23,
11448        KESetMmPreference = 24,
11449        KESetPrivateLobbyGameMode = 25,
11450    }
11451    impl EAction {
11452        /// String value of the enum field names used in the ProtoBuf definition.
11453        ///
11454        /// The values are not transformed in any way and thus are considered stable
11455        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11456        pub fn as_str_name(&self) -> &'static str {
11457            match self {
11458                Self::KEKickUser => "k_eKickUser",
11459                Self::KECancelInvite => "k_eCancelInvite",
11460                Self::KECancelFindMatch => "k_eCancelFindMatch",
11461                Self::KESetPlayerType => "k_eSetPlayerType",
11462                Self::KEEnablePartyCode => "k_eEnablePartyCode",
11463                Self::KESetMemberTeam => "k_eSetMemberTeam",
11464                Self::KESetChatMode => "k_eSetChatMode",
11465                Self::KESetPlayerSlot => "k_eSetPlayerSlot",
11466                Self::KESetSearchKey => "k_eSetSearchKey",
11467                Self::KESetBotDifficulty => "k_eSetBotDifficulty",
11468                Self::KESetRandomizedLanes => "k_eSetRandomizedLanes",
11469                Self::KESetServerRegion => "k_eSetServerRegion",
11470                Self::KESetPubliclyVisible => "k_eSetPubliclyVisible",
11471                Self::KESetCheatsEnabled => "k_eSetCheatsEnabled",
11472                Self::KESwapTeams => "k_eSwapTeams",
11473                Self::KEShuffleLobby => "k_eShuffleLobby",
11474                Self::KEShuffleLanes => "k_eShuffleLanes",
11475                Self::KESetDuplicateHeroesEnabled => "k_eSetDuplicateHeroesEnabled",
11476                Self::KESetDesiresLaningTogether => "k_eSetDesiresLaningTogether",
11477                Self::KESetMmPreference => "k_eSetMMPreference",
11478                Self::KESetPrivateLobbyGameMode => "k_eSetPrivateLobbyGameMode",
11479            }
11480        }
11481        /// Creates an enum from field names used in the ProtoBuf definition.
11482        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11483            match value {
11484                "k_eKickUser" => Some(Self::KEKickUser),
11485                "k_eCancelInvite" => Some(Self::KECancelInvite),
11486                "k_eCancelFindMatch" => Some(Self::KECancelFindMatch),
11487                "k_eSetPlayerType" => Some(Self::KESetPlayerType),
11488                "k_eEnablePartyCode" => Some(Self::KEEnablePartyCode),
11489                "k_eSetMemberTeam" => Some(Self::KESetMemberTeam),
11490                "k_eSetChatMode" => Some(Self::KESetChatMode),
11491                "k_eSetPlayerSlot" => Some(Self::KESetPlayerSlot),
11492                "k_eSetSearchKey" => Some(Self::KESetSearchKey),
11493                "k_eSetBotDifficulty" => Some(Self::KESetBotDifficulty),
11494                "k_eSetRandomizedLanes" => Some(Self::KESetRandomizedLanes),
11495                "k_eSetServerRegion" => Some(Self::KESetServerRegion),
11496                "k_eSetPubliclyVisible" => Some(Self::KESetPubliclyVisible),
11497                "k_eSetCheatsEnabled" => Some(Self::KESetCheatsEnabled),
11498                "k_eSwapTeams" => Some(Self::KESwapTeams),
11499                "k_eShuffleLobby" => Some(Self::KEShuffleLobby),
11500                "k_eShuffleLanes" => Some(Self::KEShuffleLanes),
11501                "k_eSetDuplicateHeroesEnabled" => Some(Self::KESetDuplicateHeroesEnabled),
11502                "k_eSetDesiresLaningTogether" => Some(Self::KESetDesiresLaningTogether),
11503                "k_eSetMMPreference" => Some(Self::KESetMmPreference),
11504                "k_eSetPrivateLobbyGameMode" => Some(Self::KESetPrivateLobbyGameMode),
11505                _ => None,
11506            }
11507        }
11508    }
11509}
11510#[derive(serde::Serialize, serde::Deserialize)]
11511#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11512pub struct CMsgClientToGcPartyActionResponse {
11513    #[prost(
11514        enumeration = "c_msg_client_to_gc_party_action_response::EResponse",
11515        optional,
11516        tag = "1",
11517        default = "KEInternalError"
11518    )]
11519    pub result: ::core::option::Option<i32>,
11520}
11521/// Nested message and enum types in `CMsgClientToGCPartyActionResponse`.
11522pub mod c_msg_client_to_gc_party_action_response {
11523    #[derive(serde::Serialize, serde::Deserialize)]
11524    #[derive(
11525        Clone,
11526        Copy,
11527        Debug,
11528        PartialEq,
11529        Eq,
11530        Hash,
11531        PartialOrd,
11532        Ord,
11533        ::prost::Enumeration
11534    )]
11535    #[repr(i32)]
11536    pub enum EResponse {
11537        KEInternalError = 0,
11538        KESuccess = 1,
11539        KEInvalidPartyId = 2,
11540        KEInvalidPermissions = 3,
11541        KEInvalidTarget = 4,
11542        KEInvalidValue = 5,
11543        KEInMatchMaking = 6,
11544        KEInMatch = 7,
11545        KEDisabled = 8,
11546        KETooBusy = 9,
11547        KERateLimited = 10,
11548        KECannotChangeWhileReady = 12,
11549        KESlotTaken = 13,
11550    }
11551    impl EResponse {
11552        /// String value of the enum field names used in the ProtoBuf definition.
11553        ///
11554        /// The values are not transformed in any way and thus are considered stable
11555        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11556        pub fn as_str_name(&self) -> &'static str {
11557            match self {
11558                Self::KEInternalError => "k_eInternalError",
11559                Self::KESuccess => "k_eSuccess",
11560                Self::KEInvalidPartyId => "k_eInvalidPartyID",
11561                Self::KEInvalidPermissions => "k_eInvalidPermissions",
11562                Self::KEInvalidTarget => "k_eInvalidTarget",
11563                Self::KEInvalidValue => "k_eInvalidValue",
11564                Self::KEInMatchMaking => "k_eInMatchMaking",
11565                Self::KEInMatch => "k_eInMatch",
11566                Self::KEDisabled => "k_eDisabled",
11567                Self::KETooBusy => "k_eTooBusy",
11568                Self::KERateLimited => "k_eRateLimited",
11569                Self::KECannotChangeWhileReady => "k_eCannotChangeWhileReady",
11570                Self::KESlotTaken => "k_eSlotTaken",
11571            }
11572        }
11573        /// Creates an enum from field names used in the ProtoBuf definition.
11574        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11575            match value {
11576                "k_eInternalError" => Some(Self::KEInternalError),
11577                "k_eSuccess" => Some(Self::KESuccess),
11578                "k_eInvalidPartyID" => Some(Self::KEInvalidPartyId),
11579                "k_eInvalidPermissions" => Some(Self::KEInvalidPermissions),
11580                "k_eInvalidTarget" => Some(Self::KEInvalidTarget),
11581                "k_eInvalidValue" => Some(Self::KEInvalidValue),
11582                "k_eInMatchMaking" => Some(Self::KEInMatchMaking),
11583                "k_eInMatch" => Some(Self::KEInMatch),
11584                "k_eDisabled" => Some(Self::KEDisabled),
11585                "k_eTooBusy" => Some(Self::KETooBusy),
11586                "k_eRateLimited" => Some(Self::KERateLimited),
11587                "k_eCannotChangeWhileReady" => Some(Self::KECannotChangeWhileReady),
11588                "k_eSlotTaken" => Some(Self::KESlotTaken),
11589                _ => None,
11590            }
11591        }
11592    }
11593}
11594#[derive(serde::Serialize, serde::Deserialize)]
11595#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11596pub struct CMsgClientToGcPartySetMode {
11597    #[prost(fixed64, optional, tag = "1")]
11598    pub party_id: ::core::option::Option<u64>,
11599    #[prost(
11600        enumeration = "ECitadelMatchMode",
11601        optional,
11602        tag = "2",
11603        default = "KECitadelMatchModeInvalid"
11604    )]
11605    pub match_mode: ::core::option::Option<i32>,
11606    #[prost(
11607        enumeration = "ECitadelGameMode",
11608        optional,
11609        tag = "3",
11610        default = "KECitadelGameModeInvalid"
11611    )]
11612    pub game_mode: ::core::option::Option<i32>,
11613    #[prost(
11614        enumeration = "ECitadelBotDifficulty",
11615        optional,
11616        tag = "4",
11617        default = "KECitadelBotDifficultyNone"
11618    )]
11619    pub bot_difficulty: ::core::option::Option<i32>,
11620    #[prost(string, optional, tag = "5")]
11621    pub dev_server_command: ::core::option::Option<::prost::alloc::string::String>,
11622    #[prost(
11623        enumeration = "ECitadelRegionMode",
11624        optional,
11625        tag = "6",
11626        default = "KECitadelRegionModeRow"
11627    )]
11628    pub region_mode: ::core::option::Option<i32>,
11629}
11630#[derive(serde::Serialize, serde::Deserialize)]
11631#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11632pub struct CMsgClientToGcPartySetModeResponse {
11633    #[prost(
11634        enumeration = "c_msg_client_to_gc_party_set_mode_response::EResponse",
11635        optional,
11636        tag = "1",
11637        default = "KEInternalError"
11638    )]
11639    pub result: ::core::option::Option<i32>,
11640    #[prost(uint32, optional, tag = "2")]
11641    pub time_stamp: ::core::option::Option<u32>,
11642    #[prost(uint32, optional, tag = "3")]
11643    pub account_id: ::core::option::Option<u32>,
11644}
11645/// Nested message and enum types in `CMsgClientToGCPartySetModeResponse`.
11646pub mod c_msg_client_to_gc_party_set_mode_response {
11647    #[derive(serde::Serialize, serde::Deserialize)]
11648    #[derive(
11649        Clone,
11650        Copy,
11651        Debug,
11652        PartialEq,
11653        Eq,
11654        Hash,
11655        PartialOrd,
11656        Ord,
11657        ::prost::Enumeration
11658    )]
11659    #[repr(i32)]
11660    pub enum EResponse {
11661        KEInternalError = 0,
11662        KESuccess = 1,
11663        KEInvalidPartyId = 2,
11664        KEInvalidPermissions = 3,
11665        KEPlayerPermanentBanned = 4,
11666        KEInvalidValue = 5,
11667        KEInMatchMaking = 6,
11668        KEInMatch = 7,
11669        KEDisabled = 8,
11670        KETooBusy = 9,
11671        KERateLimited = 10,
11672        KEAlreadyDrafting = 11,
11673        KECannotChangeWhileReady = 12,
11674        KETooFewPlayers = 13,
11675        KETooManyPlayers = 14,
11676        KEPlayerBanned = 15,
11677        KETooManyHighMmr = 16,
11678        KEFiveStacksNotAllowed = 18,
11679        KERankedMmNotOpen = 19,
11680        KERankedNotunlocked = 20,
11681        KEHeroLabsMmNotOpen = 21,
11682        KEHeroLabsNotUnlocked = 22,
11683        KENoHeroLabsWhileInLowPri = 23,
11684        KENoHighRangeFiveStack = 24,
11685        KEAccountLocked = 25,
11686    }
11687    impl EResponse {
11688        /// String value of the enum field names used in the ProtoBuf definition.
11689        ///
11690        /// The values are not transformed in any way and thus are considered stable
11691        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11692        pub fn as_str_name(&self) -> &'static str {
11693            match self {
11694                Self::KEInternalError => "k_eInternalError",
11695                Self::KESuccess => "k_eSuccess",
11696                Self::KEInvalidPartyId => "k_eInvalidPartyID",
11697                Self::KEInvalidPermissions => "k_eInvalidPermissions",
11698                Self::KEPlayerPermanentBanned => "k_ePlayerPermanentBanned",
11699                Self::KEInvalidValue => "k_eInvalidValue",
11700                Self::KEInMatchMaking => "k_eInMatchMaking",
11701                Self::KEInMatch => "k_eInMatch",
11702                Self::KEDisabled => "k_eDisabled",
11703                Self::KETooBusy => "k_eTooBusy",
11704                Self::KERateLimited => "k_eRateLimited",
11705                Self::KEAlreadyDrafting => "k_eAlreadyDrafting",
11706                Self::KECannotChangeWhileReady => "k_eCannotChangeWhileReady",
11707                Self::KETooFewPlayers => "k_eTooFewPlayers",
11708                Self::KETooManyPlayers => "k_eTooManyPlayers",
11709                Self::KEPlayerBanned => "k_ePlayerBanned",
11710                Self::KETooManyHighMmr => "k_eTooManyHighMMR",
11711                Self::KEFiveStacksNotAllowed => "k_eFiveStacksNotAllowed",
11712                Self::KERankedMmNotOpen => "k_eRankedMMNotOpen",
11713                Self::KERankedNotunlocked => "k_eRankedNotunlocked",
11714                Self::KEHeroLabsMmNotOpen => "k_eHeroLabsMMNotOpen",
11715                Self::KEHeroLabsNotUnlocked => "k_eHeroLabsNotUnlocked",
11716                Self::KENoHeroLabsWhileInLowPri => "k_eNoHeroLabsWhileInLowPri",
11717                Self::KENoHighRangeFiveStack => "k_eNoHighRangeFiveStack",
11718                Self::KEAccountLocked => "k_eAccountLocked",
11719            }
11720        }
11721        /// Creates an enum from field names used in the ProtoBuf definition.
11722        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11723            match value {
11724                "k_eInternalError" => Some(Self::KEInternalError),
11725                "k_eSuccess" => Some(Self::KESuccess),
11726                "k_eInvalidPartyID" => Some(Self::KEInvalidPartyId),
11727                "k_eInvalidPermissions" => Some(Self::KEInvalidPermissions),
11728                "k_ePlayerPermanentBanned" => Some(Self::KEPlayerPermanentBanned),
11729                "k_eInvalidValue" => Some(Self::KEInvalidValue),
11730                "k_eInMatchMaking" => Some(Self::KEInMatchMaking),
11731                "k_eInMatch" => Some(Self::KEInMatch),
11732                "k_eDisabled" => Some(Self::KEDisabled),
11733                "k_eTooBusy" => Some(Self::KETooBusy),
11734                "k_eRateLimited" => Some(Self::KERateLimited),
11735                "k_eAlreadyDrafting" => Some(Self::KEAlreadyDrafting),
11736                "k_eCannotChangeWhileReady" => Some(Self::KECannotChangeWhileReady),
11737                "k_eTooFewPlayers" => Some(Self::KETooFewPlayers),
11738                "k_eTooManyPlayers" => Some(Self::KETooManyPlayers),
11739                "k_ePlayerBanned" => Some(Self::KEPlayerBanned),
11740                "k_eTooManyHighMMR" => Some(Self::KETooManyHighMmr),
11741                "k_eFiveStacksNotAllowed" => Some(Self::KEFiveStacksNotAllowed),
11742                "k_eRankedMMNotOpen" => Some(Self::KERankedMmNotOpen),
11743                "k_eRankedNotunlocked" => Some(Self::KERankedNotunlocked),
11744                "k_eHeroLabsMMNotOpen" => Some(Self::KEHeroLabsMmNotOpen),
11745                "k_eHeroLabsNotUnlocked" => Some(Self::KEHeroLabsNotUnlocked),
11746                "k_eNoHeroLabsWhileInLowPri" => Some(Self::KENoHeroLabsWhileInLowPri),
11747                "k_eNoHighRangeFiveStack" => Some(Self::KENoHighRangeFiveStack),
11748                "k_eAccountLocked" => Some(Self::KEAccountLocked),
11749                _ => None,
11750            }
11751        }
11752    }
11753}
11754#[derive(serde::Serialize, serde::Deserialize)]
11755#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11756pub struct CMsgClientToGcPartyStartMatch {
11757    #[prost(fixed64, optional, tag = "1")]
11758    pub party_id: ::core::option::Option<u64>,
11759}
11760#[derive(serde::Serialize, serde::Deserialize)]
11761#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11762pub struct CMsgClientToGcPartyStartMatchResponse {
11763    #[prost(
11764        enumeration = "c_msg_client_to_gc_party_start_match_response::EResponse",
11765        optional,
11766        tag = "1",
11767        default = "KEInternalError"
11768    )]
11769    pub result: ::core::option::Option<i32>,
11770    #[prost(uint32, optional, tag = "2")]
11771    pub account_id: ::core::option::Option<u32>,
11772}
11773/// Nested message and enum types in `CMsgClientToGCPartyStartMatchResponse`.
11774pub mod c_msg_client_to_gc_party_start_match_response {
11775    #[derive(serde::Serialize, serde::Deserialize)]
11776    #[derive(
11777        Clone,
11778        Copy,
11779        Debug,
11780        PartialEq,
11781        Eq,
11782        Hash,
11783        PartialOrd,
11784        Ord,
11785        ::prost::Enumeration
11786    )]
11787    #[repr(i32)]
11788    pub enum EResponse {
11789        KEInternalError = 0,
11790        KESuccess = 1,
11791        KEDisabled = 2,
11792        KEInvalidPartyId = 3,
11793        KEInvalidPermissions = 4,
11794        KETooBusy = 5,
11795        KEInMatchmaking = 6,
11796        KEInMatch = 7,
11797        KEInvalidVersion = 10,
11798        KEPlayersNotReady = 11,
11799        KECannotSelectRegion = 12,
11800        KENotAllPlayersAvailable = 13,
11801        KETooManyPlayersForMm = 14,
11802        KETooManyPlayersForPrivate = 15,
11803        KETooManySpectatorsForMm = 16,
11804        KETooManySpectatorsForPrivate = 17,
11805        KETooFewPlayersForMm = 18,
11806        KETooFewPlayersForPrivate = 19,
11807        KEMismatchedVersions = 20,
11808        KEInvalidPartyMatchMode = 21,
11809        KEPlayerBannedFromMode = 22,
11810        KETooManyPlayersOnTeam = 23,
11811        KEInvalidTeam = 24,
11812        KEInvalidHeroLineup = 25,
11813        KEInvalidGroupHeroLineup = 26,
11814        KEUnassignedPlayers = 27,
11815        KERankedMmNotOpen = 28,
11816        KEHeroLabsMmNotOpen = 29,
11817        KEHeroLabsNotUnlocked = 30,
11818        KENoHeroLabsWhileInLowPri = 31,
11819        KEUnverifiedPgi = 32,
11820    }
11821    impl EResponse {
11822        /// String value of the enum field names used in the ProtoBuf definition.
11823        ///
11824        /// The values are not transformed in any way and thus are considered stable
11825        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11826        pub fn as_str_name(&self) -> &'static str {
11827            match self {
11828                Self::KEInternalError => "k_eInternalError",
11829                Self::KESuccess => "k_eSuccess",
11830                Self::KEDisabled => "k_eDisabled",
11831                Self::KEInvalidPartyId => "k_eInvalidPartyID",
11832                Self::KEInvalidPermissions => "k_eInvalidPermissions",
11833                Self::KETooBusy => "k_eTooBusy",
11834                Self::KEInMatchmaking => "k_eInMatchmaking",
11835                Self::KEInMatch => "k_eInMatch",
11836                Self::KEInvalidVersion => "k_eInvalidVersion",
11837                Self::KEPlayersNotReady => "k_ePlayersNotReady",
11838                Self::KECannotSelectRegion => "k_eCannotSelectRegion",
11839                Self::KENotAllPlayersAvailable => "k_eNotAllPlayersAvailable",
11840                Self::KETooManyPlayersForMm => "k_eTooManyPlayersForMM",
11841                Self::KETooManyPlayersForPrivate => "k_eTooManyPlayersForPrivate",
11842                Self::KETooManySpectatorsForMm => "k_eTooManySpectatorsForMM",
11843                Self::KETooManySpectatorsForPrivate => "k_eTooManySpectatorsForPrivate",
11844                Self::KETooFewPlayersForMm => "k_eTooFewPlayersForMM",
11845                Self::KETooFewPlayersForPrivate => "k_eTooFewPlayersForPrivate",
11846                Self::KEMismatchedVersions => "k_eMismatchedVersions",
11847                Self::KEInvalidPartyMatchMode => "k_eInvalidPartyMatchMode",
11848                Self::KEPlayerBannedFromMode => "k_ePlayerBannedFromMode",
11849                Self::KETooManyPlayersOnTeam => "k_eTooManyPlayersOnTeam",
11850                Self::KEInvalidTeam => "k_eInvalidTeam",
11851                Self::KEInvalidHeroLineup => "k_eInvalidHeroLineup",
11852                Self::KEInvalidGroupHeroLineup => "k_eInvalidGroupHeroLineup",
11853                Self::KEUnassignedPlayers => "k_eUnassignedPlayers",
11854                Self::KERankedMmNotOpen => "k_eRankedMMNotOpen",
11855                Self::KEHeroLabsMmNotOpen => "k_eHeroLabsMMNotOpen",
11856                Self::KEHeroLabsNotUnlocked => "k_eHeroLabsNotUnlocked",
11857                Self::KENoHeroLabsWhileInLowPri => "k_eNoHeroLabsWhileInLowPri",
11858                Self::KEUnverifiedPgi => "k_eUnverifiedPGI",
11859            }
11860        }
11861        /// Creates an enum from field names used in the ProtoBuf definition.
11862        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11863            match value {
11864                "k_eInternalError" => Some(Self::KEInternalError),
11865                "k_eSuccess" => Some(Self::KESuccess),
11866                "k_eDisabled" => Some(Self::KEDisabled),
11867                "k_eInvalidPartyID" => Some(Self::KEInvalidPartyId),
11868                "k_eInvalidPermissions" => Some(Self::KEInvalidPermissions),
11869                "k_eTooBusy" => Some(Self::KETooBusy),
11870                "k_eInMatchmaking" => Some(Self::KEInMatchmaking),
11871                "k_eInMatch" => Some(Self::KEInMatch),
11872                "k_eInvalidVersion" => Some(Self::KEInvalidVersion),
11873                "k_ePlayersNotReady" => Some(Self::KEPlayersNotReady),
11874                "k_eCannotSelectRegion" => Some(Self::KECannotSelectRegion),
11875                "k_eNotAllPlayersAvailable" => Some(Self::KENotAllPlayersAvailable),
11876                "k_eTooManyPlayersForMM" => Some(Self::KETooManyPlayersForMm),
11877                "k_eTooManyPlayersForPrivate" => Some(Self::KETooManyPlayersForPrivate),
11878                "k_eTooManySpectatorsForMM" => Some(Self::KETooManySpectatorsForMm),
11879                "k_eTooManySpectatorsForPrivate" => {
11880                    Some(Self::KETooManySpectatorsForPrivate)
11881                }
11882                "k_eTooFewPlayersForMM" => Some(Self::KETooFewPlayersForMm),
11883                "k_eTooFewPlayersForPrivate" => Some(Self::KETooFewPlayersForPrivate),
11884                "k_eMismatchedVersions" => Some(Self::KEMismatchedVersions),
11885                "k_eInvalidPartyMatchMode" => Some(Self::KEInvalidPartyMatchMode),
11886                "k_ePlayerBannedFromMode" => Some(Self::KEPlayerBannedFromMode),
11887                "k_eTooManyPlayersOnTeam" => Some(Self::KETooManyPlayersOnTeam),
11888                "k_eInvalidTeam" => Some(Self::KEInvalidTeam),
11889                "k_eInvalidHeroLineup" => Some(Self::KEInvalidHeroLineup),
11890                "k_eInvalidGroupHeroLineup" => Some(Self::KEInvalidGroupHeroLineup),
11891                "k_eUnassignedPlayers" => Some(Self::KEUnassignedPlayers),
11892                "k_eRankedMMNotOpen" => Some(Self::KERankedMmNotOpen),
11893                "k_eHeroLabsMMNotOpen" => Some(Self::KEHeroLabsMmNotOpen),
11894                "k_eHeroLabsNotUnlocked" => Some(Self::KEHeroLabsNotUnlocked),
11895                "k_eNoHeroLabsWhileInLowPri" => Some(Self::KENoHeroLabsWhileInLowPri),
11896                "k_eUnverifiedPGI" => Some(Self::KEUnverifiedPgi),
11897                _ => None,
11898            }
11899        }
11900    }
11901}
11902#[derive(serde::Serialize, serde::Deserialize)]
11903#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11904pub struct CMsgClientToGcPartyInviteUser {
11905    #[prost(fixed64, optional, tag = "1")]
11906    pub party_id: ::core::option::Option<u64>,
11907    #[prost(uint32, optional, tag = "2")]
11908    pub invite_account_id: ::core::option::Option<u32>,
11909}
11910#[derive(serde::Serialize, serde::Deserialize)]
11911#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11912pub struct CMsgClientToGcPartyInviteUserResponse {
11913    #[prost(
11914        enumeration = "c_msg_client_to_gc_party_invite_user_response::EResponse",
11915        optional,
11916        tag = "1",
11917        default = "KEInternalError"
11918    )]
11919    pub result: ::core::option::Option<i32>,
11920    #[prost(bool, optional, tag = "2")]
11921    pub user_online: ::core::option::Option<bool>,
11922}
11923/// Nested message and enum types in `CMsgClientToGCPartyInviteUserResponse`.
11924pub mod c_msg_client_to_gc_party_invite_user_response {
11925    #[derive(serde::Serialize, serde::Deserialize)]
11926    #[derive(
11927        Clone,
11928        Copy,
11929        Debug,
11930        PartialEq,
11931        Eq,
11932        Hash,
11933        PartialOrd,
11934        Ord,
11935        ::prost::Enumeration
11936    )]
11937    #[repr(i32)]
11938    pub enum EResponse {
11939        KEInternalError = 0,
11940        KESuccess = 1,
11941        KEAlreadyInvited = 2,
11942        KEInvalidPermissions = 3,
11943        KEInvalidPartyId = 4,
11944        KEDisabled = 5,
11945        KETooManyInvites = 6,
11946        KENotFriends = 7,
11947        KETooBusy = 8,
11948        KERateLimited = 9,
11949        KEInvalidPartyMode = 10,
11950        KEPlayerDoesntHaveGame = 11,
11951    }
11952    impl EResponse {
11953        /// String value of the enum field names used in the ProtoBuf definition.
11954        ///
11955        /// The values are not transformed in any way and thus are considered stable
11956        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11957        pub fn as_str_name(&self) -> &'static str {
11958            match self {
11959                Self::KEInternalError => "k_eInternalError",
11960                Self::KESuccess => "k_eSuccess",
11961                Self::KEAlreadyInvited => "k_eAlreadyInvited",
11962                Self::KEInvalidPermissions => "k_eInvalidPermissions",
11963                Self::KEInvalidPartyId => "k_eInvalidPartyID",
11964                Self::KEDisabled => "k_eDisabled",
11965                Self::KETooManyInvites => "k_eTooManyInvites",
11966                Self::KENotFriends => "k_eNotFriends",
11967                Self::KETooBusy => "k_eTooBusy",
11968                Self::KERateLimited => "k_eRateLimited",
11969                Self::KEInvalidPartyMode => "k_eInvalidPartyMode",
11970                Self::KEPlayerDoesntHaveGame => "k_ePlayerDoesntHaveGame",
11971            }
11972        }
11973        /// Creates an enum from field names used in the ProtoBuf definition.
11974        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11975            match value {
11976                "k_eInternalError" => Some(Self::KEInternalError),
11977                "k_eSuccess" => Some(Self::KESuccess),
11978                "k_eAlreadyInvited" => Some(Self::KEAlreadyInvited),
11979                "k_eInvalidPermissions" => Some(Self::KEInvalidPermissions),
11980                "k_eInvalidPartyID" => Some(Self::KEInvalidPartyId),
11981                "k_eDisabled" => Some(Self::KEDisabled),
11982                "k_eTooManyInvites" => Some(Self::KETooManyInvites),
11983                "k_eNotFriends" => Some(Self::KENotFriends),
11984                "k_eTooBusy" => Some(Self::KETooBusy),
11985                "k_eRateLimited" => Some(Self::KERateLimited),
11986                "k_eInvalidPartyMode" => Some(Self::KEInvalidPartyMode),
11987                "k_ePlayerDoesntHaveGame" => Some(Self::KEPlayerDoesntHaveGame),
11988                _ => None,
11989            }
11990        }
11991    }
11992}
11993#[derive(serde::Serialize, serde::Deserialize)]
11994#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11995pub struct CMsgGcToClientPartyEvent {
11996    #[prost(fixed64, optional, tag = "1")]
11997    pub party_id: ::core::option::Option<u64>,
11998    #[prost(
11999        enumeration = "c_msg_gc_to_client_party_event::EEvent",
12000        optional,
12001        tag = "2",
12002        default = "KEPlayerKicked"
12003    )]
12004    pub event: ::core::option::Option<i32>,
12005    #[prost(uint32, optional, tag = "3")]
12006    pub initiator_account_id: ::core::option::Option<u32>,
12007    #[prost(uint32, optional, tag = "4")]
12008    pub target_account_id: ::core::option::Option<u32>,
12009    #[prost(bytes = "vec", optional, tag = "5")]
12010    pub bytes_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
12011    #[prost(string, optional, tag = "6")]
12012    pub str_data: ::core::option::Option<::prost::alloc::string::String>,
12013    #[prost(uint64, optional, tag = "7")]
12014    pub uint_data: ::core::option::Option<u64>,
12015}
12016/// Nested message and enum types in `CMsgGCToClientPartyEvent`.
12017pub mod c_msg_gc_to_client_party_event {
12018    #[derive(serde::Serialize, serde::Deserialize)]
12019    #[derive(
12020        Clone,
12021        Copy,
12022        Debug,
12023        PartialEq,
12024        Eq,
12025        Hash,
12026        PartialOrd,
12027        Ord,
12028        ::prost::Enumeration
12029    )]
12030    #[repr(i32)]
12031    pub enum EEvent {
12032        KEPlayerKicked = 1,
12033        KEJoinedParty = 3,
12034        KEMatchCompleted = 4,
12035        KEMatchMakingStoppedUser = 5,
12036        KEMatchMakingStoppedVersion = 6,
12037        KEMatchMakingStoppedNoServerRegion = 7,
12038        KELeftParty = 8,
12039        KEDeclinedInvite = 9,
12040        KEMatchMakingStoppedFailedOther = 10,
12041        KEDraftEndedUser = 11,
12042        KEStartDraftMmFailed = 12,
12043        KEMatchMakingStoppedCancelled = 13,
12044    }
12045    impl EEvent {
12046        /// String value of the enum field names used in the ProtoBuf definition.
12047        ///
12048        /// The values are not transformed in any way and thus are considered stable
12049        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12050        pub fn as_str_name(&self) -> &'static str {
12051            match self {
12052                Self::KEPlayerKicked => "k_ePlayerKicked",
12053                Self::KEJoinedParty => "k_eJoinedParty",
12054                Self::KEMatchCompleted => "k_eMatchCompleted",
12055                Self::KEMatchMakingStoppedUser => "k_eMatchMakingStopped_User",
12056                Self::KEMatchMakingStoppedVersion => "k_eMatchMakingStopped_Version",
12057                Self::KEMatchMakingStoppedNoServerRegion => {
12058                    "k_eMatchMakingStopped_NoServerRegion"
12059                }
12060                Self::KELeftParty => "k_eLeftParty",
12061                Self::KEDeclinedInvite => "k_eDeclinedInvite",
12062                Self::KEMatchMakingStoppedFailedOther => {
12063                    "k_eMatchMakingStopped_FailedOther"
12064                }
12065                Self::KEDraftEndedUser => "k_eDraftEnded_User",
12066                Self::KEStartDraftMmFailed => "k_eStartDraftMMFailed",
12067                Self::KEMatchMakingStoppedCancelled => "k_eMatchMakingStopped_Cancelled",
12068            }
12069        }
12070        /// Creates an enum from field names used in the ProtoBuf definition.
12071        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12072            match value {
12073                "k_ePlayerKicked" => Some(Self::KEPlayerKicked),
12074                "k_eJoinedParty" => Some(Self::KEJoinedParty),
12075                "k_eMatchCompleted" => Some(Self::KEMatchCompleted),
12076                "k_eMatchMakingStopped_User" => Some(Self::KEMatchMakingStoppedUser),
12077                "k_eMatchMakingStopped_Version" => {
12078                    Some(Self::KEMatchMakingStoppedVersion)
12079                }
12080                "k_eMatchMakingStopped_NoServerRegion" => {
12081                    Some(Self::KEMatchMakingStoppedNoServerRegion)
12082                }
12083                "k_eLeftParty" => Some(Self::KELeftParty),
12084                "k_eDeclinedInvite" => Some(Self::KEDeclinedInvite),
12085                "k_eMatchMakingStopped_FailedOther" => {
12086                    Some(Self::KEMatchMakingStoppedFailedOther)
12087                }
12088                "k_eDraftEnded_User" => Some(Self::KEDraftEndedUser),
12089                "k_eStartDraftMMFailed" => Some(Self::KEStartDraftMmFailed),
12090                "k_eMatchMakingStopped_Cancelled" => {
12091                    Some(Self::KEMatchMakingStoppedCancelled)
12092                }
12093                _ => None,
12094            }
12095        }
12096    }
12097}
12098#[derive(serde::Serialize, serde::Deserialize)]
12099#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12100pub struct CMsgGcToClientCanRejoinParty {
12101    #[prost(fixed64, optional, tag = "1")]
12102    pub party_id: ::core::option::Option<u64>,
12103}
12104#[derive(serde::Serialize, serde::Deserialize)]
12105#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
12106pub struct CMsgClientToGcPartyJoinViaCode {
12107    #[prost(uint64, optional, tag = "1")]
12108    pub join_code: ::core::option::Option<u64>,
12109    #[prost(message, optional, tag = "2")]
12110    pub party_mm_info: ::core::option::Option<CMsgPartyMmInfo>,
12111}
12112#[derive(serde::Serialize, serde::Deserialize)]
12113#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12114pub struct CMsgClientToGcPartyJoinViaCodeResponse {
12115    #[prost(
12116        enumeration = "c_msg_client_to_gc_party_join_response::EResponse",
12117        optional,
12118        tag = "1",
12119        default = "KEInternalError"
12120    )]
12121    pub result: ::core::option::Option<i32>,
12122    #[prost(fixed64, optional, tag = "2")]
12123    pub party_id: ::core::option::Option<u64>,
12124}
12125#[derive(serde::Serialize, serde::Deserialize)]
12126#[derive(Clone, PartialEq, ::prost::Message)]
12127pub struct CMsgClientToGcPartySetReadyState {
12128    #[prost(fixed64, optional, tag = "1")]
12129    pub party_id: ::core::option::Option<u64>,
12130    #[prost(bool, optional, tag = "2")]
12131    pub ready_state: ::core::option::Option<bool>,
12132    #[prost(message, optional, tag = "3")]
12133    pub hero_roster: ::core::option::Option<CMsgHeroSelectionMatchInfo>,
12134}
12135#[derive(serde::Serialize, serde::Deserialize)]
12136#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12137pub struct CMsgClientToGcPartySetReadyStateResponse {
12138    #[prost(
12139        enumeration = "c_msg_client_to_gc_party_set_ready_state_response::EResponse",
12140        optional,
12141        tag = "1",
12142        default = "KEInternalError"
12143    )]
12144    pub result: ::core::option::Option<i32>,
12145}
12146/// Nested message and enum types in `CMsgClientToGCPartySetReadyStateResponse`.
12147pub mod c_msg_client_to_gc_party_set_ready_state_response {
12148    #[derive(serde::Serialize, serde::Deserialize)]
12149    #[derive(
12150        Clone,
12151        Copy,
12152        Debug,
12153        PartialEq,
12154        Eq,
12155        Hash,
12156        PartialOrd,
12157        Ord,
12158        ::prost::Enumeration
12159    )]
12160    #[repr(i32)]
12161    pub enum EResponse {
12162        KEInternalError = 0,
12163        KESuccess = 1,
12164        KEInvalidPermissions = 2,
12165        KEDisabled = 3,
12166        KETooBusy = 4,
12167        KERateLimited = 5,
12168        KEInvalidRoster = 6,
12169        KEMatchForming = 7,
12170        KEInvalidGroupRoster = 8,
12171        KEInMatch = 9,
12172        KEHeroesNotUnlocked = 10,
12173        KEModeLocked = 11,
12174        KEModeBanned = 12,
12175        KETooManyLimitedHeroes = 13,
12176    }
12177    impl EResponse {
12178        /// String value of the enum field names used in the ProtoBuf definition.
12179        ///
12180        /// The values are not transformed in any way and thus are considered stable
12181        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12182        pub fn as_str_name(&self) -> &'static str {
12183            match self {
12184                Self::KEInternalError => "k_eInternalError",
12185                Self::KESuccess => "k_eSuccess",
12186                Self::KEInvalidPermissions => "k_eInvalidPermissions",
12187                Self::KEDisabled => "k_eDisabled",
12188                Self::KETooBusy => "k_eTooBusy",
12189                Self::KERateLimited => "k_eRateLimited",
12190                Self::KEInvalidRoster => "k_eInvalidRoster",
12191                Self::KEMatchForming => "k_eMatchForming",
12192                Self::KEInvalidGroupRoster => "k_eInvalidGroupRoster",
12193                Self::KEInMatch => "k_eInMatch",
12194                Self::KEHeroesNotUnlocked => "k_eHeroesNotUnlocked",
12195                Self::KEModeLocked => "k_eModeLocked",
12196                Self::KEModeBanned => "k_eModeBanned",
12197                Self::KETooManyLimitedHeroes => "k_eTooManyLimitedHeroes",
12198            }
12199        }
12200        /// Creates an enum from field names used in the ProtoBuf definition.
12201        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12202            match value {
12203                "k_eInternalError" => Some(Self::KEInternalError),
12204                "k_eSuccess" => Some(Self::KESuccess),
12205                "k_eInvalidPermissions" => Some(Self::KEInvalidPermissions),
12206                "k_eDisabled" => Some(Self::KEDisabled),
12207                "k_eTooBusy" => Some(Self::KETooBusy),
12208                "k_eRateLimited" => Some(Self::KERateLimited),
12209                "k_eInvalidRoster" => Some(Self::KEInvalidRoster),
12210                "k_eMatchForming" => Some(Self::KEMatchForming),
12211                "k_eInvalidGroupRoster" => Some(Self::KEInvalidGroupRoster),
12212                "k_eInMatch" => Some(Self::KEInMatch),
12213                "k_eHeroesNotUnlocked" => Some(Self::KEHeroesNotUnlocked),
12214                "k_eModeLocked" => Some(Self::KEModeLocked),
12215                "k_eModeBanned" => Some(Self::KEModeBanned),
12216                "k_eTooManyLimitedHeroes" => Some(Self::KETooManyLimitedHeroes),
12217                _ => None,
12218            }
12219        }
12220    }
12221}
12222#[derive(serde::Serialize, serde::Deserialize)]
12223#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12224pub struct CMsgClientToGcDevSetMmBias {
12225    #[prost(uint32, optional, tag = "1")]
12226    pub account_id: ::core::option::Option<u32>,
12227    #[prost(uint32, optional, tag = "2")]
12228    pub value: ::core::option::Option<u32>,
12229}
12230#[derive(serde::Serialize, serde::Deserialize)]
12231#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12232pub struct CMsgClientToGcGetMatchHistory {
12233    #[prost(uint32, optional, tag = "1")]
12234    pub account_id: ::core::option::Option<u32>,
12235    #[prost(uint64, optional, tag = "2")]
12236    pub continue_cursor: ::core::option::Option<u64>,
12237    #[prost(
12238        enumeration = "ECitadelGameMode",
12239        optional,
12240        tag = "4",
12241        default = "KECitadelGameModeInvalid"
12242    )]
12243    pub game_mode: ::core::option::Option<i32>,
12244    #[prost(
12245        enumeration = "ECitadelMatchMode",
12246        optional,
12247        tag = "5",
12248        default = "KECitadelMatchModeInvalid"
12249    )]
12250    pub match_mode: ::core::option::Option<i32>,
12251}
12252#[derive(serde::Serialize, serde::Deserialize)]
12253#[derive(Clone, PartialEq, ::prost::Message)]
12254pub struct CMsgClientToGcGetMatchHistoryResponse {
12255    #[prost(
12256        enumeration = "c_msg_client_to_gc_get_match_history_response::EResult",
12257        optional,
12258        tag = "1",
12259        default = "KEResultInternalError"
12260    )]
12261    pub result: ::core::option::Option<i32>,
12262    #[prost(uint64, optional, tag = "2")]
12263    pub continue_cursor: ::core::option::Option<u64>,
12264    #[prost(message, repeated, tag = "3")]
12265    pub matches: ::prost::alloc::vec::Vec<
12266        c_msg_client_to_gc_get_match_history_response::Match,
12267    >,
12268}
12269/// Nested message and enum types in `CMsgClientToGCGetMatchHistoryResponse`.
12270pub mod c_msg_client_to_gc_get_match_history_response {
12271    #[derive(serde::Serialize, serde::Deserialize)]
12272    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12273    pub struct Match {
12274        #[prost(uint64, optional, tag = "1")]
12275        pub match_id: ::core::option::Option<u64>,
12276        #[prost(uint32, optional, tag = "2")]
12277        pub hero_id: ::core::option::Option<u32>,
12278        #[prost(uint32, optional, tag = "3")]
12279        pub match_duration_s: ::core::option::Option<u32>,
12280        #[prost(uint32, optional, tag = "4")]
12281        pub start_time: ::core::option::Option<u32>,
12282        #[prost(uint32, optional, tag = "5")]
12283        pub match_result: ::core::option::Option<u32>,
12284        #[prost(
12285            enumeration = "super::ECitadelLobbyTeam",
12286            optional,
12287            tag = "6",
12288            default = "KECitadelLobbyTeamTeam0"
12289        )]
12290        pub player_team: ::core::option::Option<i32>,
12291        #[prost(uint32, optional, tag = "7")]
12292        pub player_kills: ::core::option::Option<u32>,
12293        #[prost(uint32, optional, tag = "8")]
12294        pub player_deaths: ::core::option::Option<u32>,
12295        #[prost(uint32, optional, tag = "9")]
12296        pub player_assists: ::core::option::Option<u32>,
12297        #[prost(uint32, optional, tag = "11")]
12298        pub last_hits: ::core::option::Option<u32>,
12299        #[prost(uint32, optional, tag = "12")]
12300        pub denies: ::core::option::Option<u32>,
12301        #[prost(uint32, optional, tag = "13")]
12302        pub hero_level: ::core::option::Option<u32>,
12303        #[prost(uint32, optional, tag = "14")]
12304        pub net_worth: ::core::option::Option<u32>,
12305        #[prost(uint64, optional, tag = "15")]
12306        pub objectives_mask_team0: ::core::option::Option<u64>,
12307        #[prost(uint64, optional, tag = "16")]
12308        pub objectives_mask_team1: ::core::option::Option<u64>,
12309        #[prost(bool, optional, tag = "17")]
12310        pub team_abandoned: ::core::option::Option<bool>,
12311        #[prost(uint32, optional, tag = "18")]
12312        pub abandoned_time_s: ::core::option::Option<u32>,
12313        #[prost(
12314            enumeration = "super::ECitadelMatchMode",
12315            optional,
12316            tag = "19",
12317            default = "KECitadelMatchModeInvalid"
12318        )]
12319        pub match_mode: ::core::option::Option<i32>,
12320        #[prost(
12321            enumeration = "super::ECitadelGameMode",
12322            optional,
12323            tag = "20",
12324            default = "KECitadelGameModeInvalid"
12325        )]
12326        pub game_mode: ::core::option::Option<i32>,
12327        #[prost(bool, optional, tag = "21")]
12328        pub not_scored: ::core::option::Option<bool>,
12329        #[prost(uint32, optional, tag = "22")]
12330        pub game_mode_version: ::core::option::Option<u32>,
12331        #[prost(uint32, optional, tag = "23")]
12332        pub brawl_score_team0: ::core::option::Option<u32>,
12333        #[prost(uint32, optional, tag = "24")]
12334        pub brawl_score_team1: ::core::option::Option<u32>,
12335        #[prost(uint32, optional, tag = "25")]
12336        pub brawl_avg_round_time_s: ::core::option::Option<u32>,
12337    }
12338    #[derive(serde::Serialize, serde::Deserialize)]
12339    #[derive(
12340        Clone,
12341        Copy,
12342        Debug,
12343        PartialEq,
12344        Eq,
12345        Hash,
12346        PartialOrd,
12347        Ord,
12348        ::prost::Enumeration
12349    )]
12350    #[repr(i32)]
12351    pub enum EResult {
12352        KEResultInternalError = 0,
12353        KEResultSuccess = 1,
12354        KEResultInvalidPermission = 2,
12355        KEResultTemporarilyDisabled = 3,
12356        KEResultTooBusy = 4,
12357        KEResultRateLimited = 5,
12358    }
12359    impl EResult {
12360        /// String value of the enum field names used in the ProtoBuf definition.
12361        ///
12362        /// The values are not transformed in any way and thus are considered stable
12363        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12364        pub fn as_str_name(&self) -> &'static str {
12365            match self {
12366                Self::KEResultInternalError => "k_eResult_InternalError",
12367                Self::KEResultSuccess => "k_eResult_Success",
12368                Self::KEResultInvalidPermission => "k_eResult_InvalidPermission",
12369                Self::KEResultTemporarilyDisabled => "k_eResult_TemporarilyDisabled",
12370                Self::KEResultTooBusy => "k_eResult_TooBusy",
12371                Self::KEResultRateLimited => "k_eResult_RateLimited",
12372            }
12373        }
12374        /// Creates an enum from field names used in the ProtoBuf definition.
12375        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12376            match value {
12377                "k_eResult_InternalError" => Some(Self::KEResultInternalError),
12378                "k_eResult_Success" => Some(Self::KEResultSuccess),
12379                "k_eResult_InvalidPermission" => Some(Self::KEResultInvalidPermission),
12380                "k_eResult_TemporarilyDisabled" => {
12381                    Some(Self::KEResultTemporarilyDisabled)
12382                }
12383                "k_eResult_TooBusy" => Some(Self::KEResultTooBusy),
12384                "k_eResult_RateLimited" => Some(Self::KEResultRateLimited),
12385                _ => None,
12386            }
12387        }
12388    }
12389}
12390#[derive(serde::Serialize, serde::Deserialize)]
12391#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12392pub struct CMsgClientToGcSpectateUser {
12393    #[prost(uint32, optional, tag = "1")]
12394    pub spectate_account_id: ::core::option::Option<u32>,
12395    #[prost(uint32, optional, tag = "3")]
12396    pub client_version: ::core::option::Option<u32>,
12397    #[prost(
12398        enumeration = "EgcPlatform",
12399        optional,
12400        tag = "4",
12401        default = "KEGcPlatformNone"
12402    )]
12403    pub client_platform: ::core::option::Option<i32>,
12404}
12405#[derive(serde::Serialize, serde::Deserialize)]
12406#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
12407pub struct CMsgClientToGcSpectateUserResponse {
12408    #[prost(
12409        enumeration = "c_msg_client_to_gc_spectate_user_response::EResponse",
12410        optional,
12411        tag = "1",
12412        default = "KEInternalError"
12413    )]
12414    pub result: ::core::option::Option<i32>,
12415    #[prost(fixed64, optional, tag = "3")]
12416    pub server_steam_id: ::core::option::Option<u64>,
12417    #[prost(bytes = "vec", optional, tag = "4")]
12418    pub sdr_key: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
12419    #[prost(uint32, optional, tag = "5")]
12420    pub udp_connect_ip: ::core::option::Option<u32>,
12421    #[prost(uint32, optional, tag = "6")]
12422    pub udp_connect_port: ::core::option::Option<u32>,
12423    #[prost(fixed64, optional, tag = "7")]
12424    pub lobby_id: ::core::option::Option<u64>,
12425    #[prost(string, optional, tag = "8")]
12426    pub client_broadcast_url: ::core::option::Option<::prost::alloc::string::String>,
12427}
12428/// Nested message and enum types in `CMsgClientToGCSpectateUserResponse`.
12429pub mod c_msg_client_to_gc_spectate_user_response {
12430    #[derive(serde::Serialize, serde::Deserialize)]
12431    #[derive(
12432        Clone,
12433        Copy,
12434        Debug,
12435        PartialEq,
12436        Eq,
12437        Hash,
12438        PartialOrd,
12439        Ord,
12440        ::prost::Enumeration
12441    )]
12442    #[repr(i32)]
12443    pub enum EResponse {
12444        KEInternalError = 0,
12445        KESuccess = 1,
12446        KEDisabled = 2,
12447        KETooBusy = 3,
12448        KERateLimited = 4,
12449        KENotInGame = 5,
12450        KEDisabledForGame = 6,
12451        KEServerFull = 7,
12452        KENotFriends = 8,
12453        KERegionInfoNotProvided = 9,
12454        KEDurationControlBlocked = 10,
12455        KEInvalidClientVersion = 11,
12456        KEInvalidRegion = 12,
12457    }
12458    impl EResponse {
12459        /// String value of the enum field names used in the ProtoBuf definition.
12460        ///
12461        /// The values are not transformed in any way and thus are considered stable
12462        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12463        pub fn as_str_name(&self) -> &'static str {
12464            match self {
12465                Self::KEInternalError => "k_eInternalError",
12466                Self::KESuccess => "k_eSuccess",
12467                Self::KEDisabled => "k_eDisabled",
12468                Self::KETooBusy => "k_eTooBusy",
12469                Self::KERateLimited => "k_eRateLimited",
12470                Self::KENotInGame => "k_eNotInGame",
12471                Self::KEDisabledForGame => "k_eDisabledForGame",
12472                Self::KEServerFull => "k_eServerFull",
12473                Self::KENotFriends => "k_eNotFriends",
12474                Self::KERegionInfoNotProvided => "k_eRegionInfoNotProvided",
12475                Self::KEDurationControlBlocked => "k_eDurationControlBlocked",
12476                Self::KEInvalidClientVersion => "k_eInvalidClientVersion",
12477                Self::KEInvalidRegion => "k_eInvalidRegion",
12478            }
12479        }
12480        /// Creates an enum from field names used in the ProtoBuf definition.
12481        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12482            match value {
12483                "k_eInternalError" => Some(Self::KEInternalError),
12484                "k_eSuccess" => Some(Self::KESuccess),
12485                "k_eDisabled" => Some(Self::KEDisabled),
12486                "k_eTooBusy" => Some(Self::KETooBusy),
12487                "k_eRateLimited" => Some(Self::KERateLimited),
12488                "k_eNotInGame" => Some(Self::KENotInGame),
12489                "k_eDisabledForGame" => Some(Self::KEDisabledForGame),
12490                "k_eServerFull" => Some(Self::KEServerFull),
12491                "k_eNotFriends" => Some(Self::KENotFriends),
12492                "k_eRegionInfoNotProvided" => Some(Self::KERegionInfoNotProvided),
12493                "k_eDurationControlBlocked" => Some(Self::KEDurationControlBlocked),
12494                "k_eInvalidClientVersion" => Some(Self::KEInvalidClientVersion),
12495                "k_eInvalidRegion" => Some(Self::KEInvalidRegion),
12496                _ => None,
12497            }
12498        }
12499    }
12500}
12501#[derive(serde::Serialize, serde::Deserialize)]
12502#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12503pub struct CMsgClientToGcSpectateLobby {
12504    #[prost(uint64, optional, tag = "1")]
12505    pub lobby_id: ::core::option::Option<u64>,
12506    #[prost(uint32, optional, tag = "3")]
12507    pub client_version: ::core::option::Option<u32>,
12508    #[prost(
12509        enumeration = "EgcPlatform",
12510        optional,
12511        tag = "4",
12512        default = "KEGcPlatformNone"
12513    )]
12514    pub client_platform: ::core::option::Option<i32>,
12515    #[prost(uint64, optional, tag = "5")]
12516    pub match_id: ::core::option::Option<u64>,
12517}
12518#[derive(serde::Serialize, serde::Deserialize)]
12519#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
12520pub struct CMsgClientToGcSpectateLobbyResponse {
12521    #[prost(message, optional, tag = "1")]
12522    pub result: ::core::option::Option<CMsgClientToGcSpectateUserResponse>,
12523}
12524#[derive(serde::Serialize, serde::Deserialize)]
12525#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12526pub struct CMsgClientToGcGetProfileCard {
12527    #[prost(uint32, optional, tag = "1")]
12528    pub account_id: ::core::option::Option<u32>,
12529    #[prost(bool, optional, tag = "2")]
12530    pub dev_access_hint: ::core::option::Option<bool>,
12531    #[prost(bool, optional, tag = "3")]
12532    pub friend_access_hint: ::core::option::Option<bool>,
12533}
12534#[derive(serde::Serialize, serde::Deserialize)]
12535#[derive(Clone, PartialEq, ::prost::Message)]
12536pub struct CMsgCitadelProfileCard {
12537    #[prost(uint32, optional, tag = "1")]
12538    pub account_id: ::core::option::Option<u32>,
12539    #[prost(message, repeated, tag = "2")]
12540    pub slots: ::prost::alloc::vec::Vec<c_msg_citadel_profile_card::Slot>,
12541    #[prost(uint32, optional, tag = "3")]
12542    pub ranked_badge_level: ::core::option::Option<u32>,
12543}
12544/// Nested message and enum types in `CMsgCitadelProfileCard`.
12545pub mod c_msg_citadel_profile_card {
12546    #[derive(serde::Serialize, serde::Deserialize)]
12547    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12548    pub struct Slot {
12549        #[prost(uint32, optional, tag = "1")]
12550        pub slot_id: ::core::option::Option<u32>,
12551        #[prost(message, optional, tag = "2")]
12552        pub stat: ::core::option::Option<slot::Stat>,
12553        #[prost(message, optional, tag = "3")]
12554        pub hero: ::core::option::Option<slot::Hero>,
12555    }
12556    /// Nested message and enum types in `Slot`.
12557    pub mod slot {
12558        #[derive(serde::Serialize, serde::Deserialize)]
12559        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12560        pub struct Stat {
12561            #[prost(
12562                enumeration = "super::EStatId",
12563                optional,
12564                tag = "1",
12565                default = "KEStatInvalid"
12566            )]
12567            pub stat_id: ::core::option::Option<i32>,
12568            #[prost(uint32, optional, tag = "2")]
12569            pub stat_score: ::core::option::Option<u32>,
12570        }
12571        #[derive(serde::Serialize, serde::Deserialize)]
12572        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12573        pub struct Hero {
12574            #[prost(uint32, optional, tag = "1")]
12575            pub hero_id: ::core::option::Option<u32>,
12576            #[prost(uint32, optional, tag = "2")]
12577            pub hero_wins: ::core::option::Option<u32>,
12578            #[prost(uint32, optional, tag = "3")]
12579            pub hero_kills: ::core::option::Option<u32>,
12580        }
12581    }
12582    #[derive(serde::Serialize, serde::Deserialize)]
12583    #[derive(
12584        Clone,
12585        Copy,
12586        Debug,
12587        PartialEq,
12588        Eq,
12589        Hash,
12590        PartialOrd,
12591        Ord,
12592        ::prost::Enumeration
12593    )]
12594    #[repr(i32)]
12595    pub enum EStatId {
12596        KEStatInvalid = 0,
12597        KEStatWins = 1,
12598        KEStatKills = 2,
12599        KEStatGamesPlayed = 3,
12600    }
12601    impl EStatId {
12602        /// String value of the enum field names used in the ProtoBuf definition.
12603        ///
12604        /// The values are not transformed in any way and thus are considered stable
12605        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12606        pub fn as_str_name(&self) -> &'static str {
12607            match self {
12608                Self::KEStatInvalid => "k_eStat_Invalid",
12609                Self::KEStatWins => "k_eStat_Wins",
12610                Self::KEStatKills => "k_eStat_Kills",
12611                Self::KEStatGamesPlayed => "k_eStat_GamesPlayed",
12612            }
12613        }
12614        /// Creates an enum from field names used in the ProtoBuf definition.
12615        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12616            match value {
12617                "k_eStat_Invalid" => Some(Self::KEStatInvalid),
12618                "k_eStat_Wins" => Some(Self::KEStatWins),
12619                "k_eStat_Kills" => Some(Self::KEStatKills),
12620                "k_eStat_GamesPlayed" => Some(Self::KEStatGamesPlayed),
12621                _ => None,
12622            }
12623        }
12624    }
12625}
12626#[derive(serde::Serialize, serde::Deserialize)]
12627#[derive(Clone, PartialEq, ::prost::Message)]
12628pub struct CMsgClientToGcUpdateRoster {
12629    #[prost(message, optional, tag = "1")]
12630    pub heroes: ::core::option::Option<CMsgHeroSelectionMatchInfo>,
12631    #[prost(
12632        enumeration = "ECitadelGameMode",
12633        optional,
12634        tag = "2",
12635        default = "KECitadelGameModeInvalid"
12636    )]
12637    pub game_mode: ::core::option::Option<i32>,
12638    #[prost(
12639        enumeration = "ECitadelMatchMode",
12640        optional,
12641        tag = "3",
12642        default = "KECitadelMatchModeInvalid"
12643    )]
12644    pub match_mode: ::core::option::Option<i32>,
12645}
12646#[derive(serde::Serialize, serde::Deserialize)]
12647#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12648pub struct CMsgClientToGcUpdateRosterResponse {
12649    #[prost(
12650        enumeration = "c_msg_client_to_gc_update_roster_response::EResponse",
12651        optional,
12652        tag = "1",
12653        default = "KEInternalError"
12654    )]
12655    pub result: ::core::option::Option<i32>,
12656}
12657/// Nested message and enum types in `CMsgClientToGCUpdateRosterResponse`.
12658pub mod c_msg_client_to_gc_update_roster_response {
12659    #[derive(serde::Serialize, serde::Deserialize)]
12660    #[derive(
12661        Clone,
12662        Copy,
12663        Debug,
12664        PartialEq,
12665        Eq,
12666        Hash,
12667        PartialOrd,
12668        Ord,
12669        ::prost::Enumeration
12670    )]
12671    #[repr(i32)]
12672    pub enum EResponse {
12673        KEInternalError = 0,
12674        KESuccess = 1,
12675        KEDisabled = 2,
12676        KETooBusy = 3,
12677        KERateLimited = 4,
12678        KEMmBusy = 5,
12679        KEInvalidHeroSelection = 6,
12680        KEHeroesNotUnlocked = 7,
12681        KENotInMatchmaking = 8,
12682        KEInvalidPartyRoster = 9,
12683        KEInvalidMode = 10,
12684    }
12685    impl EResponse {
12686        /// String value of the enum field names used in the ProtoBuf definition.
12687        ///
12688        /// The values are not transformed in any way and thus are considered stable
12689        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12690        pub fn as_str_name(&self) -> &'static str {
12691            match self {
12692                Self::KEInternalError => "k_eInternalError",
12693                Self::KESuccess => "k_eSuccess",
12694                Self::KEDisabled => "k_eDisabled",
12695                Self::KETooBusy => "k_eTooBusy",
12696                Self::KERateLimited => "k_eRateLimited",
12697                Self::KEMmBusy => "k_eMMBusy",
12698                Self::KEInvalidHeroSelection => "k_eInvalidHeroSelection",
12699                Self::KEHeroesNotUnlocked => "k_eHeroesNotUnlocked",
12700                Self::KENotInMatchmaking => "k_eNotInMatchmaking",
12701                Self::KEInvalidPartyRoster => "k_eInvalidPartyRoster",
12702                Self::KEInvalidMode => "k_eInvalidMode",
12703            }
12704        }
12705        /// Creates an enum from field names used in the ProtoBuf definition.
12706        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12707            match value {
12708                "k_eInternalError" => Some(Self::KEInternalError),
12709                "k_eSuccess" => Some(Self::KESuccess),
12710                "k_eDisabled" => Some(Self::KEDisabled),
12711                "k_eTooBusy" => Some(Self::KETooBusy),
12712                "k_eRateLimited" => Some(Self::KERateLimited),
12713                "k_eMMBusy" => Some(Self::KEMmBusy),
12714                "k_eInvalidHeroSelection" => Some(Self::KEInvalidHeroSelection),
12715                "k_eHeroesNotUnlocked" => Some(Self::KEHeroesNotUnlocked),
12716                "k_eNotInMatchmaking" => Some(Self::KENotInMatchmaking),
12717                "k_eInvalidPartyRoster" => Some(Self::KEInvalidPartyRoster),
12718                "k_eInvalidMode" => Some(Self::KEInvalidMode),
12719                _ => None,
12720            }
12721        }
12722    }
12723}
12724#[derive(serde::Serialize, serde::Deserialize)]
12725#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12726pub struct CMsgClientToGcGetAccountStats {
12727    #[prost(uint32, optional, tag = "1")]
12728    pub account_id: ::core::option::Option<u32>,
12729    #[prost(bool, optional, tag = "2")]
12730    pub dev_access_hint: ::core::option::Option<bool>,
12731    #[prost(bool, optional, tag = "3")]
12732    pub friend_access_hint: ::core::option::Option<bool>,
12733}
12734#[derive(serde::Serialize, serde::Deserialize)]
12735#[derive(Clone, PartialEq, ::prost::Message)]
12736pub struct CMsgClientToGcGetAccountStatsResponse {
12737    #[prost(
12738        enumeration = "c_msg_client_to_gc_get_account_stats_response::EResult",
12739        optional,
12740        tag = "1",
12741        default = "KEInternalError"
12742    )]
12743    pub result: ::core::option::Option<i32>,
12744    #[prost(message, optional, tag = "2")]
12745    pub stats: ::core::option::Option<CMsgAccountStats>,
12746}
12747/// Nested message and enum types in `CMsgClientToGCGetAccountStatsResponse`.
12748pub mod c_msg_client_to_gc_get_account_stats_response {
12749    #[derive(serde::Serialize, serde::Deserialize)]
12750    #[derive(
12751        Clone,
12752        Copy,
12753        Debug,
12754        PartialEq,
12755        Eq,
12756        Hash,
12757        PartialOrd,
12758        Ord,
12759        ::prost::Enumeration
12760    )]
12761    #[repr(i32)]
12762    pub enum EResult {
12763        KEInternalError = 0,
12764        KESuccess = 1,
12765        KEDisabled = 2,
12766        KETooBusy = 3,
12767        KERateLimited = 4,
12768        KEInvalidPermissions = 5,
12769    }
12770    impl EResult {
12771        /// String value of the enum field names used in the ProtoBuf definition.
12772        ///
12773        /// The values are not transformed in any way and thus are considered stable
12774        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12775        pub fn as_str_name(&self) -> &'static str {
12776            match self {
12777                Self::KEInternalError => "k_eInternalError",
12778                Self::KESuccess => "k_eSuccess",
12779                Self::KEDisabled => "k_eDisabled",
12780                Self::KETooBusy => "k_eTooBusy",
12781                Self::KERateLimited => "k_eRateLimited",
12782                Self::KEInvalidPermissions => "k_eInvalidPermissions",
12783            }
12784        }
12785        /// Creates an enum from field names used in the ProtoBuf definition.
12786        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12787            match value {
12788                "k_eInternalError" => Some(Self::KEInternalError),
12789                "k_eSuccess" => Some(Self::KESuccess),
12790                "k_eDisabled" => Some(Self::KEDisabled),
12791                "k_eTooBusy" => Some(Self::KETooBusy),
12792                "k_eRateLimited" => Some(Self::KERateLimited),
12793                "k_eInvalidPermissions" => Some(Self::KEInvalidPermissions),
12794                _ => None,
12795            }
12796        }
12797    }
12798}
12799#[derive(serde::Serialize, serde::Deserialize)]
12800#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12801pub struct CMsgClientToGcGetMatchMetaData {
12802    #[prost(uint64, optional, tag = "1")]
12803    pub match_id: ::core::option::Option<u64>,
12804    #[prost(uint32, optional, tag = "3")]
12805    pub metadata_salt: ::core::option::Option<u32>,
12806    #[prost(uint32, optional, tag = "4")]
12807    pub target_account_id: ::core::option::Option<u32>,
12808}
12809#[derive(serde::Serialize, serde::Deserialize)]
12810#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12811pub struct CMsgClientToGcGetMatchMetaDataResponse {
12812    #[prost(
12813        enumeration = "c_msg_client_to_gc_get_match_meta_data_response::EResult",
12814        optional,
12815        tag = "1",
12816        default = "KEResultInternalError"
12817    )]
12818    pub result: ::core::option::Option<i32>,
12819    #[prost(uint32, optional, tag = "2")]
12820    pub replay_salt: ::core::option::Option<u32>,
12821    #[prost(uint32, optional, tag = "3")]
12822    pub metadata_salt: ::core::option::Option<u32>,
12823    #[prost(uint32, optional, tag = "4")]
12824    pub replay_valid_through: ::core::option::Option<u32>,
12825    #[prost(uint32, optional, tag = "5")]
12826    pub replay_group_id: ::core::option::Option<u32>,
12827    #[prost(uint32, optional, tag = "6")]
12828    pub replay_processing_through: ::core::option::Option<u32>,
12829}
12830/// Nested message and enum types in `CMsgClientToGCGetMatchMetaDataResponse`.
12831pub mod c_msg_client_to_gc_get_match_meta_data_response {
12832    #[derive(serde::Serialize, serde::Deserialize)]
12833    #[derive(
12834        Clone,
12835        Copy,
12836        Debug,
12837        PartialEq,
12838        Eq,
12839        Hash,
12840        PartialOrd,
12841        Ord,
12842        ::prost::Enumeration
12843    )]
12844    #[repr(i32)]
12845    pub enum EResult {
12846        KEResultInternalError = 0,
12847        KEResultSuccess = 1,
12848        KEResultInvalidPermission = 2,
12849        KEResultTemporarilyDisabled = 3,
12850        KEResultTooBusy = 4,
12851        KEResultRateLimited = 5,
12852        KEResultInvalidMatch = 6,
12853        KEResultMatchInFlight = 7,
12854        KEResultTimeout = 8,
12855    }
12856    impl EResult {
12857        /// String value of the enum field names used in the ProtoBuf definition.
12858        ///
12859        /// The values are not transformed in any way and thus are considered stable
12860        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12861        pub fn as_str_name(&self) -> &'static str {
12862            match self {
12863                Self::KEResultInternalError => "k_eResult_InternalError",
12864                Self::KEResultSuccess => "k_eResult_Success",
12865                Self::KEResultInvalidPermission => "k_eResult_InvalidPermission",
12866                Self::KEResultTemporarilyDisabled => "k_eResult_TemporarilyDisabled",
12867                Self::KEResultTooBusy => "k_eResult_TooBusy",
12868                Self::KEResultRateLimited => "k_eResult_RateLimited",
12869                Self::KEResultInvalidMatch => "k_eResult_InvalidMatch",
12870                Self::KEResultMatchInFlight => "k_eResult_MatchInFlight",
12871                Self::KEResultTimeout => "k_eResult_Timeout",
12872            }
12873        }
12874        /// Creates an enum from field names used in the ProtoBuf definition.
12875        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12876            match value {
12877                "k_eResult_InternalError" => Some(Self::KEResultInternalError),
12878                "k_eResult_Success" => Some(Self::KEResultSuccess),
12879                "k_eResult_InvalidPermission" => Some(Self::KEResultInvalidPermission),
12880                "k_eResult_TemporarilyDisabled" => {
12881                    Some(Self::KEResultTemporarilyDisabled)
12882                }
12883                "k_eResult_TooBusy" => Some(Self::KEResultTooBusy),
12884                "k_eResult_RateLimited" => Some(Self::KEResultRateLimited),
12885                "k_eResult_InvalidMatch" => Some(Self::KEResultInvalidMatch),
12886                "k_eResult_MatchInFlight" => Some(Self::KEResultMatchInFlight),
12887                "k_eResult_Timeout" => Some(Self::KEResultTimeout),
12888                _ => None,
12889            }
12890        }
12891    }
12892}
12893#[derive(serde::Serialize, serde::Deserialize)]
12894#[derive(Clone, PartialEq, ::prost::Message)]
12895pub struct CMsgGcToClientDevAnnouncements {
12896    #[prost(message, repeated, tag = "1")]
12897    pub announcements: ::prost::alloc::vec::Vec<
12898        c_msg_gc_to_client_dev_announcements::Announcement,
12899    >,
12900}
12901/// Nested message and enum types in `CMsgGCToClientDevAnnouncements`.
12902pub mod c_msg_gc_to_client_dev_announcements {
12903    #[derive(serde::Serialize, serde::Deserialize)]
12904    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
12905    pub struct Announcement {
12906        #[prost(uint32, optional, tag = "1")]
12907        pub priority: ::core::option::Option<u32>,
12908        #[prost(string, optional, tag = "2")]
12909        pub title: ::core::option::Option<::prost::alloc::string::String>,
12910        #[prost(string, optional, tag = "3")]
12911        pub message: ::core::option::Option<::prost::alloc::string::String>,
12912        #[prost(string, optional, tag = "4")]
12913        pub url: ::core::option::Option<::prost::alloc::string::String>,
12914        #[prost(uint32, optional, tag = "5")]
12915        pub unique_id: ::core::option::Option<u32>,
12916        #[prost(uint32, optional, tag = "6")]
12917        pub posted_time: ::core::option::Option<u32>,
12918        #[prost(string, optional, tag = "7")]
12919        pub patch_version: ::core::option::Option<::prost::alloc::string::String>,
12920    }
12921}
12922#[derive(serde::Serialize, serde::Deserialize)]
12923#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
12924pub struct CMsgClientToGcModifyDevAnnouncements {
12925    #[prost(
12926        enumeration = "c_msg_client_to_gc_modify_dev_announcements::EOperation",
12927        optional,
12928        tag = "1",
12929        default = "KECreate"
12930    )]
12931    pub operation: ::core::option::Option<i32>,
12932    #[prost(uint32, optional, tag = "2")]
12933    pub target_id: ::core::option::Option<u32>,
12934    #[prost(uint32, optional, tag = "3")]
12935    pub priority: ::core::option::Option<u32>,
12936    #[prost(string, optional, tag = "4")]
12937    pub title: ::core::option::Option<::prost::alloc::string::String>,
12938    #[prost(string, optional, tag = "5")]
12939    pub message: ::core::option::Option<::prost::alloc::string::String>,
12940    #[prost(string, optional, tag = "6")]
12941    pub url: ::core::option::Option<::prost::alloc::string::String>,
12942    #[prost(string, optional, tag = "7")]
12943    pub patch_version: ::core::option::Option<::prost::alloc::string::String>,
12944}
12945/// Nested message and enum types in `CMsgClientToGCModifyDevAnnouncements`.
12946pub mod c_msg_client_to_gc_modify_dev_announcements {
12947    #[derive(serde::Serialize, serde::Deserialize)]
12948    #[derive(
12949        Clone,
12950        Copy,
12951        Debug,
12952        PartialEq,
12953        Eq,
12954        Hash,
12955        PartialOrd,
12956        Ord,
12957        ::prost::Enumeration
12958    )]
12959    #[repr(i32)]
12960    pub enum EOperation {
12961        KECreate = 0,
12962        KEUpdate = 1,
12963        KEDelete = 2,
12964    }
12965    impl EOperation {
12966        /// String value of the enum field names used in the ProtoBuf definition.
12967        ///
12968        /// The values are not transformed in any way and thus are considered stable
12969        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12970        pub fn as_str_name(&self) -> &'static str {
12971            match self {
12972                Self::KECreate => "k_eCreate",
12973                Self::KEUpdate => "k_eUpdate",
12974                Self::KEDelete => "k_eDelete",
12975            }
12976        }
12977        /// Creates an enum from field names used in the ProtoBuf definition.
12978        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12979            match value {
12980                "k_eCreate" => Some(Self::KECreate),
12981                "k_eUpdate" => Some(Self::KEUpdate),
12982                "k_eDelete" => Some(Self::KEDelete),
12983                _ => None,
12984            }
12985        }
12986    }
12987}
12988#[derive(serde::Serialize, serde::Deserialize)]
12989#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12990pub struct CMsgClientToGcModifyDevAnnouncementsResponse {
12991    #[prost(
12992        enumeration = "c_msg_client_to_gc_modify_dev_announcements_response::EResult",
12993        optional,
12994        tag = "1",
12995        default = "KESuccess"
12996    )]
12997    pub result: ::core::option::Option<i32>,
12998}
12999/// Nested message and enum types in `CMsgClientToGCModifyDevAnnouncementsResponse`.
13000pub mod c_msg_client_to_gc_modify_dev_announcements_response {
13001    #[derive(serde::Serialize, serde::Deserialize)]
13002    #[derive(
13003        Clone,
13004        Copy,
13005        Debug,
13006        PartialEq,
13007        Eq,
13008        Hash,
13009        PartialOrd,
13010        Ord,
13011        ::prost::Enumeration
13012    )]
13013    #[repr(i32)]
13014    pub enum EResult {
13015        KESuccess = 0,
13016        KEInvalidPermission = 1,
13017        KEInvalidTarget = 2,
13018        KEInternalError = 3,
13019    }
13020    impl EResult {
13021        /// String value of the enum field names used in the ProtoBuf definition.
13022        ///
13023        /// The values are not transformed in any way and thus are considered stable
13024        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13025        pub fn as_str_name(&self) -> &'static str {
13026            match self {
13027                Self::KESuccess => "k_eSuccess",
13028                Self::KEInvalidPermission => "k_eInvalidPermission",
13029                Self::KEInvalidTarget => "k_eInvalidTarget",
13030                Self::KEInternalError => "k_eInternalError",
13031            }
13032        }
13033        /// Creates an enum from field names used in the ProtoBuf definition.
13034        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13035            match value {
13036                "k_eSuccess" => Some(Self::KESuccess),
13037                "k_eInvalidPermission" => Some(Self::KEInvalidPermission),
13038                "k_eInvalidTarget" => Some(Self::KEInvalidTarget),
13039                "k_eInternalError" => Some(Self::KEInternalError),
13040                _ => None,
13041            }
13042        }
13043    }
13044}
13045#[derive(serde::Serialize, serde::Deserialize)]
13046#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13047pub struct CMsgClientToGcDevAction {
13048    #[prost(
13049        enumeration = "c_msg_client_to_gc_dev_action::EAction",
13050        optional,
13051        tag = "1",
13052        default = "KESetDeveloper"
13053    )]
13054    pub action: ::core::option::Option<i32>,
13055    #[prost(uint32, optional, tag = "2")]
13056    pub account_id: ::core::option::Option<u32>,
13057    #[prost(uint32, optional, tag = "3")]
13058    pub uint_value: ::core::option::Option<u32>,
13059    #[prost(int32, optional, tag = "4")]
13060    pub int_value: ::core::option::Option<i32>,
13061    #[prost(bool, optional, tag = "5")]
13062    pub bool_value: ::core::option::Option<bool>,
13063    #[prost(string, optional, tag = "6")]
13064    pub str_value: ::core::option::Option<::prost::alloc::string::String>,
13065    #[prost(uint64, optional, tag = "7")]
13066    pub match_id: ::core::option::Option<u64>,
13067}
13068/// Nested message and enum types in `CMsgClientToGCDevAction`.
13069pub mod c_msg_client_to_gc_dev_action {
13070    #[derive(serde::Serialize, serde::Deserialize)]
13071    #[derive(
13072        Clone,
13073        Copy,
13074        Debug,
13075        PartialEq,
13076        Eq,
13077        Hash,
13078        PartialOrd,
13079        Ord,
13080        ::prost::Enumeration
13081    )]
13082    #[repr(i32)]
13083    pub enum EAction {
13084        KESetDeveloper = 1,
13085        KESetMmr = 2,
13086        KESetMmrUncertainty = 3,
13087        KESetHeroStatus = 4,
13088        KESetPermission = 5,
13089        KESetNewPlayerProgress = 6,
13090        KEForceAccountStorage = 7,
13091        KEBookReset = 9,
13092        KEBookXpGrant = 10,
13093        KEBanAccount = 11,
13094        KEExonerateAccount = 12,
13095        KERequireAccountInMm = 13,
13096        KEResetAccountSurvey = 14,
13097    }
13098    impl EAction {
13099        /// String value of the enum field names used in the ProtoBuf definition.
13100        ///
13101        /// The values are not transformed in any way and thus are considered stable
13102        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13103        pub fn as_str_name(&self) -> &'static str {
13104            match self {
13105                Self::KESetDeveloper => "k_eSetDeveloper",
13106                Self::KESetMmr => "k_eSetMMR",
13107                Self::KESetMmrUncertainty => "k_eSetMMRUncertainty",
13108                Self::KESetHeroStatus => "k_eSetHeroStatus",
13109                Self::KESetPermission => "k_eSetPermission",
13110                Self::KESetNewPlayerProgress => "k_eSetNewPlayerProgress",
13111                Self::KEForceAccountStorage => "k_eForceAccountStorage",
13112                Self::KEBookReset => "k_eBookReset",
13113                Self::KEBookXpGrant => "k_eBookXPGrant",
13114                Self::KEBanAccount => "k_eBanAccount",
13115                Self::KEExonerateAccount => "k_eExonerateAccount",
13116                Self::KERequireAccountInMm => "k_eRequireAccountInMM",
13117                Self::KEResetAccountSurvey => "k_eResetAccountSurvey",
13118            }
13119        }
13120        /// Creates an enum from field names used in the ProtoBuf definition.
13121        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13122            match value {
13123                "k_eSetDeveloper" => Some(Self::KESetDeveloper),
13124                "k_eSetMMR" => Some(Self::KESetMmr),
13125                "k_eSetMMRUncertainty" => Some(Self::KESetMmrUncertainty),
13126                "k_eSetHeroStatus" => Some(Self::KESetHeroStatus),
13127                "k_eSetPermission" => Some(Self::KESetPermission),
13128                "k_eSetNewPlayerProgress" => Some(Self::KESetNewPlayerProgress),
13129                "k_eForceAccountStorage" => Some(Self::KEForceAccountStorage),
13130                "k_eBookReset" => Some(Self::KEBookReset),
13131                "k_eBookXPGrant" => Some(Self::KEBookXpGrant),
13132                "k_eBanAccount" => Some(Self::KEBanAccount),
13133                "k_eExonerateAccount" => Some(Self::KEExonerateAccount),
13134                "k_eRequireAccountInMM" => Some(Self::KERequireAccountInMm),
13135                "k_eResetAccountSurvey" => Some(Self::KEResetAccountSurvey),
13136                _ => None,
13137            }
13138        }
13139    }
13140}
13141#[derive(serde::Serialize, serde::Deserialize)]
13142#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13143pub struct CMsgClientToGcDevActionResponse {
13144    #[prost(
13145        enumeration = "c_msg_client_to_gc_dev_action_response::EResult",
13146        optional,
13147        tag = "1",
13148        default = "KESuccess"
13149    )]
13150    pub result: ::core::option::Option<i32>,
13151}
13152/// Nested message and enum types in `CMsgClientToGCDevActionResponse`.
13153pub mod c_msg_client_to_gc_dev_action_response {
13154    #[derive(serde::Serialize, serde::Deserialize)]
13155    #[derive(
13156        Clone,
13157        Copy,
13158        Debug,
13159        PartialEq,
13160        Eq,
13161        Hash,
13162        PartialOrd,
13163        Ord,
13164        ::prost::Enumeration
13165    )]
13166    #[repr(i32)]
13167    pub enum EResult {
13168        KESuccess = 0,
13169        KEInvalidPermission = 1,
13170        KEInvalidTarget = 2,
13171        KEInternalError = 3,
13172    }
13173    impl EResult {
13174        /// String value of the enum field names used in the ProtoBuf definition.
13175        ///
13176        /// The values are not transformed in any way and thus are considered stable
13177        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13178        pub fn as_str_name(&self) -> &'static str {
13179            match self {
13180                Self::KESuccess => "k_eSuccess",
13181                Self::KEInvalidPermission => "k_eInvalidPermission",
13182                Self::KEInvalidTarget => "k_eInvalidTarget",
13183                Self::KEInternalError => "k_eInternalError",
13184            }
13185        }
13186        /// Creates an enum from field names used in the ProtoBuf definition.
13187        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13188            match value {
13189                "k_eSuccess" => Some(Self::KESuccess),
13190                "k_eInvalidPermission" => Some(Self::KEInvalidPermission),
13191                "k_eInvalidTarget" => Some(Self::KEInvalidTarget),
13192                "k_eInternalError" => Some(Self::KEInternalError),
13193                _ => None,
13194            }
13195        }
13196    }
13197}
13198#[derive(serde::Serialize, serde::Deserialize)]
13199#[derive(Clone, PartialEq, ::prost::Message)]
13200pub struct CMsgClientToGcRecordClientEvents {
13201    #[prost(message, repeated, tag = "1")]
13202    pub events: ::prost::alloc::vec::Vec<c_msg_client_to_gc_record_client_events::Event>,
13203    #[prost(uint32, optional, tag = "2")]
13204    pub client_run_token: ::core::option::Option<u32>,
13205}
13206/// Nested message and enum types in `CMsgClientToGCRecordClientEvents`.
13207pub mod c_msg_client_to_gc_record_client_events {
13208    #[derive(serde::Serialize, serde::Deserialize)]
13209    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13210    pub struct Event {
13211        #[prost(uint32, optional, tag = "1")]
13212        pub time_stamp: ::core::option::Option<u32>,
13213        #[prost(
13214            enumeration = "super::ECitadelClientAccountEvent",
13215            optional,
13216            tag = "2",
13217            default = "KELaunchedHeroTest"
13218        )]
13219        pub event_id: ::core::option::Option<i32>,
13220        #[prost(uint64, optional, tag = "3")]
13221        pub event_data: ::core::option::Option<u64>,
13222        #[prost(uint32, optional, tag = "4")]
13223        pub client_event_index: ::core::option::Option<u32>,
13224    }
13225}
13226#[derive(serde::Serialize, serde::Deserialize)]
13227#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13228pub struct CMsgClientToGcRecordClientEventsResponse {
13229    #[prost(bool, optional, tag = "1")]
13230    pub success: ::core::option::Option<bool>,
13231}
13232#[derive(serde::Serialize, serde::Deserialize)]
13233#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13234pub struct CMsgClientToGcSetNewPlayerProgress {
13235    #[prost(
13236        enumeration = "ECitadelNewPlayerProgressFlag",
13237        optional,
13238        tag = "1",
13239        default = "KENewPlayerProgressGettingStarted"
13240    )]
13241    pub flag: ::core::option::Option<i32>,
13242}
13243#[derive(serde::Serialize, serde::Deserialize)]
13244#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13245pub struct CMsgClientToGcSetNewPlayerProgressResponse {
13246    #[prost(bool, optional, tag = "1")]
13247    pub success: ::core::option::Option<bool>,
13248}
13249#[derive(serde::Serialize, serde::Deserialize)]
13250#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13251pub struct CMsgClientToGcUpdateAccountSync {
13252    #[prost(uint32, repeated, packed = "false", tag = "1")]
13253    pub ids: ::prost::alloc::vec::Vec<u32>,
13254    #[prost(uint32, repeated, packed = "false", tag = "2")]
13255    pub values: ::prost::alloc::vec::Vec<u32>,
13256}
13257#[derive(serde::Serialize, serde::Deserialize)]
13258#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13259pub struct CMsgClientToGcUpdateAccountSyncResponse {
13260    #[prost(
13261        enumeration = "c_msg_client_to_gc_update_account_sync_response::EResponse",
13262        optional,
13263        tag = "1",
13264        default = "KEInternalError"
13265    )]
13266    pub result: ::core::option::Option<i32>,
13267}
13268/// Nested message and enum types in `CMsgClientToGCUpdateAccountSyncResponse`.
13269pub mod c_msg_client_to_gc_update_account_sync_response {
13270    #[derive(serde::Serialize, serde::Deserialize)]
13271    #[derive(
13272        Clone,
13273        Copy,
13274        Debug,
13275        PartialEq,
13276        Eq,
13277        Hash,
13278        PartialOrd,
13279        Ord,
13280        ::prost::Enumeration
13281    )]
13282    #[repr(i32)]
13283    pub enum EResponse {
13284        KEInternalError = 0,
13285        KESuccess = 1,
13286        KEDisabled = 2,
13287        KETooBusy = 3,
13288        KEInvalidMessage = 4,
13289    }
13290    impl EResponse {
13291        /// String value of the enum field names used in the ProtoBuf definition.
13292        ///
13293        /// The values are not transformed in any way and thus are considered stable
13294        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13295        pub fn as_str_name(&self) -> &'static str {
13296            match self {
13297                Self::KEInternalError => "k_eInternalError",
13298                Self::KESuccess => "k_eSuccess",
13299                Self::KEDisabled => "k_eDisabled",
13300                Self::KETooBusy => "k_eTooBusy",
13301                Self::KEInvalidMessage => "k_eInvalidMessage",
13302            }
13303        }
13304        /// Creates an enum from field names used in the ProtoBuf definition.
13305        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13306            match value {
13307                "k_eInternalError" => Some(Self::KEInternalError),
13308                "k_eSuccess" => Some(Self::KESuccess),
13309                "k_eDisabled" => Some(Self::KEDisabled),
13310                "k_eTooBusy" => Some(Self::KETooBusy),
13311                "k_eInvalidMessage" => Some(Self::KEInvalidMessage),
13312                _ => None,
13313            }
13314        }
13315    }
13316}
13317#[derive(serde::Serialize, serde::Deserialize)]
13318#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13319pub struct CMsgClientToGcGetHeroChoice {}
13320#[derive(serde::Serialize, serde::Deserialize)]
13321#[derive(Clone, PartialEq, ::prost::Message)]
13322pub struct CMsgClientToGcGetHeroChoiceResponse {
13323    #[prost(
13324        enumeration = "c_msg_client_to_gc_get_hero_choice_response::EResult",
13325        optional,
13326        tag = "1",
13327        default = "KESuccess"
13328    )]
13329    pub result: ::core::option::Option<i32>,
13330    #[prost(message, repeated, tag = "2")]
13331    pub hero_selections: ::prost::alloc::vec::Vec<
13332        c_msg_client_to_gc_get_hero_choice_response::Hero,
13333    >,
13334    #[prost(uint32, optional, tag = "3")]
13335    pub hero_choice_id: ::core::option::Option<u32>,
13336    #[prost(uint32, optional, tag = "4")]
13337    pub select_count: ::core::option::Option<u32>,
13338}
13339/// Nested message and enum types in `CMsgClientToGCGetHeroChoiceResponse`.
13340pub mod c_msg_client_to_gc_get_hero_choice_response {
13341    #[derive(serde::Serialize, serde::Deserialize)]
13342    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13343    pub struct Hero {
13344        #[prost(uint32, optional, tag = "1")]
13345        pub hero_id: ::core::option::Option<u32>,
13346    }
13347    #[derive(serde::Serialize, serde::Deserialize)]
13348    #[derive(
13349        Clone,
13350        Copy,
13351        Debug,
13352        PartialEq,
13353        Eq,
13354        Hash,
13355        PartialOrd,
13356        Ord,
13357        ::prost::Enumeration
13358    )]
13359    #[repr(i32)]
13360    pub enum EResult {
13361        KESuccess = 0,
13362        KENoChoices = 1,
13363        KEInvalidTarget = 2,
13364        KEInternalError = 3,
13365        KEDisabled = 4,
13366        KETooBusy = 5,
13367        KEChoiceClosed = 6,
13368    }
13369    impl EResult {
13370        /// String value of the enum field names used in the ProtoBuf definition.
13371        ///
13372        /// The values are not transformed in any way and thus are considered stable
13373        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13374        pub fn as_str_name(&self) -> &'static str {
13375            match self {
13376                Self::KESuccess => "k_eSuccess",
13377                Self::KENoChoices => "k_eNoChoices",
13378                Self::KEInvalidTarget => "k_eInvalidTarget",
13379                Self::KEInternalError => "k_eInternalError",
13380                Self::KEDisabled => "k_eDisabled",
13381                Self::KETooBusy => "k_eTooBusy",
13382                Self::KEChoiceClosed => "k_eChoiceClosed",
13383            }
13384        }
13385        /// Creates an enum from field names used in the ProtoBuf definition.
13386        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13387            match value {
13388                "k_eSuccess" => Some(Self::KESuccess),
13389                "k_eNoChoices" => Some(Self::KENoChoices),
13390                "k_eInvalidTarget" => Some(Self::KEInvalidTarget),
13391                "k_eInternalError" => Some(Self::KEInternalError),
13392                "k_eDisabled" => Some(Self::KEDisabled),
13393                "k_eTooBusy" => Some(Self::KETooBusy),
13394                "k_eChoiceClosed" => Some(Self::KEChoiceClosed),
13395                _ => None,
13396            }
13397        }
13398    }
13399}
13400#[derive(serde::Serialize, serde::Deserialize)]
13401#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13402pub struct CMsgClientToGcUnlockHero {
13403    #[prost(uint32, repeated, packed = "false", tag = "1")]
13404    pub hero_ids: ::prost::alloc::vec::Vec<u32>,
13405    #[prost(uint32, optional, tag = "2")]
13406    pub hero_choice_id: ::core::option::Option<u32>,
13407}
13408#[derive(serde::Serialize, serde::Deserialize)]
13409#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13410pub struct CMsgClientToGcUnlockHeroResponse {
13411    #[prost(
13412        enumeration = "c_msg_client_to_gc_unlock_hero_response::EResult",
13413        optional,
13414        tag = "1",
13415        default = "KESuccess"
13416    )]
13417    pub result: ::core::option::Option<i32>,
13418}
13419/// Nested message and enum types in `CMsgClientToGCUnlockHeroResponse`.
13420pub mod c_msg_client_to_gc_unlock_hero_response {
13421    #[derive(serde::Serialize, serde::Deserialize)]
13422    #[derive(
13423        Clone,
13424        Copy,
13425        Debug,
13426        PartialEq,
13427        Eq,
13428        Hash,
13429        PartialOrd,
13430        Ord,
13431        ::prost::Enumeration
13432    )]
13433    #[repr(i32)]
13434    pub enum EResult {
13435        KESuccess = 0,
13436        KEInternalError = 1,
13437        KEInvalidHero = 2,
13438        KEOutOfSync = 3,
13439        KEDisabled = 4,
13440        KETooBusy = 5,
13441    }
13442    impl EResult {
13443        /// String value of the enum field names used in the ProtoBuf definition.
13444        ///
13445        /// The values are not transformed in any way and thus are considered stable
13446        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13447        pub fn as_str_name(&self) -> &'static str {
13448            match self {
13449                Self::KESuccess => "k_eSuccess",
13450                Self::KEInternalError => "k_eInternalError",
13451                Self::KEInvalidHero => "k_eInvalidHero",
13452                Self::KEOutOfSync => "k_eOutOfSync",
13453                Self::KEDisabled => "k_eDisabled",
13454                Self::KETooBusy => "k_eTooBusy",
13455            }
13456        }
13457        /// Creates an enum from field names used in the ProtoBuf definition.
13458        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13459            match value {
13460                "k_eSuccess" => Some(Self::KESuccess),
13461                "k_eInternalError" => Some(Self::KEInternalError),
13462                "k_eInvalidHero" => Some(Self::KEInvalidHero),
13463                "k_eOutOfSync" => Some(Self::KEOutOfSync),
13464                "k_eDisabled" => Some(Self::KEDisabled),
13465                "k_eTooBusy" => Some(Self::KETooBusy),
13466                _ => None,
13467            }
13468        }
13469    }
13470}
13471#[derive(serde::Serialize, serde::Deserialize)]
13472#[derive(Clone, PartialEq, ::prost::Message)]
13473pub struct CMsgAccountBook {
13474    #[prost(uint32, optional, tag = "1")]
13475    pub book_id: ::core::option::Option<u32>,
13476    #[prost(uint32, optional, tag = "2")]
13477    pub book_xp: ::core::option::Option<u32>,
13478    #[prost(uint32, optional, tag = "3")]
13479    pub spent_xp: ::core::option::Option<u32>,
13480    #[prost(message, repeated, tag = "4")]
13481    pub unlocks: ::prost::alloc::vec::Vec<c_msg_account_book::Unlock>,
13482}
13483/// Nested message and enum types in `CMsgAccountBook`.
13484pub mod c_msg_account_book {
13485    #[derive(serde::Serialize, serde::Deserialize)]
13486    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13487    pub struct Unlock {
13488        #[prost(uint32, optional, tag = "1")]
13489        pub unlock_id: ::core::option::Option<u32>,
13490        #[prost(uint32, optional, tag = "2")]
13491        pub flags: ::core::option::Option<u32>,
13492    }
13493}
13494#[derive(serde::Serialize, serde::Deserialize)]
13495#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13496pub struct CMsgClientToGcBookUnlock {
13497    #[prost(uint32, optional, tag = "1")]
13498    pub book_id: ::core::option::Option<u32>,
13499    #[prost(uint32, optional, tag = "2")]
13500    pub unlock_id: ::core::option::Option<u32>,
13501    #[prost(uint32, optional, tag = "3")]
13502    pub expected_cost: ::core::option::Option<u32>,
13503    #[prost(uint32, optional, tag = "4")]
13504    pub client_version: ::core::option::Option<u32>,
13505}
13506#[derive(serde::Serialize, serde::Deserialize)]
13507#[derive(Clone, PartialEq, ::prost::Message)]
13508pub struct CMsgClientToGcBookUnlockResponse {
13509    #[prost(
13510        enumeration = "c_msg_client_to_gc_book_unlock_response::EResult",
13511        optional,
13512        tag = "1",
13513        default = "KESuccess"
13514    )]
13515    pub result: ::core::option::Option<i32>,
13516    #[prost(message, optional, tag = "2")]
13517    pub updated_book: ::core::option::Option<CMsgAccountBook>,
13518}
13519/// Nested message and enum types in `CMsgClientToGCBookUnlockResponse`.
13520pub mod c_msg_client_to_gc_book_unlock_response {
13521    #[derive(serde::Serialize, serde::Deserialize)]
13522    #[derive(
13523        Clone,
13524        Copy,
13525        Debug,
13526        PartialEq,
13527        Eq,
13528        Hash,
13529        PartialOrd,
13530        Ord,
13531        ::prost::Enumeration
13532    )]
13533    #[repr(i32)]
13534    pub enum EResult {
13535        KESuccess = 0,
13536        KEInternalError = 1,
13537        KEOutOfDateClient = 2,
13538        KEInvalidFunds = 3,
13539        KEDisabled = 4,
13540        KETooBusy = 5,
13541        KEAlreadyUnlocked = 6,
13542    }
13543    impl EResult {
13544        /// String value of the enum field names used in the ProtoBuf definition.
13545        ///
13546        /// The values are not transformed in any way and thus are considered stable
13547        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13548        pub fn as_str_name(&self) -> &'static str {
13549            match self {
13550                Self::KESuccess => "k_eSuccess",
13551                Self::KEInternalError => "k_eInternalError",
13552                Self::KEOutOfDateClient => "k_eOutOfDateClient",
13553                Self::KEInvalidFunds => "k_eInvalidFunds",
13554                Self::KEDisabled => "k_eDisabled",
13555                Self::KETooBusy => "k_eTooBusy",
13556                Self::KEAlreadyUnlocked => "k_eAlreadyUnlocked",
13557            }
13558        }
13559        /// Creates an enum from field names used in the ProtoBuf definition.
13560        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13561            match value {
13562                "k_eSuccess" => Some(Self::KESuccess),
13563                "k_eInternalError" => Some(Self::KEInternalError),
13564                "k_eOutOfDateClient" => Some(Self::KEOutOfDateClient),
13565                "k_eInvalidFunds" => Some(Self::KEInvalidFunds),
13566                "k_eDisabled" => Some(Self::KEDisabled),
13567                "k_eTooBusy" => Some(Self::KETooBusy),
13568                "k_eAlreadyUnlocked" => Some(Self::KEAlreadyUnlocked),
13569                _ => None,
13570            }
13571        }
13572    }
13573}
13574#[derive(serde::Serialize, serde::Deserialize)]
13575#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13576pub struct CMsgClientToGcGetBook {
13577    #[prost(uint32, optional, tag = "1")]
13578    pub book_id: ::core::option::Option<u32>,
13579}
13580#[derive(serde::Serialize, serde::Deserialize)]
13581#[derive(Clone, PartialEq, ::prost::Message)]
13582pub struct CMsgClientToGcGetBookResponse {
13583    #[prost(
13584        enumeration = "c_msg_client_to_gc_get_book_response::EResult",
13585        optional,
13586        tag = "1",
13587        default = "KESuccess"
13588    )]
13589    pub result: ::core::option::Option<i32>,
13590    #[prost(message, optional, tag = "2")]
13591    pub book: ::core::option::Option<CMsgAccountBook>,
13592}
13593/// Nested message and enum types in `CMsgClientToGCGetBookResponse`.
13594pub mod c_msg_client_to_gc_get_book_response {
13595    #[derive(serde::Serialize, serde::Deserialize)]
13596    #[derive(
13597        Clone,
13598        Copy,
13599        Debug,
13600        PartialEq,
13601        Eq,
13602        Hash,
13603        PartialOrd,
13604        Ord,
13605        ::prost::Enumeration
13606    )]
13607    #[repr(i32)]
13608    pub enum EResult {
13609        KESuccess = 0,
13610        KEInternalError = 1,
13611        KEInvalidBook = 2,
13612        KEDisabled = 3,
13613        KETooBusy = 4,
13614    }
13615    impl EResult {
13616        /// String value of the enum field names used in the ProtoBuf definition.
13617        ///
13618        /// The values are not transformed in any way and thus are considered stable
13619        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13620        pub fn as_str_name(&self) -> &'static str {
13621            match self {
13622                Self::KESuccess => "k_eSuccess",
13623                Self::KEInternalError => "k_eInternalError",
13624                Self::KEInvalidBook => "k_eInvalidBook",
13625                Self::KEDisabled => "k_eDisabled",
13626                Self::KETooBusy => "k_eTooBusy",
13627            }
13628        }
13629        /// Creates an enum from field names used in the ProtoBuf definition.
13630        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13631            match value {
13632                "k_eSuccess" => Some(Self::KESuccess),
13633                "k_eInternalError" => Some(Self::KEInternalError),
13634                "k_eInvalidBook" => Some(Self::KEInvalidBook),
13635                "k_eDisabled" => Some(Self::KEDisabled),
13636                "k_eTooBusy" => Some(Self::KETooBusy),
13637                _ => None,
13638            }
13639        }
13640    }
13641}
13642#[derive(serde::Serialize, serde::Deserialize)]
13643#[derive(Clone, PartialEq, ::prost::Message)]
13644pub struct CMsgGcToClientBookUpdated {
13645    #[prost(message, optional, tag = "1")]
13646    pub book: ::core::option::Option<CMsgAccountBook>,
13647}
13648#[derive(serde::Serialize, serde::Deserialize)]
13649#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13650pub struct CMsgClientToGcSubmitPlaytestUser {
13651    #[prost(string, optional, tag = "3")]
13652    pub location: ::core::option::Option<::prost::alloc::string::String>,
13653    #[prost(uint32, optional, tag = "4")]
13654    pub target_account_id: ::core::option::Option<u32>,
13655}
13656#[derive(serde::Serialize, serde::Deserialize)]
13657#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13658pub struct CMsgClientToGcSubmitPlaytestUserResponse {
13659    #[prost(
13660        enumeration = "c_msg_client_to_gc_submit_playtest_user_response::EResponse",
13661        optional,
13662        tag = "1",
13663        default = "Success"
13664    )]
13665    pub response: ::core::option::Option<i32>,
13666}
13667/// Nested message and enum types in `CMsgClientToGCSubmitPlaytestUserResponse`.
13668pub mod c_msg_client_to_gc_submit_playtest_user_response {
13669    #[derive(serde::Serialize, serde::Deserialize)]
13670    #[derive(
13671        Clone,
13672        Copy,
13673        Debug,
13674        PartialEq,
13675        Eq,
13676        Hash,
13677        PartialOrd,
13678        Ord,
13679        ::prost::Enumeration
13680    )]
13681    #[repr(i32)]
13682    pub enum EResponse {
13683        Success = 0,
13684        InternalError = 1,
13685        InvalidFriend = 3,
13686        NotFriendsLongEnough = 4,
13687        AlreadyHasGame = 5,
13688        LimitedUser = 6,
13689        InviteLimitReached = 7,
13690    }
13691    impl EResponse {
13692        /// String value of the enum field names used in the ProtoBuf definition.
13693        ///
13694        /// The values are not transformed in any way and thus are considered stable
13695        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13696        pub fn as_str_name(&self) -> &'static str {
13697            match self {
13698                Self::Success => "eResponse_Success",
13699                Self::InternalError => "eResponse_InternalError",
13700                Self::InvalidFriend => "eResponse_InvalidFriend",
13701                Self::NotFriendsLongEnough => "eResponse_NotFriendsLongEnough",
13702                Self::AlreadyHasGame => "eResponse_AlreadyHasGame",
13703                Self::LimitedUser => "eResponse_LimitedUser",
13704                Self::InviteLimitReached => "eResponse_InviteLimitReached",
13705            }
13706        }
13707        /// Creates an enum from field names used in the ProtoBuf definition.
13708        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13709            match value {
13710                "eResponse_Success" => Some(Self::Success),
13711                "eResponse_InternalError" => Some(Self::InternalError),
13712                "eResponse_InvalidFriend" => Some(Self::InvalidFriend),
13713                "eResponse_NotFriendsLongEnough" => Some(Self::NotFriendsLongEnough),
13714                "eResponse_AlreadyHasGame" => Some(Self::AlreadyHasGame),
13715                "eResponse_LimitedUser" => Some(Self::LimitedUser),
13716                "eResponse_InviteLimitReached" => Some(Self::InviteLimitReached),
13717                _ => None,
13718            }
13719        }
13720    }
13721}
13722#[derive(serde::Serialize, serde::Deserialize)]
13723#[derive(Clone, PartialEq, ::prost::Message)]
13724pub struct CMsgClientToGcUpdateHeroBuild {
13725    #[prost(message, optional, tag = "1")]
13726    pub hero_build: ::core::option::Option<CMsgHeroBuild>,
13727}
13728#[derive(serde::Serialize, serde::Deserialize)]
13729#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13730pub struct CMsgClientToGcUpdateHeroBuildResponse {
13731    #[prost(
13732        enumeration = "c_msg_client_to_gc_update_hero_build_response::EResponse",
13733        optional,
13734        tag = "1",
13735        default = "KEInternalError"
13736    )]
13737    pub response: ::core::option::Option<i32>,
13738    #[prost(uint32, optional, tag = "2")]
13739    pub hero_build_id: ::core::option::Option<u32>,
13740    #[prost(uint32, optional, tag = "3")]
13741    pub version: ::core::option::Option<u32>,
13742}
13743/// Nested message and enum types in `CMsgClientToGCUpdateHeroBuildResponse`.
13744pub mod c_msg_client_to_gc_update_hero_build_response {
13745    #[derive(serde::Serialize, serde::Deserialize)]
13746    #[derive(
13747        Clone,
13748        Copy,
13749        Debug,
13750        PartialEq,
13751        Eq,
13752        Hash,
13753        PartialOrd,
13754        Ord,
13755        ::prost::Enumeration
13756    )]
13757    #[repr(i32)]
13758    pub enum EResponse {
13759        KEInternalError = 0,
13760        KESuccess = 1,
13761    }
13762    impl EResponse {
13763        /// String value of the enum field names used in the ProtoBuf definition.
13764        ///
13765        /// The values are not transformed in any way and thus are considered stable
13766        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13767        pub fn as_str_name(&self) -> &'static str {
13768            match self {
13769                Self::KEInternalError => "k_eInternalError",
13770                Self::KESuccess => "k_eSuccess",
13771            }
13772        }
13773        /// Creates an enum from field names used in the ProtoBuf definition.
13774        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13775            match value {
13776                "k_eInternalError" => Some(Self::KEInternalError),
13777                "k_eSuccess" => Some(Self::KESuccess),
13778                _ => None,
13779            }
13780        }
13781    }
13782}
13783#[derive(serde::Serialize, serde::Deserialize)]
13784#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13785pub struct CMsgClientToGcFindHeroBuilds {
13786    #[prost(uint32, optional, tag = "1")]
13787    pub author_account_id: ::core::option::Option<u32>,
13788    #[prost(uint32, optional, tag = "2")]
13789    pub hero_id: ::core::option::Option<u32>,
13790    #[prost(int32, repeated, packed = "false", tag = "3")]
13791    pub language: ::prost::alloc::vec::Vec<i32>,
13792    #[prost(string, optional, tag = "4")]
13793    pub search_text: ::core::option::Option<::prost::alloc::string::String>,
13794    #[prost(uint32, optional, tag = "5")]
13795    pub hero_build_id: ::core::option::Option<u32>,
13796    #[prost(uint32, repeated, packed = "false", tag = "6")]
13797    pub tags: ::prost::alloc::vec::Vec<u32>,
13798}
13799#[derive(serde::Serialize, serde::Deserialize)]
13800#[derive(Clone, PartialEq, ::prost::Message)]
13801pub struct CMsgClientToGcFindHeroBuildsResponse {
13802    #[prost(
13803        enumeration = "c_msg_client_to_gc_find_hero_builds_response::EResponse",
13804        optional,
13805        tag = "1",
13806        default = "KEInternalError"
13807    )]
13808    pub response: ::core::option::Option<i32>,
13809    #[prost(message, repeated, tag = "2")]
13810    pub results: ::prost::alloc::vec::Vec<
13811        c_msg_client_to_gc_find_hero_builds_response::HeroBuildResult,
13812    >,
13813}
13814/// Nested message and enum types in `CMsgClientToGCFindHeroBuildsResponse`.
13815pub mod c_msg_client_to_gc_find_hero_builds_response {
13816    #[derive(serde::Serialize, serde::Deserialize)]
13817    #[derive(Clone, PartialEq, ::prost::Message)]
13818    pub struct HeroBuildResult {
13819        #[prost(message, optional, tag = "1")]
13820        pub hero_build: ::core::option::Option<super::CMsgHeroBuild>,
13821        #[prost(message, optional, tag = "2")]
13822        pub preference: ::core::option::Option<super::CMsgHeroBuildPreference>,
13823        #[prost(uint32, optional, tag = "3")]
13824        pub num_favorites: ::core::option::Option<u32>,
13825        #[prost(uint32, optional, tag = "4")]
13826        pub num_ignores: ::core::option::Option<u32>,
13827        #[prost(uint32, optional, tag = "5")]
13828        pub num_reports: ::core::option::Option<u32>,
13829        #[prost(uint32, optional, tag = "6")]
13830        pub num_weekly_favorites: ::core::option::Option<u32>,
13831        #[prost(uint32, optional, tag = "7")]
13832        pub num_daily_favorites: ::core::option::Option<u32>,
13833        #[prost(uint32, optional, tag = "8")]
13834        pub rollup_category: ::core::option::Option<u32>,
13835    }
13836    #[derive(serde::Serialize, serde::Deserialize)]
13837    #[derive(
13838        Clone,
13839        Copy,
13840        Debug,
13841        PartialEq,
13842        Eq,
13843        Hash,
13844        PartialOrd,
13845        Ord,
13846        ::prost::Enumeration
13847    )]
13848    #[repr(i32)]
13849    pub enum EResponse {
13850        KEInternalError = 0,
13851        KESuccess = 1,
13852        KETooBusy = 2,
13853    }
13854    impl EResponse {
13855        /// String value of the enum field names used in the ProtoBuf definition.
13856        ///
13857        /// The values are not transformed in any way and thus are considered stable
13858        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13859        pub fn as_str_name(&self) -> &'static str {
13860            match self {
13861                Self::KEInternalError => "k_eInternalError",
13862                Self::KESuccess => "k_eSuccess",
13863                Self::KETooBusy => "k_eTooBusy",
13864            }
13865        }
13866        /// Creates an enum from field names used in the ProtoBuf definition.
13867        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13868            match value {
13869                "k_eInternalError" => Some(Self::KEInternalError),
13870                "k_eSuccess" => Some(Self::KESuccess),
13871                "k_eTooBusy" => Some(Self::KETooBusy),
13872                _ => None,
13873            }
13874        }
13875    }
13876}
13877#[derive(serde::Serialize, serde::Deserialize)]
13878#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13879pub struct CMsgClientToGcUpdateHeroBuildPreference {
13880    #[prost(uint32, optional, tag = "1")]
13881    pub hero_build_id: ::core::option::Option<u32>,
13882    #[prost(message, optional, tag = "2")]
13883    pub preference: ::core::option::Option<CMsgHeroBuildPreference>,
13884}
13885#[derive(serde::Serialize, serde::Deserialize)]
13886#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13887pub struct CMsgClientToGcUpdateHeroBuildPreferenceResponse {
13888    #[prost(
13889        enumeration = "c_msg_client_to_gc_update_hero_build_preference_response::EResponse",
13890        optional,
13891        tag = "1",
13892        default = "KEInternalError"
13893    )]
13894    pub response: ::core::option::Option<i32>,
13895}
13896/// Nested message and enum types in `CMsgClientToGCUpdateHeroBuildPreferenceResponse`.
13897pub mod c_msg_client_to_gc_update_hero_build_preference_response {
13898    #[derive(serde::Serialize, serde::Deserialize)]
13899    #[derive(
13900        Clone,
13901        Copy,
13902        Debug,
13903        PartialEq,
13904        Eq,
13905        Hash,
13906        PartialOrd,
13907        Ord,
13908        ::prost::Enumeration
13909    )]
13910    #[repr(i32)]
13911    pub enum EResponse {
13912        KEInternalError = 0,
13913        KESuccess = 1,
13914    }
13915    impl EResponse {
13916        /// String value of the enum field names used in the ProtoBuf definition.
13917        ///
13918        /// The values are not transformed in any way and thus are considered stable
13919        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13920        pub fn as_str_name(&self) -> &'static str {
13921            match self {
13922                Self::KEInternalError => "k_eInternalError",
13923                Self::KESuccess => "k_eSuccess",
13924            }
13925        }
13926        /// Creates an enum from field names used in the ProtoBuf definition.
13927        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13928            match value {
13929                "k_eInternalError" => Some(Self::KEInternalError),
13930                "k_eSuccess" => Some(Self::KESuccess),
13931                _ => None,
13932            }
13933        }
13934    }
13935}
13936#[derive(serde::Serialize, serde::Deserialize)]
13937#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13938pub struct CMsgClientToGcReportPlayerFromMatch {
13939    #[prost(uint64, optional, tag = "1")]
13940    pub match_id: ::core::option::Option<u64>,
13941    #[prost(uint32, optional, tag = "2")]
13942    pub target_account_id: ::core::option::Option<u32>,
13943    #[prost(
13944        enumeration = "c_msg_client_to_gc_report_player_from_match::EReportType",
13945        optional,
13946        tag = "3",
13947        default = "KEReportNone"
13948    )]
13949    pub report_type: ::core::option::Option<i32>,
13950    #[prost(string, optional, tag = "4")]
13951    pub report_text: ::core::option::Option<::prost::alloc::string::String>,
13952}
13953/// Nested message and enum types in `CMsgClientToGCReportPlayerFromMatch`.
13954pub mod c_msg_client_to_gc_report_player_from_match {
13955    #[derive(serde::Serialize, serde::Deserialize)]
13956    #[derive(
13957        Clone,
13958        Copy,
13959        Debug,
13960        PartialEq,
13961        Eq,
13962        Hash,
13963        PartialOrd,
13964        Ord,
13965        ::prost::Enumeration
13966    )]
13967    #[repr(i32)]
13968    pub enum EReportType {
13969        KEReportNone = 0,
13970        KEReportVoiceChat = 1,
13971        KEReportGriefing = 2,
13972        KEReportLeftMatch = 3,
13973        KEReportMatchmaking = 4,
13974        KEReportCheating = 5,
13975        KEReportSmurfing = 6,
13976    }
13977    impl EReportType {
13978        /// String value of the enum field names used in the ProtoBuf definition.
13979        ///
13980        /// The values are not transformed in any way and thus are considered stable
13981        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13982        pub fn as_str_name(&self) -> &'static str {
13983            match self {
13984                Self::KEReportNone => "k_eReport_None",
13985                Self::KEReportVoiceChat => "k_eReport_VoiceChat",
13986                Self::KEReportGriefing => "k_eReport_Griefing",
13987                Self::KEReportLeftMatch => "k_eReport_LeftMatch",
13988                Self::KEReportMatchmaking => "k_eReport_Matchmaking",
13989                Self::KEReportCheating => "k_eReport_Cheating",
13990                Self::KEReportSmurfing => "k_eReport_Smurfing",
13991            }
13992        }
13993        /// Creates an enum from field names used in the ProtoBuf definition.
13994        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13995            match value {
13996                "k_eReport_None" => Some(Self::KEReportNone),
13997                "k_eReport_VoiceChat" => Some(Self::KEReportVoiceChat),
13998                "k_eReport_Griefing" => Some(Self::KEReportGriefing),
13999                "k_eReport_LeftMatch" => Some(Self::KEReportLeftMatch),
14000                "k_eReport_Matchmaking" => Some(Self::KEReportMatchmaking),
14001                "k_eReport_Cheating" => Some(Self::KEReportCheating),
14002                "k_eReport_Smurfing" => Some(Self::KEReportSmurfing),
14003                _ => None,
14004            }
14005        }
14006    }
14007}
14008#[derive(serde::Serialize, serde::Deserialize)]
14009#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14010pub struct CMsgClientToGcReportPlayerFromMatchResponse {
14011    #[prost(
14012        enumeration = "c_msg_client_to_gc_report_player_from_match_response::EResponse",
14013        optional,
14014        tag = "1",
14015        default = "KEInternalError"
14016    )]
14017    pub response: ::core::option::Option<i32>,
14018}
14019/// Nested message and enum types in `CMsgClientToGCReportPlayerFromMatchResponse`.
14020pub mod c_msg_client_to_gc_report_player_from_match_response {
14021    #[derive(serde::Serialize, serde::Deserialize)]
14022    #[derive(
14023        Clone,
14024        Copy,
14025        Debug,
14026        PartialEq,
14027        Eq,
14028        Hash,
14029        PartialOrd,
14030        Ord,
14031        ::prost::Enumeration
14032    )]
14033    #[repr(i32)]
14034    pub enum EResponse {
14035        KEInternalError = 0,
14036        KESuccess = 1,
14037        KERateLimited = 2,
14038        KEAlreadyReported = 3,
14039        KEDisabled = 4,
14040        KEInvalidPermissions = 5,
14041        KEReportingWindowExpired = 6,
14042        KETooBusy = 7,
14043        KEBannedFromReporting = 8,
14044        KETimeout = 9,
14045    }
14046    impl EResponse {
14047        /// String value of the enum field names used in the ProtoBuf definition.
14048        ///
14049        /// The values are not transformed in any way and thus are considered stable
14050        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14051        pub fn as_str_name(&self) -> &'static str {
14052            match self {
14053                Self::KEInternalError => "k_eInternalError",
14054                Self::KESuccess => "k_eSuccess",
14055                Self::KERateLimited => "k_eRateLimited",
14056                Self::KEAlreadyReported => "k_eAlreadyReported",
14057                Self::KEDisabled => "k_eDisabled",
14058                Self::KEInvalidPermissions => "k_eInvalidPermissions",
14059                Self::KEReportingWindowExpired => "k_eReportingWindowExpired",
14060                Self::KETooBusy => "k_eTooBusy",
14061                Self::KEBannedFromReporting => "k_eBannedFromReporting",
14062                Self::KETimeout => "k_eTimeout",
14063            }
14064        }
14065        /// Creates an enum from field names used in the ProtoBuf definition.
14066        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14067            match value {
14068                "k_eInternalError" => Some(Self::KEInternalError),
14069                "k_eSuccess" => Some(Self::KESuccess),
14070                "k_eRateLimited" => Some(Self::KERateLimited),
14071                "k_eAlreadyReported" => Some(Self::KEAlreadyReported),
14072                "k_eDisabled" => Some(Self::KEDisabled),
14073                "k_eInvalidPermissions" => Some(Self::KEInvalidPermissions),
14074                "k_eReportingWindowExpired" => Some(Self::KEReportingWindowExpired),
14075                "k_eTooBusy" => Some(Self::KETooBusy),
14076                "k_eBannedFromReporting" => Some(Self::KEBannedFromReporting),
14077                "k_eTimeout" => Some(Self::KETimeout),
14078                _ => None,
14079            }
14080        }
14081    }
14082}
14083#[derive(serde::Serialize, serde::Deserialize)]
14084#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14085pub struct CMsgClientToGcGetAccountMatchReports {
14086    #[prost(uint64, optional, tag = "1")]
14087    pub match_id: ::core::option::Option<u64>,
14088}
14089#[derive(serde::Serialize, serde::Deserialize)]
14090#[derive(Clone, PartialEq, ::prost::Message)]
14091pub struct CMsgClientToGcGetAccountMatchReportsResponse {
14092    #[prost(
14093        enumeration = "c_msg_client_to_gc_get_account_match_reports_response::EResponse",
14094        optional,
14095        tag = "1",
14096        default = "KEInternalError"
14097    )]
14098    pub response: ::core::option::Option<i32>,
14099    #[prost(message, repeated, tag = "2")]
14100    pub reports: ::prost::alloc::vec::Vec<
14101        c_msg_client_to_gc_get_account_match_reports_response::Report,
14102    >,
14103    #[prost(message, repeated, tag = "3")]
14104    pub commends: ::prost::alloc::vec::Vec<
14105        c_msg_client_to_gc_get_account_match_reports_response::Commend,
14106    >,
14107}
14108/// Nested message and enum types in `CMsgClientToGCGetAccountMatchReportsResponse`.
14109pub mod c_msg_client_to_gc_get_account_match_reports_response {
14110    #[derive(serde::Serialize, serde::Deserialize)]
14111    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14112    pub struct Report {
14113        #[prost(uint32, optional, tag = "1")]
14114        pub account_id: ::core::option::Option<u32>,
14115    }
14116    #[derive(serde::Serialize, serde::Deserialize)]
14117    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14118    pub struct Commend {
14119        #[prost(uint32, optional, tag = "1")]
14120        pub account_id: ::core::option::Option<u32>,
14121    }
14122    #[derive(serde::Serialize, serde::Deserialize)]
14123    #[derive(
14124        Clone,
14125        Copy,
14126        Debug,
14127        PartialEq,
14128        Eq,
14129        Hash,
14130        PartialOrd,
14131        Ord,
14132        ::prost::Enumeration
14133    )]
14134    #[repr(i32)]
14135    pub enum EResponse {
14136        KEInternalError = 0,
14137        KESuccess = 1,
14138        KEDisabled = 4,
14139        KETooBusy = 7,
14140    }
14141    impl EResponse {
14142        /// String value of the enum field names used in the ProtoBuf definition.
14143        ///
14144        /// The values are not transformed in any way and thus are considered stable
14145        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14146        pub fn as_str_name(&self) -> &'static str {
14147            match self {
14148                Self::KEInternalError => "k_eInternalError",
14149                Self::KESuccess => "k_eSuccess",
14150                Self::KEDisabled => "k_eDisabled",
14151                Self::KETooBusy => "k_eTooBusy",
14152            }
14153        }
14154        /// Creates an enum from field names used in the ProtoBuf definition.
14155        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14156            match value {
14157                "k_eInternalError" => Some(Self::KEInternalError),
14158                "k_eSuccess" => Some(Self::KESuccess),
14159                "k_eDisabled" => Some(Self::KEDisabled),
14160                "k_eTooBusy" => Some(Self::KETooBusy),
14161                _ => None,
14162            }
14163        }
14164    }
14165}
14166#[derive(serde::Serialize, serde::Deserialize)]
14167#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14168pub struct CMsgClientToGcDeleteHeroBuild {
14169    #[prost(uint32, optional, tag = "1")]
14170    pub author_account_id: ::core::option::Option<u32>,
14171    #[prost(uint32, optional, tag = "2")]
14172    pub hero_build_id: ::core::option::Option<u32>,
14173}
14174#[derive(serde::Serialize, serde::Deserialize)]
14175#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14176pub struct CMsgClientToGcDeleteHeroBuildResponse {
14177    #[prost(
14178        enumeration = "c_msg_client_to_gc_delete_hero_build_response::EResponse",
14179        optional,
14180        tag = "1",
14181        default = "KEInternalError"
14182    )]
14183    pub response: ::core::option::Option<i32>,
14184    #[prost(uint32, optional, tag = "2")]
14185    pub builds_deleted: ::core::option::Option<u32>,
14186}
14187/// Nested message and enum types in `CMsgClientToGCDeleteHeroBuildResponse`.
14188pub mod c_msg_client_to_gc_delete_hero_build_response {
14189    #[derive(serde::Serialize, serde::Deserialize)]
14190    #[derive(
14191        Clone,
14192        Copy,
14193        Debug,
14194        PartialEq,
14195        Eq,
14196        Hash,
14197        PartialOrd,
14198        Ord,
14199        ::prost::Enumeration
14200    )]
14201    #[repr(i32)]
14202    pub enum EResponse {
14203        KEInternalError = 0,
14204        KESuccess = 1,
14205    }
14206    impl EResponse {
14207        /// String value of the enum field names used in the ProtoBuf definition.
14208        ///
14209        /// The values are not transformed in any way and thus are considered stable
14210        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14211        pub fn as_str_name(&self) -> &'static str {
14212            match self {
14213                Self::KEInternalError => "k_eInternalError",
14214                Self::KESuccess => "k_eSuccess",
14215            }
14216        }
14217        /// Creates an enum from field names used in the ProtoBuf definition.
14218        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14219            match value {
14220                "k_eInternalError" => Some(Self::KEInternalError),
14221                "k_eSuccess" => Some(Self::KESuccess),
14222                _ => None,
14223            }
14224        }
14225    }
14226}
14227#[derive(serde::Serialize, serde::Deserialize)]
14228#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14229pub struct CMsgClientToGcGetActiveMatches {}
14230#[derive(serde::Serialize, serde::Deserialize)]
14231#[derive(Clone, PartialEq, ::prost::Message)]
14232pub struct CMsgClientToGcGetActiveMatchesResponse {
14233    #[prost(message, repeated, tag = "1")]
14234    pub active_matches: ::prost::alloc::vec::Vec<CMsgDevMatchInfo>,
14235}
14236#[derive(serde::Serialize, serde::Deserialize)]
14237#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14238pub struct CMsgClientToGcGetDiscordLink {}
14239#[derive(serde::Serialize, serde::Deserialize)]
14240#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14241pub struct CMsgClientToGcGetDiscordLinkResponse {
14242    #[prost(
14243        enumeration = "c_msg_client_to_gc_get_discord_link_response::EResponse",
14244        optional,
14245        tag = "1",
14246        default = "KEInternalError"
14247    )]
14248    pub response: ::core::option::Option<i32>,
14249    #[prost(string, optional, tag = "2")]
14250    pub discord_link: ::core::option::Option<::prost::alloc::string::String>,
14251    #[prost(uint32, optional, tag = "3")]
14252    pub valid_hours: ::core::option::Option<u32>,
14253}
14254/// Nested message and enum types in `CMsgClientToGCGetDiscordLinkResponse`.
14255pub mod c_msg_client_to_gc_get_discord_link_response {
14256    #[derive(serde::Serialize, serde::Deserialize)]
14257    #[derive(
14258        Clone,
14259        Copy,
14260        Debug,
14261        PartialEq,
14262        Eq,
14263        Hash,
14264        PartialOrd,
14265        Ord,
14266        ::prost::Enumeration
14267    )]
14268    #[repr(i32)]
14269    pub enum EResponse {
14270        KEInternalError = 0,
14271        KESuccess = 1,
14272        KEDiscordTooBusy = 2,
14273        KEAlreadyClaimed = 3,
14274        KEDisabled = 4,
14275    }
14276    impl EResponse {
14277        /// String value of the enum field names used in the ProtoBuf definition.
14278        ///
14279        /// The values are not transformed in any way and thus are considered stable
14280        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14281        pub fn as_str_name(&self) -> &'static str {
14282            match self {
14283                Self::KEInternalError => "k_eInternalError",
14284                Self::KESuccess => "k_eSuccess",
14285                Self::KEDiscordTooBusy => "k_eDiscordTooBusy",
14286                Self::KEAlreadyClaimed => "k_eAlreadyClaimed",
14287                Self::KEDisabled => "k_eDisabled",
14288            }
14289        }
14290        /// Creates an enum from field names used in the ProtoBuf definition.
14291        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14292            match value {
14293                "k_eInternalError" => Some(Self::KEInternalError),
14294                "k_eSuccess" => Some(Self::KESuccess),
14295                "k_eDiscordTooBusy" => Some(Self::KEDiscordTooBusy),
14296                "k_eAlreadyClaimed" => Some(Self::KEAlreadyClaimed),
14297                "k_eDisabled" => Some(Self::KEDisabled),
14298                _ => None,
14299            }
14300        }
14301    }
14302}
14303#[derive(serde::Serialize, serde::Deserialize)]
14304#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14305pub struct CMsgClientToGcGrantForumAccess {
14306    #[prost(string, optional, tag = "1")]
14307    pub email: ::core::option::Option<::prost::alloc::string::String>,
14308}
14309#[derive(serde::Serialize, serde::Deserialize)]
14310#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14311pub struct CMsgClientToGcGrantForumAccessResponse {
14312    #[prost(
14313        enumeration = "c_msg_client_to_gc_grant_forum_access_response::EResponse",
14314        optional,
14315        tag = "1",
14316        default = "KEInternalError"
14317    )]
14318    pub response: ::core::option::Option<i32>,
14319    #[prost(string, optional, tag = "2")]
14320    pub email: ::core::option::Option<::prost::alloc::string::String>,
14321    #[prost(string, optional, tag = "3")]
14322    pub username: ::core::option::Option<::prost::alloc::string::String>,
14323    #[prost(string, optional, tag = "4")]
14324    pub forum_password: ::core::option::Option<::prost::alloc::string::String>,
14325}
14326/// Nested message and enum types in `CMsgClientToGCGrantForumAccessResponse`.
14327pub mod c_msg_client_to_gc_grant_forum_access_response {
14328    #[derive(serde::Serialize, serde::Deserialize)]
14329    #[derive(
14330        Clone,
14331        Copy,
14332        Debug,
14333        PartialEq,
14334        Eq,
14335        Hash,
14336        PartialOrd,
14337        Ord,
14338        ::prost::Enumeration
14339    )]
14340    #[repr(i32)]
14341    pub enum EResponse {
14342        KEInternalError = 0,
14343        KESuccess = 1,
14344        KEAlreadyClaimed = 2,
14345        KEDisabled = 3,
14346        KEEmailUsed = 4,
14347    }
14348    impl EResponse {
14349        /// String value of the enum field names used in the ProtoBuf definition.
14350        ///
14351        /// The values are not transformed in any way and thus are considered stable
14352        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14353        pub fn as_str_name(&self) -> &'static str {
14354            match self {
14355                Self::KEInternalError => "k_eInternalError",
14356                Self::KESuccess => "k_eSuccess",
14357                Self::KEAlreadyClaimed => "k_eAlreadyClaimed",
14358                Self::KEDisabled => "k_eDisabled",
14359                Self::KEEmailUsed => "k_eEmailUsed",
14360            }
14361        }
14362        /// Creates an enum from field names used in the ProtoBuf definition.
14363        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14364            match value {
14365                "k_eInternalError" => Some(Self::KEInternalError),
14366                "k_eSuccess" => Some(Self::KESuccess),
14367                "k_eAlreadyClaimed" => Some(Self::KEAlreadyClaimed),
14368                "k_eDisabled" => Some(Self::KEDisabled),
14369                "k_eEmailUsed" => Some(Self::KEEmailUsed),
14370                _ => None,
14371            }
14372        }
14373    }
14374}
14375#[derive(serde::Serialize, serde::Deserialize)]
14376#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14377pub struct CMsgClientToGcModeratorRequest {
14378    #[prost(uint32, optional, tag = "1")]
14379    pub account_id: ::core::option::Option<u32>,
14380}
14381#[derive(serde::Serialize, serde::Deserialize)]
14382#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14383pub struct CMsgClientToGcModeratorRequestResponse {
14384    #[prost(bool, optional, tag = "1")]
14385    pub success: ::core::option::Option<bool>,
14386    #[prost(string, repeated, tag = "2")]
14387    pub response_text: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
14388}
14389#[derive(serde::Serialize, serde::Deserialize)]
14390#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14391pub struct CMsgClientToGcGetFriendGameStatus {
14392    #[prost(bool, optional, tag = "1")]
14393    pub include_invited: ::core::option::Option<bool>,
14394}
14395#[derive(serde::Serialize, serde::Deserialize)]
14396#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14397pub struct CMsgClientToGcGetFriendGameStatusResponse {
14398    #[prost(
14399        enumeration = "c_msg_client_to_gc_get_friend_game_status_response::EResponse",
14400        optional,
14401        tag = "1",
14402        default = "KEInternalError"
14403    )]
14404    pub response: ::core::option::Option<i32>,
14405    #[prost(uint32, repeated, tag = "2")]
14406    pub friends_played_game: ::prost::alloc::vec::Vec<u32>,
14407    #[prost(uint32, repeated, tag = "3")]
14408    pub friends_invited: ::prost::alloc::vec::Vec<u32>,
14409    #[prost(uint32, repeated, tag = "4")]
14410    pub friends_invites_sent: ::prost::alloc::vec::Vec<u32>,
14411}
14412/// Nested message and enum types in `CMsgClientToGCGetFriendGameStatusResponse`.
14413pub mod c_msg_client_to_gc_get_friend_game_status_response {
14414    #[derive(serde::Serialize, serde::Deserialize)]
14415    #[derive(
14416        Clone,
14417        Copy,
14418        Debug,
14419        PartialEq,
14420        Eq,
14421        Hash,
14422        PartialOrd,
14423        Ord,
14424        ::prost::Enumeration
14425    )]
14426    #[repr(i32)]
14427    pub enum EResponse {
14428        KEInternalError = 0,
14429        KESuccess = 1,
14430        KETooBusy = 2,
14431        KEDisabled = 3,
14432    }
14433    impl EResponse {
14434        /// String value of the enum field names used in the ProtoBuf definition.
14435        ///
14436        /// The values are not transformed in any way and thus are considered stable
14437        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14438        pub fn as_str_name(&self) -> &'static str {
14439            match self {
14440                Self::KEInternalError => "k_eInternalError",
14441                Self::KESuccess => "k_eSuccess",
14442                Self::KETooBusy => "k_eTooBusy",
14443                Self::KEDisabled => "k_eDisabled",
14444            }
14445        }
14446        /// Creates an enum from field names used in the ProtoBuf definition.
14447        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14448            match value {
14449                "k_eInternalError" => Some(Self::KEInternalError),
14450                "k_eSuccess" => Some(Self::KESuccess),
14451                "k_eTooBusy" => Some(Self::KETooBusy),
14452                "k_eDisabled" => Some(Self::KEDisabled),
14453                _ => None,
14454            }
14455        }
14456    }
14457}
14458#[derive(serde::Serialize, serde::Deserialize)]
14459#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14460pub struct CMsgClientToGcUpdateSpectatorStatus {
14461    #[prost(fixed64, optional, tag = "1")]
14462    pub spectating_lobby_id: ::core::option::Option<u64>,
14463    #[prost(bool, optional, tag = "2")]
14464    pub stopped_spectating: ::core::option::Option<bool>,
14465}
14466#[derive(serde::Serialize, serde::Deserialize)]
14467#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14468pub struct CMsgClientToGcCommendPlayerFromMatch {
14469    #[prost(uint64, optional, tag = "1")]
14470    pub match_id: ::core::option::Option<u64>,
14471    #[prost(uint32, optional, tag = "2")]
14472    pub target_account_id: ::core::option::Option<u32>,
14473    #[prost(enumeration = "ECommendType", optional, tag = "3", default = "KEInvalid")]
14474    pub commend_type: ::core::option::Option<i32>,
14475    #[prost(uint32, optional, tag = "4")]
14476    pub fake_commend_hero_id: ::core::option::Option<u32>,
14477}
14478#[derive(serde::Serialize, serde::Deserialize)]
14479#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14480pub struct CMsgClientToGcCommendPlayerFromMatchResponse {
14481    #[prost(
14482        enumeration = "c_msg_client_to_gc_commend_player_from_match_response::EResponse",
14483        optional,
14484        tag = "1",
14485        default = "KEInternalError"
14486    )]
14487    pub result: ::core::option::Option<i32>,
14488}
14489/// Nested message and enum types in `CMsgClientToGCCommendPlayerFromMatchResponse`.
14490pub mod c_msg_client_to_gc_commend_player_from_match_response {
14491    #[derive(serde::Serialize, serde::Deserialize)]
14492    #[derive(
14493        Clone,
14494        Copy,
14495        Debug,
14496        PartialEq,
14497        Eq,
14498        Hash,
14499        PartialOrd,
14500        Ord,
14501        ::prost::Enumeration
14502    )]
14503    #[repr(i32)]
14504    pub enum EResponse {
14505        KEInternalError = 0,
14506        KESuccess = 1,
14507        KEDisabled = 2,
14508        KETooBusy = 3,
14509        KERateLimited = 4,
14510        KETimeout = 5,
14511    }
14512    impl EResponse {
14513        /// String value of the enum field names used in the ProtoBuf definition.
14514        ///
14515        /// The values are not transformed in any way and thus are considered stable
14516        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14517        pub fn as_str_name(&self) -> &'static str {
14518            match self {
14519                Self::KEInternalError => "k_eInternalError",
14520                Self::KESuccess => "k_eSuccess",
14521                Self::KEDisabled => "k_eDisabled",
14522                Self::KETooBusy => "k_eTooBusy",
14523                Self::KERateLimited => "k_eRateLimited",
14524                Self::KETimeout => "k_eTimeout",
14525            }
14526        }
14527        /// Creates an enum from field names used in the ProtoBuf definition.
14528        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14529            match value {
14530                "k_eInternalError" => Some(Self::KEInternalError),
14531                "k_eSuccess" => Some(Self::KESuccess),
14532                "k_eDisabled" => Some(Self::KEDisabled),
14533                "k_eTooBusy" => Some(Self::KETooBusy),
14534                "k_eRateLimited" => Some(Self::KERateLimited),
14535                "k_eTimeout" => Some(Self::KETimeout),
14536                _ => None,
14537            }
14538        }
14539    }
14540}
14541#[derive(serde::Serialize, serde::Deserialize)]
14542#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14543pub struct CMsgGcToClientCommendNotification {
14544    #[prost(uint32, optional, tag = "1")]
14545    pub commender_account_id: ::core::option::Option<u32>,
14546    #[prost(string, optional, tag = "2")]
14547    pub commender_name: ::core::option::Option<::prost::alloc::string::String>,
14548    #[prost(uint32, optional, tag = "4")]
14549    pub commender_hero_id: ::core::option::Option<u32>,
14550    #[prost(enumeration = "ECommendType", optional, tag = "5", default = "KEInvalid")]
14551    pub commend_type: ::core::option::Option<i32>,
14552    #[prost(uint64, optional, tag = "6")]
14553    pub match_id: ::core::option::Option<u64>,
14554    #[prost(bool, optional, tag = "7")]
14555    pub enemy_commend: ::core::option::Option<bool>,
14556}
14557#[derive(serde::Serialize, serde::Deserialize)]
14558#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14559pub struct CMsgClientToGcRequestCheatReports {}
14560#[derive(serde::Serialize, serde::Deserialize)]
14561#[derive(Clone, PartialEq, ::prost::Message)]
14562pub struct CMsgClientToGcRequestCheatReportsResponse {
14563    #[prost(
14564        enumeration = "c_msg_client_to_gc_request_cheat_reports_response::EResult",
14565        optional,
14566        tag = "1",
14567        default = "KESuccess"
14568    )]
14569    pub result: ::core::option::Option<i32>,
14570    #[prost(message, repeated, tag = "2")]
14571    pub cheat_reports: ::prost::alloc::vec::Vec<
14572        c_msg_client_to_gc_request_cheat_reports_response::RecentCheatReport,
14573    >,
14574}
14575/// Nested message and enum types in `CMsgClientToGCRequestCheatReportsResponse`.
14576pub mod c_msg_client_to_gc_request_cheat_reports_response {
14577    #[derive(serde::Serialize, serde::Deserialize)]
14578    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14579    pub struct RecentCheatReport {
14580        #[prost(uint32, optional, tag = "1")]
14581        pub account_id: ::core::option::Option<u32>,
14582        #[prost(uint64, optional, tag = "2")]
14583        pub match_id: ::core::option::Option<u64>,
14584        #[prost(uint32, optional, tag = "3")]
14585        pub hero_id: ::core::option::Option<u32>,
14586    }
14587    #[derive(serde::Serialize, serde::Deserialize)]
14588    #[derive(
14589        Clone,
14590        Copy,
14591        Debug,
14592        PartialEq,
14593        Eq,
14594        Hash,
14595        PartialOrd,
14596        Ord,
14597        ::prost::Enumeration
14598    )]
14599    #[repr(i32)]
14600    pub enum EResult {
14601        KESuccess = 0,
14602        KEInvalidPermission = 1,
14603        KEInternalError = 2,
14604    }
14605    impl EResult {
14606        /// String value of the enum field names used in the ProtoBuf definition.
14607        ///
14608        /// The values are not transformed in any way and thus are considered stable
14609        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14610        pub fn as_str_name(&self) -> &'static str {
14611            match self {
14612                Self::KESuccess => "k_eSuccess",
14613                Self::KEInvalidPermission => "k_eInvalidPermission",
14614                Self::KEInternalError => "k_eInternalError",
14615            }
14616        }
14617        /// Creates an enum from field names used in the ProtoBuf definition.
14618        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14619            match value {
14620                "k_eSuccess" => Some(Self::KESuccess),
14621                "k_eInvalidPermission" => Some(Self::KEInvalidPermission),
14622                "k_eInternalError" => Some(Self::KEInternalError),
14623                _ => None,
14624            }
14625        }
14626    }
14627}
14628#[derive(serde::Serialize, serde::Deserialize)]
14629#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14630pub struct CMsgClientToGcGetHeroMmrRankings {
14631    #[prost(uint32, optional, tag = "1")]
14632    pub target_account_id: ::core::option::Option<u32>,
14633}
14634#[derive(serde::Serialize, serde::Deserialize)]
14635#[derive(Clone, PartialEq, ::prost::Message)]
14636pub struct CMsgClientToGcGetHeroMmrRankingsResponse {
14637    #[prost(
14638        enumeration = "c_msg_client_to_gc_get_hero_mmr_rankings_response::EResult",
14639        optional,
14640        tag = "1",
14641        default = "KESuccess"
14642    )]
14643    pub result: ::core::option::Option<i32>,
14644    #[prost(message, repeated, tag = "2")]
14645    pub heroes: ::prost::alloc::vec::Vec<
14646        c_msg_client_to_gc_get_hero_mmr_rankings_response::Hero,
14647    >,
14648}
14649/// Nested message and enum types in `CMsgClientToGCGetHeroMMRRankingsResponse`.
14650pub mod c_msg_client_to_gc_get_hero_mmr_rankings_response {
14651    #[derive(serde::Serialize, serde::Deserialize)]
14652    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14653    pub struct Hero {
14654        #[prost(uint32, optional, tag = "1")]
14655        pub hero_id: ::core::option::Option<u32>,
14656        #[prost(int32, optional, tag = "2")]
14657        pub relative_mmr: ::core::option::Option<i32>,
14658    }
14659    #[derive(serde::Serialize, serde::Deserialize)]
14660    #[derive(
14661        Clone,
14662        Copy,
14663        Debug,
14664        PartialEq,
14665        Eq,
14666        Hash,
14667        PartialOrd,
14668        Ord,
14669        ::prost::Enumeration
14670    )]
14671    #[repr(i32)]
14672    pub enum EResult {
14673        KESuccess = 0,
14674        KEInvalidPermission = 1,
14675        KEInternalError = 2,
14676        KETooBusy = 3,
14677    }
14678    impl EResult {
14679        /// String value of the enum field names used in the ProtoBuf definition.
14680        ///
14681        /// The values are not transformed in any way and thus are considered stable
14682        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14683        pub fn as_str_name(&self) -> &'static str {
14684            match self {
14685                Self::KESuccess => "k_eSuccess",
14686                Self::KEInvalidPermission => "k_eInvalidPermission",
14687                Self::KEInternalError => "k_eInternalError",
14688                Self::KETooBusy => "k_eTooBusy",
14689            }
14690        }
14691        /// Creates an enum from field names used in the ProtoBuf definition.
14692        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14693            match value {
14694                "k_eSuccess" => Some(Self::KESuccess),
14695                "k_eInvalidPermission" => Some(Self::KEInvalidPermission),
14696                "k_eInternalError" => Some(Self::KEInternalError),
14697                "k_eTooBusy" => Some(Self::KETooBusy),
14698                _ => None,
14699            }
14700        }
14701    }
14702}
14703#[derive(serde::Serialize, serde::Deserialize)]
14704#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14705pub struct CMsgClientToGcGetLeaderboard {
14706    #[prost(
14707        enumeration = "ECitadelLeaderboardRegion",
14708        optional,
14709        tag = "1",
14710        default = "KECitadelLeaderboardRegionNone"
14711    )]
14712    pub leaderboard_region: ::core::option::Option<i32>,
14713    #[prost(uint32, optional, tag = "2")]
14714    pub hero_id: ::core::option::Option<u32>,
14715}
14716#[derive(serde::Serialize, serde::Deserialize)]
14717#[derive(Clone, PartialEq, ::prost::Message)]
14718pub struct CMsgClientToGcGetLeaderboardResponse {
14719    #[prost(
14720        enumeration = "c_msg_client_to_gc_get_leaderboard_response::EResult",
14721        optional,
14722        tag = "1",
14723        default = "KESuccess"
14724    )]
14725    pub result: ::core::option::Option<i32>,
14726    #[prost(message, repeated, tag = "2")]
14727    pub entries: ::prost::alloc::vec::Vec<
14728        c_msg_client_to_gc_get_leaderboard_response::LeaderboardEntry,
14729    >,
14730    #[prost(int32, optional, tag = "3", default = "-1")]
14731    pub local_player_index: ::core::option::Option<i32>,
14732}
14733/// Nested message and enum types in `CMsgClientToGCGetLeaderboardResponse`.
14734pub mod c_msg_client_to_gc_get_leaderboard_response {
14735    #[derive(serde::Serialize, serde::Deserialize)]
14736    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14737    pub struct LeaderboardEntry {
14738        #[prost(string, optional, tag = "1")]
14739        pub account_name: ::core::option::Option<::prost::alloc::string::String>,
14740        #[prost(uint32, optional, tag = "2")]
14741        pub rank: ::core::option::Option<u32>,
14742        #[prost(uint32, repeated, packed = "false", tag = "3")]
14743        pub top_hero_ids: ::prost::alloc::vec::Vec<u32>,
14744        #[prost(uint32, optional, tag = "4")]
14745        pub badge_level: ::core::option::Option<u32>,
14746    }
14747    #[derive(serde::Serialize, serde::Deserialize)]
14748    #[derive(
14749        Clone,
14750        Copy,
14751        Debug,
14752        PartialEq,
14753        Eq,
14754        Hash,
14755        PartialOrd,
14756        Ord,
14757        ::prost::Enumeration
14758    )]
14759    #[repr(i32)]
14760    pub enum EResult {
14761        KESuccess = 0,
14762        KEInvalidArguments = 1,
14763        KEInternalError = 2,
14764        KETooBusy = 3,
14765    }
14766    impl EResult {
14767        /// String value of the enum field names used in the ProtoBuf definition.
14768        ///
14769        /// The values are not transformed in any way and thus are considered stable
14770        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14771        pub fn as_str_name(&self) -> &'static str {
14772            match self {
14773                Self::KESuccess => "k_eSuccess",
14774                Self::KEInvalidArguments => "k_eInvalidArguments",
14775                Self::KEInternalError => "k_eInternalError",
14776                Self::KETooBusy => "k_eTooBusy",
14777            }
14778        }
14779        /// Creates an enum from field names used in the ProtoBuf definition.
14780        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14781            match value {
14782                "k_eSuccess" => Some(Self::KESuccess),
14783                "k_eInvalidArguments" => Some(Self::KEInvalidArguments),
14784                "k_eInternalError" => Some(Self::KEInternalError),
14785                "k_eTooBusy" => Some(Self::KETooBusy),
14786                _ => None,
14787            }
14788        }
14789    }
14790}
14791#[derive(serde::Serialize, serde::Deserialize)]
14792#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14793pub struct CMsgClientToGcGetAccountLeaderboards {
14794    #[prost(uint32, optional, tag = "1")]
14795    pub account_id: ::core::option::Option<u32>,
14796}
14797#[derive(serde::Serialize, serde::Deserialize)]
14798#[derive(Clone, PartialEq, ::prost::Message)]
14799pub struct CMsgClientToGcGetAccountLeaderboardsResponse {
14800    #[prost(
14801        enumeration = "c_msg_client_to_gc_get_account_leaderboards_response::EResult",
14802        optional,
14803        tag = "1",
14804        default = "KESuccess"
14805    )]
14806    pub result: ::core::option::Option<i32>,
14807    #[prost(string, optional, tag = "2")]
14808    pub account_name: ::core::option::Option<::prost::alloc::string::String>,
14809    #[prost(message, repeated, tag = "3")]
14810    pub entries: ::prost::alloc::vec::Vec<
14811        c_msg_client_to_gc_get_account_leaderboards_response::LeaderboardEntry,
14812    >,
14813}
14814/// Nested message and enum types in `CMsgClientToGCGetAccountLeaderboardsResponse`.
14815pub mod c_msg_client_to_gc_get_account_leaderboards_response {
14816    #[derive(serde::Serialize, serde::Deserialize)]
14817    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14818    pub struct LeaderboardEntry {
14819        #[prost(
14820            enumeration = "super::ECitadelLeaderboardRegion",
14821            optional,
14822            tag = "1",
14823            default = "KECitadelLeaderboardRegionNone"
14824        )]
14825        pub region: ::core::option::Option<i32>,
14826        #[prost(uint32, optional, tag = "2")]
14827        pub hero_id: ::core::option::Option<u32>,
14828        #[prost(uint32, optional, tag = "3")]
14829        pub rank: ::core::option::Option<u32>,
14830    }
14831    #[derive(serde::Serialize, serde::Deserialize)]
14832    #[derive(
14833        Clone,
14834        Copy,
14835        Debug,
14836        PartialEq,
14837        Eq,
14838        Hash,
14839        PartialOrd,
14840        Ord,
14841        ::prost::Enumeration
14842    )]
14843    #[repr(i32)]
14844    pub enum EResult {
14845        KESuccess = 0,
14846        KEInvalidPermission = 1,
14847        KEInternalError = 2,
14848        KETooBusy = 3,
14849    }
14850    impl EResult {
14851        /// String value of the enum field names used in the ProtoBuf definition.
14852        ///
14853        /// The values are not transformed in any way and thus are considered stable
14854        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14855        pub fn as_str_name(&self) -> &'static str {
14856            match self {
14857                Self::KESuccess => "k_eSuccess",
14858                Self::KEInvalidPermission => "k_eInvalidPermission",
14859                Self::KEInternalError => "k_eInternalError",
14860                Self::KETooBusy => "k_eTooBusy",
14861            }
14862        }
14863        /// Creates an enum from field names used in the ProtoBuf definition.
14864        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14865            match value {
14866                "k_eSuccess" => Some(Self::KESuccess),
14867                "k_eInvalidPermission" => Some(Self::KEInvalidPermission),
14868                "k_eInternalError" => Some(Self::KEInternalError),
14869                "k_eTooBusy" => Some(Self::KETooBusy),
14870                _ => None,
14871            }
14872        }
14873    }
14874}
14875#[derive(serde::Serialize, serde::Deserialize)]
14876#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14877pub struct CMsgClientToGcGenerateChallengeSet {}
14878#[derive(serde::Serialize, serde::Deserialize)]
14879#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14880pub struct CMsgClientToGcGenerateChallengeSetResponse {
14881    #[prost(
14882        enumeration = "c_msg_client_to_gc_generate_challenge_set_response::EResult",
14883        optional,
14884        tag = "1",
14885        default = "KESuccess"
14886    )]
14887    pub result: ::core::option::Option<i32>,
14888}
14889/// Nested message and enum types in `CMsgClientToGCGenerateChallengeSetResponse`.
14890pub mod c_msg_client_to_gc_generate_challenge_set_response {
14891    #[derive(serde::Serialize, serde::Deserialize)]
14892    #[derive(
14893        Clone,
14894        Copy,
14895        Debug,
14896        PartialEq,
14897        Eq,
14898        Hash,
14899        PartialOrd,
14900        Ord,
14901        ::prost::Enumeration
14902    )]
14903    #[repr(i32)]
14904    pub enum EResult {
14905        KESuccess = 0,
14906        KEInternalError = 1,
14907        KEChallengeActive = 2,
14908        KEChallengeChoiceExists = 3,
14909    }
14910    impl EResult {
14911        /// String value of the enum field names used in the ProtoBuf definition.
14912        ///
14913        /// The values are not transformed in any way and thus are considered stable
14914        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14915        pub fn as_str_name(&self) -> &'static str {
14916            match self {
14917                Self::KESuccess => "k_eSuccess",
14918                Self::KEInternalError => "k_eInternalError",
14919                Self::KEChallengeActive => "k_eChallengeActive",
14920                Self::KEChallengeChoiceExists => "k_eChallengeChoiceExists",
14921            }
14922        }
14923        /// Creates an enum from field names used in the ProtoBuf definition.
14924        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14925            match value {
14926                "k_eSuccess" => Some(Self::KESuccess),
14927                "k_eInternalError" => Some(Self::KEInternalError),
14928                "k_eChallengeActive" => Some(Self::KEChallengeActive),
14929                "k_eChallengeChoiceExists" => Some(Self::KEChallengeChoiceExists),
14930                _ => None,
14931            }
14932        }
14933    }
14934}
14935#[derive(serde::Serialize, serde::Deserialize)]
14936#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14937pub struct CMsgClientToGcChallengeActivate {
14938    #[prost(uint64, optional, tag = "1")]
14939    pub challenge_id: ::core::option::Option<u64>,
14940}
14941#[derive(serde::Serialize, serde::Deserialize)]
14942#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14943pub struct CMsgClientToGcChallengeActivateResponse {
14944    #[prost(
14945        enumeration = "c_msg_client_to_gc_challenge_activate_response::EResult",
14946        optional,
14947        tag = "1",
14948        default = "KESuccess"
14949    )]
14950    pub result: ::core::option::Option<i32>,
14951}
14952/// Nested message and enum types in `CMsgClientToGCChallengeActivateResponse`.
14953pub mod c_msg_client_to_gc_challenge_activate_response {
14954    #[derive(serde::Serialize, serde::Deserialize)]
14955    #[derive(
14956        Clone,
14957        Copy,
14958        Debug,
14959        PartialEq,
14960        Eq,
14961        Hash,
14962        PartialOrd,
14963        Ord,
14964        ::prost::Enumeration
14965    )]
14966    #[repr(i32)]
14967    pub enum EResult {
14968        KESuccess = 0,
14969        KEInternalError = 1,
14970        KEInvalidChallenge = 2,
14971    }
14972    impl EResult {
14973        /// String value of the enum field names used in the ProtoBuf definition.
14974        ///
14975        /// The values are not transformed in any way and thus are considered stable
14976        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14977        pub fn as_str_name(&self) -> &'static str {
14978            match self {
14979                Self::KESuccess => "k_eSuccess",
14980                Self::KEInternalError => "k_eInternalError",
14981                Self::KEInvalidChallenge => "k_eInvalidChallenge",
14982            }
14983        }
14984        /// Creates an enum from field names used in the ProtoBuf definition.
14985        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14986            match value {
14987                "k_eSuccess" => Some(Self::KESuccess),
14988                "k_eInternalError" => Some(Self::KEInternalError),
14989                "k_eInvalidChallenge" => Some(Self::KEInvalidChallenge),
14990                _ => None,
14991            }
14992        }
14993    }
14994}
14995#[derive(serde::Serialize, serde::Deserialize)]
14996#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14997pub struct CMsgClientToGcChallengeClaim {
14998    #[prost(uint64, optional, tag = "1")]
14999    pub challenge_id: ::core::option::Option<u64>,
15000}
15001#[derive(serde::Serialize, serde::Deserialize)]
15002#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15003pub struct CMsgClientToGcChallengeClaimResponse {
15004    #[prost(
15005        enumeration = "c_msg_client_to_gc_challenge_claim_response::EResult",
15006        optional,
15007        tag = "1",
15008        default = "KESuccess"
15009    )]
15010    pub result: ::core::option::Option<i32>,
15011}
15012/// Nested message and enum types in `CMsgClientToGCChallengeClaimResponse`.
15013pub mod c_msg_client_to_gc_challenge_claim_response {
15014    #[derive(serde::Serialize, serde::Deserialize)]
15015    #[derive(
15016        Clone,
15017        Copy,
15018        Debug,
15019        PartialEq,
15020        Eq,
15021        Hash,
15022        PartialOrd,
15023        Ord,
15024        ::prost::Enumeration
15025    )]
15026    #[repr(i32)]
15027    pub enum EResult {
15028        KESuccess = 0,
15029        KEInternalError = 1,
15030        KEInvalidChallenge = 2,
15031        KEChallengeIncomplete = 3,
15032    }
15033    impl EResult {
15034        /// String value of the enum field names used in the ProtoBuf definition.
15035        ///
15036        /// The values are not transformed in any way and thus are considered stable
15037        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15038        pub fn as_str_name(&self) -> &'static str {
15039            match self {
15040                Self::KESuccess => "k_eSuccess",
15041                Self::KEInternalError => "k_eInternalError",
15042                Self::KEInvalidChallenge => "k_eInvalidChallenge",
15043                Self::KEChallengeIncomplete => "k_eChallengeIncomplete",
15044            }
15045        }
15046        /// Creates an enum from field names used in the ProtoBuf definition.
15047        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
15048            match value {
15049                "k_eSuccess" => Some(Self::KESuccess),
15050                "k_eInternalError" => Some(Self::KEInternalError),
15051                "k_eInvalidChallenge" => Some(Self::KEInvalidChallenge),
15052                "k_eChallengeIncomplete" => Some(Self::KEChallengeIncomplete),
15053                _ => None,
15054            }
15055        }
15056    }
15057}
15058#[derive(serde::Serialize, serde::Deserialize)]
15059#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15060pub struct CMsgClientToGcChallengeCancel {
15061    #[prost(uint64, optional, tag = "1")]
15062    pub challenge_id: ::core::option::Option<u64>,
15063}
15064#[derive(serde::Serialize, serde::Deserialize)]
15065#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15066pub struct CMsgClientToGcChallengeCancelResponse {
15067    #[prost(
15068        enumeration = "c_msg_client_to_gc_challenge_cancel_response::EResult",
15069        optional,
15070        tag = "1",
15071        default = "KESuccess"
15072    )]
15073    pub result: ::core::option::Option<i32>,
15074}
15075/// Nested message and enum types in `CMsgClientToGCChallengeCancelResponse`.
15076pub mod c_msg_client_to_gc_challenge_cancel_response {
15077    #[derive(serde::Serialize, serde::Deserialize)]
15078    #[derive(
15079        Clone,
15080        Copy,
15081        Debug,
15082        PartialEq,
15083        Eq,
15084        Hash,
15085        PartialOrd,
15086        Ord,
15087        ::prost::Enumeration
15088    )]
15089    #[repr(i32)]
15090    pub enum EResult {
15091        KESuccess = 0,
15092        KEInternalError = 1,
15093        KEInvalidChallenge = 2,
15094        KEChallengeComplete = 3,
15095    }
15096    impl EResult {
15097        /// String value of the enum field names used in the ProtoBuf definition.
15098        ///
15099        /// The values are not transformed in any way and thus are considered stable
15100        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15101        pub fn as_str_name(&self) -> &'static str {
15102            match self {
15103                Self::KESuccess => "k_eSuccess",
15104                Self::KEInternalError => "k_eInternalError",
15105                Self::KEInvalidChallenge => "k_eInvalidChallenge",
15106                Self::KEChallengeComplete => "k_eChallengeComplete",
15107            }
15108        }
15109        /// Creates an enum from field names used in the ProtoBuf definition.
15110        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
15111            match value {
15112                "k_eSuccess" => Some(Self::KESuccess),
15113                "k_eInternalError" => Some(Self::KEInternalError),
15114                "k_eInvalidChallenge" => Some(Self::KEInvalidChallenge),
15115                "k_eChallengeComplete" => Some(Self::KEChallengeComplete),
15116                _ => None,
15117            }
15118        }
15119    }
15120}
15121#[derive(serde::Serialize, serde::Deserialize)]
15122#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15123pub struct CMsgSurveyQuestion {
15124    #[prost(uint32, optional, tag = "1")]
15125    pub question_id: ::core::option::Option<u32>,
15126    #[prost(
15127        enumeration = "c_msg_survey_question::EQuestionType",
15128        optional,
15129        tag = "2",
15130        default = "KEInvalid"
15131    )]
15132    pub question_type: ::core::option::Option<i32>,
15133    #[prost(uint32, repeated, packed = "false", tag = "3")]
15134    pub question_params: ::prost::alloc::vec::Vec<u32>,
15135    #[prost(uint32, optional, tag = "4")]
15136    pub remaining_questions: ::core::option::Option<u32>,
15137    #[prost(uint32, optional, tag = "5")]
15138    pub answered_questions: ::core::option::Option<u32>,
15139}
15140/// Nested message and enum types in `CMsgSurveyQuestion`.
15141pub mod c_msg_survey_question {
15142    #[derive(serde::Serialize, serde::Deserialize)]
15143    #[derive(
15144        Clone,
15145        Copy,
15146        Debug,
15147        PartialEq,
15148        Eq,
15149        Hash,
15150        PartialOrd,
15151        Ord,
15152        ::prost::Enumeration
15153    )]
15154    #[repr(i32)]
15155    pub enum EQuestionType {
15156        KEInvalid = 0,
15157        KEItemPower = 1,
15158        KEItemDesign = 2,
15159        KEHeroPlayAgainst = 3,
15160        KEMoreFunHero = 4,
15161        KEHeroPower = 5,
15162        KEHeroPlayAs = 6,
15163        KEHeroFrontliner = 7,
15164        KEHeroCarry = 8,
15165        KEHeroDisable = 9,
15166        KEHeroUtility = 10,
15167    }
15168    impl EQuestionType {
15169        /// String value of the enum field names used in the ProtoBuf definition.
15170        ///
15171        /// The values are not transformed in any way and thus are considered stable
15172        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15173        pub fn as_str_name(&self) -> &'static str {
15174            match self {
15175                Self::KEInvalid => "k_eInvalid",
15176                Self::KEItemPower => "k_eItemPower",
15177                Self::KEItemDesign => "k_eItemDesign",
15178                Self::KEHeroPlayAgainst => "k_eHeroPlayAgainst",
15179                Self::KEMoreFunHero => "k_eMoreFunHero",
15180                Self::KEHeroPower => "k_eHeroPower",
15181                Self::KEHeroPlayAs => "k_eHeroPlayAs",
15182                Self::KEHeroFrontliner => "k_eHeroFrontliner",
15183                Self::KEHeroCarry => "k_eHeroCarry",
15184                Self::KEHeroDisable => "k_eHeroDisable",
15185                Self::KEHeroUtility => "k_eHeroUtility",
15186            }
15187        }
15188        /// Creates an enum from field names used in the ProtoBuf definition.
15189        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
15190            match value {
15191                "k_eInvalid" => Some(Self::KEInvalid),
15192                "k_eItemPower" => Some(Self::KEItemPower),
15193                "k_eItemDesign" => Some(Self::KEItemDesign),
15194                "k_eHeroPlayAgainst" => Some(Self::KEHeroPlayAgainst),
15195                "k_eMoreFunHero" => Some(Self::KEMoreFunHero),
15196                "k_eHeroPower" => Some(Self::KEHeroPower),
15197                "k_eHeroPlayAs" => Some(Self::KEHeroPlayAs),
15198                "k_eHeroFrontliner" => Some(Self::KEHeroFrontliner),
15199                "k_eHeroCarry" => Some(Self::KEHeroCarry),
15200                "k_eHeroDisable" => Some(Self::KEHeroDisable),
15201                "k_eHeroUtility" => Some(Self::KEHeroUtility),
15202                _ => None,
15203            }
15204        }
15205    }
15206}
15207#[derive(serde::Serialize, serde::Deserialize)]
15208#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15209pub struct CMsgClientToGcGetSurveyQuestion {
15210    #[prost(
15211        enumeration = "c_msg_survey_question::EQuestionType",
15212        optional,
15213        tag = "1",
15214        default = "KEInvalid"
15215    )]
15216    pub dev_force_new_question_type: ::core::option::Option<i32>,
15217}
15218#[derive(serde::Serialize, serde::Deserialize)]
15219#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15220pub struct CMsgClientToGcGetSurveyQuestionResponse {
15221    #[prost(
15222        enumeration = "c_msg_client_to_gc_get_survey_question_response::EResult",
15223        optional,
15224        tag = "1",
15225        default = "KESuccess"
15226    )]
15227    pub result: ::core::option::Option<i32>,
15228    #[prost(message, optional, tag = "2")]
15229    pub question: ::core::option::Option<CMsgSurveyQuestion>,
15230}
15231/// Nested message and enum types in `CMsgClientToGCGetSurveyQuestionResponse`.
15232pub mod c_msg_client_to_gc_get_survey_question_response {
15233    #[derive(serde::Serialize, serde::Deserialize)]
15234    #[derive(
15235        Clone,
15236        Copy,
15237        Debug,
15238        PartialEq,
15239        Eq,
15240        Hash,
15241        PartialOrd,
15242        Ord,
15243        ::prost::Enumeration
15244    )]
15245    #[repr(i32)]
15246    pub enum EResult {
15247        KESuccess = 0,
15248        KEInternalError = 1,
15249        KETooBusy = 2,
15250    }
15251    impl EResult {
15252        /// String value of the enum field names used in the ProtoBuf definition.
15253        ///
15254        /// The values are not transformed in any way and thus are considered stable
15255        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15256        pub fn as_str_name(&self) -> &'static str {
15257            match self {
15258                Self::KESuccess => "k_eSuccess",
15259                Self::KEInternalError => "k_eInternalError",
15260                Self::KETooBusy => "k_eTooBusy",
15261            }
15262        }
15263        /// Creates an enum from field names used in the ProtoBuf definition.
15264        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
15265            match value {
15266                "k_eSuccess" => Some(Self::KESuccess),
15267                "k_eInternalError" => Some(Self::KEInternalError),
15268                "k_eTooBusy" => Some(Self::KETooBusy),
15269                _ => None,
15270            }
15271        }
15272    }
15273}
15274#[derive(serde::Serialize, serde::Deserialize)]
15275#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15276pub struct CMsgClientToGcSubmitSurvey {
15277    #[prost(uint32, optional, tag = "1")]
15278    pub question_id: ::core::option::Option<u32>,
15279    #[prost(bool, optional, tag = "2")]
15280    pub is_skip: ::core::option::Option<bool>,
15281    #[prost(uint32, optional, tag = "3")]
15282    pub response_value: ::core::option::Option<u32>,
15283    #[prost(
15284        enumeration = "c_msg_survey_question::EQuestionType",
15285        optional,
15286        tag = "4",
15287        default = "KEInvalid"
15288    )]
15289    pub dev_force_new_question_type: ::core::option::Option<i32>,
15290}
15291#[derive(serde::Serialize, serde::Deserialize)]
15292#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15293pub struct CMsgClientToGcSubmitSurveyResponse {
15294    #[prost(
15295        enumeration = "c_msg_client_to_gc_submit_survey_response::EResult",
15296        optional,
15297        tag = "1",
15298        default = "KESuccess"
15299    )]
15300    pub result: ::core::option::Option<i32>,
15301    #[prost(message, optional, tag = "2")]
15302    pub question: ::core::option::Option<CMsgSurveyQuestion>,
15303}
15304/// Nested message and enum types in `CMsgClientToGCSubmitSurveyResponse`.
15305pub mod c_msg_client_to_gc_submit_survey_response {
15306    #[derive(serde::Serialize, serde::Deserialize)]
15307    #[derive(
15308        Clone,
15309        Copy,
15310        Debug,
15311        PartialEq,
15312        Eq,
15313        Hash,
15314        PartialOrd,
15315        Ord,
15316        ::prost::Enumeration
15317    )]
15318    #[repr(i32)]
15319    pub enum EResult {
15320        KESuccess = 0,
15321        KEInternalError = 1,
15322        KETooBusy = 2,
15323    }
15324    impl EResult {
15325        /// String value of the enum field names used in the ProtoBuf definition.
15326        ///
15327        /// The values are not transformed in any way and thus are considered stable
15328        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15329        pub fn as_str_name(&self) -> &'static str {
15330            match self {
15331                Self::KESuccess => "k_eSuccess",
15332                Self::KEInternalError => "k_eInternalError",
15333                Self::KETooBusy => "k_eTooBusy",
15334            }
15335        }
15336        /// Creates an enum from field names used in the ProtoBuf definition.
15337        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
15338            match value {
15339                "k_eSuccess" => Some(Self::KESuccess),
15340                "k_eInternalError" => Some(Self::KEInternalError),
15341                "k_eTooBusy" => Some(Self::KETooBusy),
15342                _ => None,
15343            }
15344        }
15345    }
15346}
15347#[derive(serde::Serialize, serde::Deserialize)]
15348#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15349pub struct CMsgClientToGcGetRankData {}
15350#[derive(serde::Serialize, serde::Deserialize)]
15351#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15352pub struct CMsgGcToClientGetRankDataResponse {
15353    #[prost(
15354        enumeration = "c_msg_gc_to_client_get_rank_data_response::EResultCode",
15355        optional,
15356        tag = "1",
15357        default = "KSucceeded"
15358    )]
15359    pub result: ::core::option::Option<i32>,
15360    #[prost(int32, optional, tag = "2")]
15361    pub current_rank_confidence: ::core::option::Option<i32>,
15362    #[prost(int32, optional, tag = "3")]
15363    pub calibrated_rank_confidence: ::core::option::Option<i32>,
15364    #[prost(bool, optional, tag = "4")]
15365    pub requires_calibration: ::core::option::Option<bool>,
15366}
15367/// Nested message and enum types in `CMsgGCToClientGetRankDataResponse`.
15368pub mod c_msg_gc_to_client_get_rank_data_response {
15369    #[derive(serde::Serialize, serde::Deserialize)]
15370    #[derive(
15371        Clone,
15372        Copy,
15373        Debug,
15374        PartialEq,
15375        Eq,
15376        Hash,
15377        PartialOrd,
15378        Ord,
15379        ::prost::Enumeration
15380    )]
15381    #[repr(i32)]
15382    pub enum EResultCode {
15383        KSucceeded = 0,
15384        KFailed = 1,
15385    }
15386    impl EResultCode {
15387        /// String value of the enum field names used in the ProtoBuf definition.
15388        ///
15389        /// The values are not transformed in any way and thus are considered stable
15390        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15391        pub fn as_str_name(&self) -> &'static str {
15392            match self {
15393                Self::KSucceeded => "k_Succeeded",
15394                Self::KFailed => "k_Failed",
15395            }
15396        }
15397        /// Creates an enum from field names used in the ProtoBuf definition.
15398        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
15399            match value {
15400                "k_Succeeded" => Some(Self::KSucceeded),
15401                "k_Failed" => Some(Self::KFailed),
15402                _ => None,
15403            }
15404        }
15405    }
15406}
15407#[derive(serde::Serialize, serde::Deserialize)]
15408#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15409pub struct CMsgGcToClientRankDataUpdate {
15410    #[prost(message, optional, tag = "2")]
15411    pub rank_info: ::core::option::Option<CMsgGcToClientGetRankDataResponse>,
15412}
15413#[derive(serde::Serialize, serde::Deserialize)]
15414#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15415pub struct CMsgClientToGcRequestHeroReleaseVoteTally {
15416    #[prost(uint32, repeated, tag = "1")]
15417    pub vote_rounds: ::prost::alloc::vec::Vec<u32>,
15418}
15419#[derive(serde::Serialize, serde::Deserialize)]
15420#[derive(Clone, PartialEq, ::prost::Message)]
15421pub struct CMsgGcToClientUpdateHeroReleaseVoteTally {
15422    #[prost(message, repeated, tag = "1")]
15423    pub vote_round_to_tally: ::prost::alloc::vec::Vec<
15424        c_msg_gc_to_client_update_hero_release_vote_tally::VoteRoundToTallyEntry,
15425    >,
15426}
15427/// Nested message and enum types in `CMsgGCToClientUpdateHeroReleaseVoteTally`.
15428pub mod c_msg_gc_to_client_update_hero_release_vote_tally {
15429    #[derive(serde::Serialize, serde::Deserialize)]
15430    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15431    pub struct VoteRoundToTallyEntry {
15432        #[prost(uint32, optional, tag = "1")]
15433        pub key: ::core::option::Option<u32>,
15434        #[prost(message, optional, tag = "2")]
15435        pub value: ::core::option::Option<super::CMsgHeroReleaseVoteTally>,
15436    }
15437}
15438#[derive(serde::Serialize, serde::Deserialize)]
15439#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15440pub struct CMsgClientToGcSubmitHeroReleaseVote {
15441    #[prost(uint32, optional, tag = "1")]
15442    pub vote_round: ::core::option::Option<u32>,
15443    #[prost(uint32, optional, tag = "2")]
15444    pub vote_option: ::core::option::Option<u32>,
15445}
15446#[derive(serde::Serialize, serde::Deserialize)]
15447#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15448pub struct CMsgClientToGcPartySendChatMsg {
15449    #[prost(fixed64, optional, tag = "1")]
15450    pub party_id: ::core::option::Option<u64>,
15451    #[prost(string, optional, tag = "2")]
15452    pub chat_msg: ::core::option::Option<::prost::alloc::string::String>,
15453}
15454#[derive(serde::Serialize, serde::Deserialize)]
15455#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15456pub struct CMsgClientToGcPartySendChatMsgResponse {
15457    #[prost(
15458        enumeration = "c_msg_client_to_gc_party_send_chat_msg_response::EResultCode",
15459        optional,
15460        tag = "1",
15461        default = "KESuccess"
15462    )]
15463    pub result: ::core::option::Option<i32>,
15464}
15465/// Nested message and enum types in `CMsgClientToGCPartySendChatMsgResponse`.
15466pub mod c_msg_client_to_gc_party_send_chat_msg_response {
15467    #[derive(serde::Serialize, serde::Deserialize)]
15468    #[derive(
15469        Clone,
15470        Copy,
15471        Debug,
15472        PartialEq,
15473        Eq,
15474        Hash,
15475        PartialOrd,
15476        Ord,
15477        ::prost::Enumeration
15478    )]
15479    #[repr(i32)]
15480    pub enum EResultCode {
15481        KESuccess = 0,
15482        KEInternalError = 1,
15483        KEInvalidPermission = 2,
15484        KEDisabled = 3,
15485        KERateLimited = 4,
15486        KEInvalidMsg = 5,
15487    }
15488    impl EResultCode {
15489        /// String value of the enum field names used in the ProtoBuf definition.
15490        ///
15491        /// The values are not transformed in any way and thus are considered stable
15492        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15493        pub fn as_str_name(&self) -> &'static str {
15494            match self {
15495                Self::KESuccess => "k_eSuccess",
15496                Self::KEInternalError => "k_eInternalError",
15497                Self::KEInvalidPermission => "k_eInvalidPermission",
15498                Self::KEDisabled => "k_eDisabled",
15499                Self::KERateLimited => "k_eRateLimited",
15500                Self::KEInvalidMsg => "k_eInvalidMsg",
15501            }
15502        }
15503        /// Creates an enum from field names used in the ProtoBuf definition.
15504        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
15505            match value {
15506                "k_eSuccess" => Some(Self::KESuccess),
15507                "k_eInternalError" => Some(Self::KEInternalError),
15508                "k_eInvalidPermission" => Some(Self::KEInvalidPermission),
15509                "k_eDisabled" => Some(Self::KEDisabled),
15510                "k_eRateLimited" => Some(Self::KERateLimited),
15511                "k_eInvalidMsg" => Some(Self::KEInvalidMsg),
15512                _ => None,
15513            }
15514        }
15515    }
15516}
15517#[derive(serde::Serialize, serde::Deserialize)]
15518#[derive(Clone, PartialEq, ::prost::Message)]
15519pub struct CMsgGcToClientPartyChatMsg {
15520    #[prost(fixed64, optional, tag = "1")]
15521    pub party_id: ::core::option::Option<u64>,
15522    #[prost(message, repeated, tag = "2")]
15523    pub chat_lines: ::prost::alloc::vec::Vec<
15524        c_msg_gc_to_client_party_chat_msg::ChatLine,
15525    >,
15526}
15527/// Nested message and enum types in `CMsgGCToClientPartyChatMsg`.
15528pub mod c_msg_gc_to_client_party_chat_msg {
15529    #[derive(serde::Serialize, serde::Deserialize)]
15530    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15531    pub struct ChatLine {
15532        #[prost(uint32, optional, tag = "1")]
15533        pub account_id: ::core::option::Option<u32>,
15534        #[prost(string, optional, tag = "2")]
15535        pub chat_msg: ::core::option::Option<::prost::alloc::string::String>,
15536        #[prost(uint32, optional, tag = "3")]
15537        pub time_stamp: ::core::option::Option<u32>,
15538    }
15539}
15540#[derive(serde::Serialize, serde::Deserialize)]
15541#[derive(Clone, PartialEq, ::prost::Message)]
15542pub struct CMsgPostGameProgressData {
15543    #[prost(uint64, optional, tag = "1")]
15544    pub match_id: ::core::option::Option<u64>,
15545    #[prost(
15546        enumeration = "ECitadelLobbyTeam",
15547        optional,
15548        tag = "2",
15549        default = "KECitadelLobbyTeamTeam0"
15550    )]
15551    pub winning_team: ::core::option::Option<i32>,
15552    #[prost(message, optional, tag = "3")]
15553    pub local_player: ::core::option::Option<c_msg_post_game_progress_data::PlayerData>,
15554    #[prost(message, repeated, tag = "4")]
15555    pub mvp_players: ::prost::alloc::vec::Vec<c_msg_post_game_progress_data::PlayerData>,
15556}
15557/// Nested message and enum types in `CMsgPostGameProgressData`.
15558pub mod c_msg_post_game_progress_data {
15559    #[derive(serde::Serialize, serde::Deserialize)]
15560    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15561    pub struct PlayerAccolade {
15562        #[prost(uint32, optional, tag = "1")]
15563        pub accolade_id: ::core::option::Option<u32>,
15564        #[prost(string, optional, tag = "2")]
15565        pub accolade_name: ::core::option::Option<::prost::alloc::string::String>,
15566        #[prost(string, optional, tag = "3")]
15567        pub accolade_desc: ::core::option::Option<::prost::alloc::string::String>,
15568        #[prost(uint32, optional, tag = "4")]
15569        pub accolade_stars_achieved: ::core::option::Option<u32>,
15570        #[prost(int32, optional, tag = "5")]
15571        pub accolade_stat_value: ::core::option::Option<i32>,
15572    }
15573    #[derive(serde::Serialize, serde::Deserialize)]
15574    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
15575    pub struct PlayerAward {
15576        #[prost(uint32, optional, tag = "2")]
15577        pub award_id: ::core::option::Option<u32>,
15578        #[prost(int32, optional, tag = "3")]
15579        pub award_value: ::core::option::Option<i32>,
15580        #[prost(uint32, optional, tag = "4")]
15581        pub award_rank: ::core::option::Option<u32>,
15582        #[prost(string, optional, tag = "5")]
15583        pub award_desc: ::core::option::Option<::prost::alloc::string::String>,
15584        #[prost(string, optional, tag = "6")]
15585        pub award_class: ::core::option::Option<::prost::alloc::string::String>,
15586    }
15587    #[derive(serde::Serialize, serde::Deserialize)]
15588    #[derive(Clone, PartialEq, ::prost::Message)]
15589    pub struct PlayerData {
15590        #[prost(uint32, optional, tag = "1")]
15591        pub player_slot: ::core::option::Option<u32>,
15592        #[prost(uint32, optional, tag = "2")]
15593        pub account_id: ::core::option::Option<u32>,
15594        #[prost(uint32, optional, tag = "3")]
15595        pub hero_id: ::core::option::Option<u32>,
15596        #[prost(
15597            enumeration = "super::ECitadelLobbyTeam",
15598            optional,
15599            tag = "4",
15600            default = "KECitadelLobbyTeamTeam0"
15601        )]
15602        pub team: ::core::option::Option<i32>,
15603        #[prost(uint32, optional, tag = "5")]
15604        pub mvp_rank: ::core::option::Option<u32>,
15605        #[prost(message, repeated, tag = "6")]
15606        pub accolades: ::prost::alloc::vec::Vec<PlayerAccolade>,
15607        #[prost(message, repeated, tag = "7")]
15608        pub awards: ::prost::alloc::vec::Vec<PlayerAward>,
15609    }
15610}
15611#[derive(serde::Serialize, serde::Deserialize)]
15612#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15613pub struct CMsgClientToGcSetAccountPrivacySetting {
15614    #[prost(
15615        enumeration = "cso_game_account_client::EPrivacySetting",
15616        optional,
15617        tag = "1",
15618        default = "KEPrivacyFriendsOnly"
15619    )]
15620    pub privacy_setting: ::core::option::Option<i32>,
15621}
15622#[derive(serde::Serialize, serde::Deserialize)]
15623#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
15624pub struct CMsgClientToGcSetAccountPrivacySettingResponse {
15625    #[prost(
15626        enumeration = "c_msg_client_to_gc_set_account_privacy_setting_response::EResultCode",
15627        optional,
15628        tag = "1",
15629        default = "KESuccess"
15630    )]
15631    pub result: ::core::option::Option<i32>,
15632}
15633/// Nested message and enum types in `CMsgClientToGCSetAccountPrivacySettingResponse`.
15634pub mod c_msg_client_to_gc_set_account_privacy_setting_response {
15635    #[derive(serde::Serialize, serde::Deserialize)]
15636    #[derive(
15637        Clone,
15638        Copy,
15639        Debug,
15640        PartialEq,
15641        Eq,
15642        Hash,
15643        PartialOrd,
15644        Ord,
15645        ::prost::Enumeration
15646    )]
15647    #[repr(i32)]
15648    pub enum EResultCode {
15649        KESuccess = 0,
15650        KEInternalError = 1,
15651    }
15652    impl EResultCode {
15653        /// String value of the enum field names used in the ProtoBuf definition.
15654        ///
15655        /// The values are not transformed in any way and thus are considered stable
15656        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15657        pub fn as_str_name(&self) -> &'static str {
15658            match self {
15659                Self::KESuccess => "k_eSuccess",
15660                Self::KEInternalError => "k_eInternalError",
15661            }
15662        }
15663        /// Creates an enum from field names used in the ProtoBuf definition.
15664        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
15665            match value {
15666                "k_eSuccess" => Some(Self::KESuccess),
15667                "k_eInternalError" => Some(Self::KEInternalError),
15668                _ => None,
15669            }
15670        }
15671    }
15672}
15673#[derive(serde::Serialize, serde::Deserialize)]
15674#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
15675#[repr(i32)]
15676pub enum EgcCitadelClientMessages {
15677    KEMsgClientToGcStartMatchmaking = 9010,
15678    KEMsgClientToGcStartMatchmakingResponse = 9011,
15679    KEMsgClientToGcStopMatchmaking = 9012,
15680    KEMsgClientToGcStopMatchmakingResponse = 9013,
15681    KEMsgGcToClientMatchmakingStopped = 9014,
15682    KEMsgClientToGcLeaveLobby = 9015,
15683    KEMsgClientToGcLeaveLobbyResponse = 9016,
15684    KEMsgClientToGcIsInMatchmaking = 9017,
15685    KEMsgClientToGcIsInMatchmakingResponse = 9018,
15686    KEMsgGcToClientDevPlaytestStatus = 9019,
15687    KEMsgClientToGcDevSetMmBias = 9023,
15688    KEMsgClientToGcGetProfileCard = 9024,
15689    KEMsgClientToGcGetProfileCardResponse = 9025,
15690    KEMsgClientToGcUpdateRoster = 9026,
15691    KEMsgClientToGcUpdateRosterResponse = 9027,
15692    KEMsgGcToClientProfileCardUpdated = 9028,
15693    KEMsgGcToClientDevAnnouncements = 9029,
15694    KEMsgClientToGcModifyDevAnnouncements = 9030,
15695    KEMsgClientToGcModifyDevAnnouncementsResponse = 9031,
15696    KEMsgGcToClientSdrTicket = 9100,
15697    KEMsgClientToGcReplacementSdrTicket = 9101,
15698    KEMsgClientToGcReplacementSdrTicketResponse = 9102,
15699    KEMsgClientToGcSetServerConVar = 9107,
15700    KEMsgClientToGcSetServerConVarResponse = 9108,
15701    KEMsgClientToGcSpectateLobby = 9109,
15702    KEMsgClientToGcSpectateLobbyResponse = 9110,
15703    KEMsgClientToGcPostMatchSurveyResponse = 9111,
15704    KEMsgClientToGcGetMatchHistory = 9112,
15705    KEMsgClientToGcGetMatchHistoryResponse = 9113,
15706    KEMsgClientToGcSpectateUser = 9116,
15707    KEMsgClientToGcSpectateUserResponse = 9117,
15708    KEMsgClientToGcPartyCreate = 9123,
15709    KEMsgClientToGcPartyCreateResponse = 9124,
15710    KEMsgClientToGcPartyLeave = 9125,
15711    KEMsgClientToGcPartyLeaveResponse = 9126,
15712    KEMsgClientToGcPartyJoin = 9127,
15713    KEMsgClientToGcPartyJoinResponse = 9128,
15714    KEMsgClientToGcPartyAction = 9129,
15715    KEMsgClientToGcPartyActionResponse = 9130,
15716    KEMsgClientToGcPartyStartMatch = 9131,
15717    KEMsgClientToGcPartyStartMatchResponse = 9132,
15718    KEMsgClientToGcPartyInviteUser = 9133,
15719    KEMsgClientToGcPartyInviteUserResponse = 9134,
15720    KEMsgGcToClientPartyEvent = 9135,
15721    KEMsgGcToClientCanRejoinParty = 9137,
15722    KEMsgClientToGcPartyJoinViaCode = 9138,
15723    KEMsgClientToGcPartyJoinViaCodeResponse = 9139,
15724    KEMsgClientToGcPartySetReadyState = 9142,
15725    KEMsgClientToGcPartySetReadyStateResponse = 9143,
15726    KEMsgClientToGcGetAccountStats = 9164,
15727    KEMsgClientToGcGetAccountStatsResponse = 9165,
15728    KEMsgGcToClientAccountStatsUpdated = 9166,
15729    KEMsgClientToGcGetMatchMetaData = 9167,
15730    KEMsgClientToGcGetMatchMetaDataResponse = 9168,
15731    KEMsgClientToGcDevAction = 9172,
15732    KEMsgClientToGcDevActionResponse = 9173,
15733    KEMsgClientToGcRecordClientEvents = 9174,
15734    KEMsgClientToGcRecordClientEventsResponse = 9175,
15735    KEMsgClientToGcSetNewPlayerProgress = 9176,
15736    KEMsgClientToGcSetNewPlayerProgressResponse = 9177,
15737    KEMsgClientToGcUpdateAccountSync = 9178,
15738    KEMsgClientToGcUpdateAccountSyncResponse = 9179,
15739    KEMsgClientToGcGetHeroChoice = 9180,
15740    KEMsgClientToGcGetHeroChoiceResponse = 9181,
15741    KEMsgClientToGcUnlockHero = 9182,
15742    KEMsgClientToGcUnlockHeroResponse = 9183,
15743    KEMsgClientToGcBookUnlock = 9184,
15744    KEMsgClientToGcBookUnlockResponse = 9185,
15745    KEMsgClientToGcGetBook = 9186,
15746    KEMsgClientToGcGetBookResponse = 9187,
15747    KEMsgGcToClientBookUpdated = 9188,
15748    KEMsgClientToGcSubmitPlaytestUser = 9189,
15749    KEMsgClientToGcSubmitPlaytestUserResponse = 9190,
15750    KEMsgClientToGcUpdateHeroBuild = 9193,
15751    KEMsgClientToGcUpdateHeroBuildResponse = 9194,
15752    KEMsgClientToGcFindHeroBuilds = 9195,
15753    KEMsgClientToGcFindHeroBuildsResponse = 9196,
15754    KEMsgClientToGcReportPlayerFromMatch = 9197,
15755    KEMsgClientToGcReportPlayerFromMatchResponse = 9198,
15756    KEMsgClientToGcGetAccountMatchReports = 9199,
15757    KEMsgClientToGcGetAccountMatchReportsResponse = 9200,
15758    KEMsgClientToGcDeleteHeroBuild = 9201,
15759    KEMsgClientToGcDeleteHeroBuildResponse = 9202,
15760    KEMsgClientToGcGetActiveMatches = 9203,
15761    KEMsgClientToGcGetActiveMatchesResponse = 9204,
15762    KEMsgClientToGcGetDiscordLink = 9205,
15763    KEMsgClientToGcGetDiscordLinkResponse = 9206,
15764    KEMsgClientToGcPartySetMode = 9207,
15765    KEMsgClientToGcPartySetModeResponse = 9208,
15766    KEMsgClientToGcGrantForumAccess = 9209,
15767    KEMsgClientToGcGrantForumAccessResponse = 9210,
15768    KEMsgClientToGcModeratorRequest = 9211,
15769    KEMsgClientToGcModeratorRequestResponse = 9212,
15770    KEMsgClientToGcGetFriendGameStatus = 9213,
15771    KEMsgClientToGcGetFriendGameStatusResponse = 9214,
15772    KEMsgClientToGcUpdateHeroBuildPreference = 9215,
15773    KEMsgClientToGcUpdateHeroBuildPreferenceResponse = 9216,
15774    KEMsgClientToGcUpdateSpectatorStatus = 9219,
15775    KEMsgClientToGcCommendPlayerFromMatch = 9223,
15776    KEMsgClientToGcCommendPlayerFromMatchResponse = 9224,
15777    KEMsgGcToClientCommendNotification = 9225,
15778    KEMsgGcToClientHeroLabsSchedule = 9228,
15779    KEMsgClientToGcDevRequestCheatReports = 9230,
15780    KEMsgClientToGcDevRequestCheatReportsResponse = 9231,
15781    KEMsgClientToGcDevBan = 9232,
15782    KEMsgClientToGcDevBanResponse = 9233,
15783    KEMsgClientToGcGetHeroMmrRankings = 9234,
15784    KEMsgClientToGcGetHeroMmrRankingsResponse = 9235,
15785    KEMsgClientToGcGetLeaderboard = 9236,
15786    KEMsgClientToGcGetLeaderboardResponse = 9237,
15787    KEMsgClientToGcGetAccountLeaderboards = 9238,
15788    KEMsgClientToGcGetAccountLeaderboardsResponse = 9239,
15789    KEMsgClientToGcTarotGetUserData = 9242,
15790    KEMsgClientToGcTarotGetUserDataResponse = 9243,
15791    KEMsgGcToClientTarotUserDataUpdated = 9244,
15792    KEMsgClientToGcTarotPlaceTile = 9245,
15793    KEMsgClientToGcTarotPlaceTileResponse = 9246,
15794    KEMsgClientToGcTarotApplyRune = 9247,
15795    KEMsgClientToGcTarotApplyRuneResponse = 9248,
15796    KEMsgClientToGcTarotCompleteBoard = 9249,
15797    KEMsgClientToGcTarotCompleteBoardResponse = 9250,
15798    KEMsgClientToGcTarotDevCreateTile = 9251,
15799    KEMsgClientToGcTarotDevCreateTileResponse = 9252,
15800    KEMsgClientToGcTarotDevCreateBoard = 9253,
15801    KEMsgClientToGcTarotDevCreateBoardResponse = 9254,
15802    KEMsgClientToGcTarotDevGenerateTestTiles = 9255,
15803    KEMsgClientToGcTarotDevGenerateTestTilesResponse = 9256,
15804    KEMsgClientToGcTarotDevModifyEnergy = 9257,
15805    KEMsgClientToGcTarotDevModifyEnergyResponse = 9258,
15806    KEMsgClientToGcGenerateChallengeSet = 9259,
15807    KEMsgClientToGcGenerateChallengeSetResponse = 9260,
15808    KEMsgClientToGcChallengeActivate = 9261,
15809    KEMsgClientToGcChallengeActivateResponse = 9262,
15810    KEMsgClientToGcChallengeClaim = 9263,
15811    KEMsgClientToGcChallengeClaimResponse = 9264,
15812    KEMsgClientToGcChallengeCancel = 9265,
15813    KEMsgClientToGcChallengeCancelResponse = 9266,
15814    KEMsgClientToGcGetSurveyQuestion = 9267,
15815    KEMsgClientToGcGetSurveyQuestionResponse = 9268,
15816    KEMsgClientToGcSubmitSurvey = 9269,
15817    KEMsgClientToGcSubmitSurveyResponse = 9270,
15818    KEMsgClientToGcGetRankData = 9271,
15819    KEMsgGcToClientGetRankDataResponse = 9272,
15820    KEMsgGcToClientRankDataUpdate = 9273,
15821    KEMsgClientToGcGetHideoutSdrTicket = 9274,
15822    KEMsgClientToGcGetHideoutSdrTicketResponse = 9275,
15823    KEMsgClientToGcSubmitHeroReleaseVote = 9276,
15824    KEMsgClientToGcPartySendChatMsg = 9277,
15825    KEMsgClientToGcPartySendChatMsgResponse = 9278,
15826    KEMsgGcToClientPartyChatMsg = 9279,
15827    KEMsgClientToGcRequestHeroReleaseVoteTally = 9280,
15828    KEMsgGcToClientUpdateHeroReleaseVoteTally = 9281,
15829    KEMsgClientToGcSetAccountPrivacySetting = 9282,
15830    KEMsgClientToGcSetAccountPrivacySettingResponse = 9283,
15831}
15832impl EgcCitadelClientMessages {
15833    /// String value of the enum field names used in the ProtoBuf definition.
15834    ///
15835    /// The values are not transformed in any way and thus are considered stable
15836    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
15837    pub fn as_str_name(&self) -> &'static str {
15838        match self {
15839            Self::KEMsgClientToGcStartMatchmaking => "k_EMsgClientToGCStartMatchmaking",
15840            Self::KEMsgClientToGcStartMatchmakingResponse => {
15841                "k_EMsgClientToGCStartMatchmakingResponse"
15842            }
15843            Self::KEMsgClientToGcStopMatchmaking => "k_EMsgClientToGCStopMatchmaking",
15844            Self::KEMsgClientToGcStopMatchmakingResponse => {
15845                "k_EMsgClientToGCStopMatchmakingResponse"
15846            }
15847            Self::KEMsgGcToClientMatchmakingStopped => {
15848                "k_EMsgGCToClientMatchmakingStopped"
15849            }
15850            Self::KEMsgClientToGcLeaveLobby => "k_EMsgClientToGCLeaveLobby",
15851            Self::KEMsgClientToGcLeaveLobbyResponse => {
15852                "k_EMsgClientToGCLeaveLobbyResponse"
15853            }
15854            Self::KEMsgClientToGcIsInMatchmaking => "k_EMsgClientToGCIsInMatchmaking",
15855            Self::KEMsgClientToGcIsInMatchmakingResponse => {
15856                "k_EMsgClientToGCIsInMatchmakingResponse"
15857            }
15858            Self::KEMsgGcToClientDevPlaytestStatus => "k_EMsgGCToClientDevPlaytestStatus",
15859            Self::KEMsgClientToGcDevSetMmBias => "k_EMsgClientToGCDevSetMMBias",
15860            Self::KEMsgClientToGcGetProfileCard => "k_EMsgClientToGCGetProfileCard",
15861            Self::KEMsgClientToGcGetProfileCardResponse => {
15862                "k_EMsgClientToGCGetProfileCardResponse"
15863            }
15864            Self::KEMsgClientToGcUpdateRoster => "k_EMsgClientToGCUpdateRoster",
15865            Self::KEMsgClientToGcUpdateRosterResponse => {
15866                "k_EMsgClientToGCUpdateRosterResponse"
15867            }
15868            Self::KEMsgGcToClientProfileCardUpdated => {
15869                "k_EMsgGCToClientProfileCardUpdated"
15870            }
15871            Self::KEMsgGcToClientDevAnnouncements => "k_EMsgGCToClientDevAnnouncements",
15872            Self::KEMsgClientToGcModifyDevAnnouncements => {
15873                "k_EMsgClientToGCModifyDevAnnouncements"
15874            }
15875            Self::KEMsgClientToGcModifyDevAnnouncementsResponse => {
15876                "k_EMsgClientToGCModifyDevAnnouncementsResponse"
15877            }
15878            Self::KEMsgGcToClientSdrTicket => "k_EMsgGCToClientSDRTicket",
15879            Self::KEMsgClientToGcReplacementSdrTicket => {
15880                "k_EMsgClientToGCReplacementSDRTicket"
15881            }
15882            Self::KEMsgClientToGcReplacementSdrTicketResponse => {
15883                "k_EMsgClientToGCReplacementSDRTicketResponse"
15884            }
15885            Self::KEMsgClientToGcSetServerConVar => "k_EMsgClientToGCSetServerConVar",
15886            Self::KEMsgClientToGcSetServerConVarResponse => {
15887                "k_EMsgClientToGCSetServerConVarResponse"
15888            }
15889            Self::KEMsgClientToGcSpectateLobby => "k_EMsgClientToGCSpectateLobby",
15890            Self::KEMsgClientToGcSpectateLobbyResponse => {
15891                "k_EMsgClientToGCSpectateLobbyResponse"
15892            }
15893            Self::KEMsgClientToGcPostMatchSurveyResponse => {
15894                "k_EMsgClientToGCPostMatchSurveyResponse"
15895            }
15896            Self::KEMsgClientToGcGetMatchHistory => "k_EMsgClientToGCGetMatchHistory",
15897            Self::KEMsgClientToGcGetMatchHistoryResponse => {
15898                "k_EMsgClientToGCGetMatchHistoryResponse"
15899            }
15900            Self::KEMsgClientToGcSpectateUser => "k_EMsgClientToGCSpectateUser",
15901            Self::KEMsgClientToGcSpectateUserResponse => {
15902                "k_EMsgClientToGCSpectateUserResponse"
15903            }
15904            Self::KEMsgClientToGcPartyCreate => "k_EMsgClientToGCPartyCreate",
15905            Self::KEMsgClientToGcPartyCreateResponse => {
15906                "k_EMsgClientToGCPartyCreateResponse"
15907            }
15908            Self::KEMsgClientToGcPartyLeave => "k_EMsgClientToGCPartyLeave",
15909            Self::KEMsgClientToGcPartyLeaveResponse => {
15910                "k_EMsgClientToGCPartyLeaveResponse"
15911            }
15912            Self::KEMsgClientToGcPartyJoin => "k_EMsgClientToGCPartyJoin",
15913            Self::KEMsgClientToGcPartyJoinResponse => "k_EMsgClientToGCPartyJoinResponse",
15914            Self::KEMsgClientToGcPartyAction => "k_EMsgClientToGCPartyAction",
15915            Self::KEMsgClientToGcPartyActionResponse => {
15916                "k_EMsgClientToGCPartyActionResponse"
15917            }
15918            Self::KEMsgClientToGcPartyStartMatch => "k_EMsgClientToGCPartyStartMatch",
15919            Self::KEMsgClientToGcPartyStartMatchResponse => {
15920                "k_EMsgClientToGCPartyStartMatchResponse"
15921            }
15922            Self::KEMsgClientToGcPartyInviteUser => "k_EMsgClientToGCPartyInviteUser",
15923            Self::KEMsgClientToGcPartyInviteUserResponse => {
15924                "k_EMsgClientToGCPartyInviteUserResponse"
15925            }
15926            Self::KEMsgGcToClientPartyEvent => "k_EMsgGCToClientPartyEvent",
15927            Self::KEMsgGcToClientCanRejoinParty => "k_EMsgGCToClientCanRejoinParty",
15928            Self::KEMsgClientToGcPartyJoinViaCode => "k_EMsgClientToGCPartyJoinViaCode",
15929            Self::KEMsgClientToGcPartyJoinViaCodeResponse => {
15930                "k_EMsgClientToGCPartyJoinViaCodeResponse"
15931            }
15932            Self::KEMsgClientToGcPartySetReadyState => {
15933                "k_EMsgClientToGCPartySetReadyState"
15934            }
15935            Self::KEMsgClientToGcPartySetReadyStateResponse => {
15936                "k_EMsgClientToGCPartySetReadyStateResponse"
15937            }
15938            Self::KEMsgClientToGcGetAccountStats => "k_EMsgClientToGCGetAccountStats",
15939            Self::KEMsgClientToGcGetAccountStatsResponse => {
15940                "k_EMsgClientToGCGetAccountStatsResponse"
15941            }
15942            Self::KEMsgGcToClientAccountStatsUpdated => {
15943                "k_EMsgGCToClientAccountStatsUpdated"
15944            }
15945            Self::KEMsgClientToGcGetMatchMetaData => "k_EMsgClientToGCGetMatchMetaData",
15946            Self::KEMsgClientToGcGetMatchMetaDataResponse => {
15947                "k_EMsgClientToGCGetMatchMetaDataResponse"
15948            }
15949            Self::KEMsgClientToGcDevAction => "k_EMsgClientToGCDevAction",
15950            Self::KEMsgClientToGcDevActionResponse => "k_EMsgClientToGCDevActionResponse",
15951            Self::KEMsgClientToGcRecordClientEvents => {
15952                "k_EMsgClientToGCRecordClientEvents"
15953            }
15954            Self::KEMsgClientToGcRecordClientEventsResponse => {
15955                "k_EMsgClientToGCRecordClientEventsResponse"
15956            }
15957            Self::KEMsgClientToGcSetNewPlayerProgress => {
15958                "k_EMsgClientToGCSetNewPlayerProgress"
15959            }
15960            Self::KEMsgClientToGcSetNewPlayerProgressResponse => {
15961                "k_EMsgClientToGCSetNewPlayerProgressResponse"
15962            }
15963            Self::KEMsgClientToGcUpdateAccountSync => "k_EMsgClientToGCUpdateAccountSync",
15964            Self::KEMsgClientToGcUpdateAccountSyncResponse => {
15965                "k_EMsgClientToGCUpdateAccountSyncResponse"
15966            }
15967            Self::KEMsgClientToGcGetHeroChoice => "k_EMsgClientToGCGetHeroChoice",
15968            Self::KEMsgClientToGcGetHeroChoiceResponse => {
15969                "k_EMsgClientToGCGetHeroChoiceResponse"
15970            }
15971            Self::KEMsgClientToGcUnlockHero => "k_EMsgClientToGCUnlockHero",
15972            Self::KEMsgClientToGcUnlockHeroResponse => {
15973                "k_EMsgClientToGCUnlockHeroResponse"
15974            }
15975            Self::KEMsgClientToGcBookUnlock => "k_EMsgClientToGCBookUnlock",
15976            Self::KEMsgClientToGcBookUnlockResponse => {
15977                "k_EMsgClientToGCBookUnlockResponse"
15978            }
15979            Self::KEMsgClientToGcGetBook => "k_EMsgClientToGCGetBook",
15980            Self::KEMsgClientToGcGetBookResponse => "k_EMsgClientToGCGetBookResponse",
15981            Self::KEMsgGcToClientBookUpdated => "k_EMsgGCToClientBookUpdated",
15982            Self::KEMsgClientToGcSubmitPlaytestUser => {
15983                "k_EMsgClientToGCSubmitPlaytestUser"
15984            }
15985            Self::KEMsgClientToGcSubmitPlaytestUserResponse => {
15986                "k_EMsgClientToGCSubmitPlaytestUserResponse"
15987            }
15988            Self::KEMsgClientToGcUpdateHeroBuild => "k_EMsgClientToGCUpdateHeroBuild",
15989            Self::KEMsgClientToGcUpdateHeroBuildResponse => {
15990                "k_EMsgClientToGCUpdateHeroBuildResponse"
15991            }
15992            Self::KEMsgClientToGcFindHeroBuilds => "k_EMsgClientToGCFindHeroBuilds",
15993            Self::KEMsgClientToGcFindHeroBuildsResponse => {
15994                "k_EMsgClientToGCFindHeroBuildsResponse"
15995            }
15996            Self::KEMsgClientToGcReportPlayerFromMatch => {
15997                "k_EMsgClientToGCReportPlayerFromMatch"
15998            }
15999            Self::KEMsgClientToGcReportPlayerFromMatchResponse => {
16000                "k_EMsgClientToGCReportPlayerFromMatchResponse"
16001            }
16002            Self::KEMsgClientToGcGetAccountMatchReports => {
16003                "k_EMsgClientToGCGetAccountMatchReports"
16004            }
16005            Self::KEMsgClientToGcGetAccountMatchReportsResponse => {
16006                "k_EMsgClientToGCGetAccountMatchReportsResponse"
16007            }
16008            Self::KEMsgClientToGcDeleteHeroBuild => "k_EMsgClientToGCDeleteHeroBuild",
16009            Self::KEMsgClientToGcDeleteHeroBuildResponse => {
16010                "k_EMsgClientToGCDeleteHeroBuildResponse"
16011            }
16012            Self::KEMsgClientToGcGetActiveMatches => "k_EMsgClientToGCGetActiveMatches",
16013            Self::KEMsgClientToGcGetActiveMatchesResponse => {
16014                "k_EMsgClientToGCGetActiveMatchesResponse"
16015            }
16016            Self::KEMsgClientToGcGetDiscordLink => "k_EMsgClientToGCGetDiscordLink",
16017            Self::KEMsgClientToGcGetDiscordLinkResponse => {
16018                "k_EMsgClientToGCGetDiscordLinkResponse"
16019            }
16020            Self::KEMsgClientToGcPartySetMode => "k_EMsgClientToGCPartySetMode",
16021            Self::KEMsgClientToGcPartySetModeResponse => {
16022                "k_EMsgClientToGCPartySetModeResponse"
16023            }
16024            Self::KEMsgClientToGcGrantForumAccess => "k_EMsgClientToGCGrantForumAccess",
16025            Self::KEMsgClientToGcGrantForumAccessResponse => {
16026                "k_EMsgClientToGCGrantForumAccessResponse"
16027            }
16028            Self::KEMsgClientToGcModeratorRequest => "k_EMsgClientToGCModeratorRequest",
16029            Self::KEMsgClientToGcModeratorRequestResponse => {
16030                "k_EMsgClientToGCModeratorRequestResponse"
16031            }
16032            Self::KEMsgClientToGcGetFriendGameStatus => {
16033                "k_EMsgClientToGCGetFriendGameStatus"
16034            }
16035            Self::KEMsgClientToGcGetFriendGameStatusResponse => {
16036                "k_EMsgClientToGCGetFriendGameStatusResponse"
16037            }
16038            Self::KEMsgClientToGcUpdateHeroBuildPreference => {
16039                "k_EMsgClientToGCUpdateHeroBuildPreference"
16040            }
16041            Self::KEMsgClientToGcUpdateHeroBuildPreferenceResponse => {
16042                "k_EMsgClientToGCUpdateHeroBuildPreferenceResponse"
16043            }
16044            Self::KEMsgClientToGcUpdateSpectatorStatus => {
16045                "k_EMsgClientToGCUpdateSpectatorStatus"
16046            }
16047            Self::KEMsgClientToGcCommendPlayerFromMatch => {
16048                "k_EMsgClientToGCCommendPlayerFromMatch"
16049            }
16050            Self::KEMsgClientToGcCommendPlayerFromMatchResponse => {
16051                "k_EMsgClientToGCCommendPlayerFromMatchResponse"
16052            }
16053            Self::KEMsgGcToClientCommendNotification => {
16054                "k_EMsgGCToClientCommendNotification"
16055            }
16056            Self::KEMsgGcToClientHeroLabsSchedule => "k_EMsgGCToClientHeroLabsSchedule",
16057            Self::KEMsgClientToGcDevRequestCheatReports => {
16058                "k_EMsgClientToGCDevRequestCheatReports"
16059            }
16060            Self::KEMsgClientToGcDevRequestCheatReportsResponse => {
16061                "k_EMsgClientToGCDevRequestCheatReportsResponse"
16062            }
16063            Self::KEMsgClientToGcDevBan => "k_EMsgClientToGCDevBan",
16064            Self::KEMsgClientToGcDevBanResponse => "k_EMsgClientToGCDevBanResponse",
16065            Self::KEMsgClientToGcGetHeroMmrRankings => {
16066                "k_EMsgClientToGCGetHeroMMRRankings"
16067            }
16068            Self::KEMsgClientToGcGetHeroMmrRankingsResponse => {
16069                "k_EMsgClientToGCGetHeroMMRRankingsResponse"
16070            }
16071            Self::KEMsgClientToGcGetLeaderboard => "k_EMsgClientToGCGetLeaderboard",
16072            Self::KEMsgClientToGcGetLeaderboardResponse => {
16073                "k_EMsgClientToGCGetLeaderboardResponse"
16074            }
16075            Self::KEMsgClientToGcGetAccountLeaderboards => {
16076                "k_EMsgClientToGCGetAccountLeaderboards"
16077            }
16078            Self::KEMsgClientToGcGetAccountLeaderboardsResponse => {
16079                "k_EMsgClientToGCGetAccountLeaderboardsResponse"
16080            }
16081            Self::KEMsgClientToGcTarotGetUserData => "k_EMsgClientToGCTarotGetUserData",
16082            Self::KEMsgClientToGcTarotGetUserDataResponse => {
16083                "k_EMsgClientToGCTarotGetUserDataResponse"
16084            }
16085            Self::KEMsgGcToClientTarotUserDataUpdated => {
16086                "k_EMsgGCToClientTarotUserDataUpdated"
16087            }
16088            Self::KEMsgClientToGcTarotPlaceTile => "k_EMsgClientToGCTarotPlaceTile",
16089            Self::KEMsgClientToGcTarotPlaceTileResponse => {
16090                "k_EMsgClientToGCTarotPlaceTileResponse"
16091            }
16092            Self::KEMsgClientToGcTarotApplyRune => "k_EMsgClientToGCTarotApplyRune",
16093            Self::KEMsgClientToGcTarotApplyRuneResponse => {
16094                "k_EMsgClientToGCTarotApplyRuneResponse"
16095            }
16096            Self::KEMsgClientToGcTarotCompleteBoard => {
16097                "k_EMsgClientToGCTarotCompleteBoard"
16098            }
16099            Self::KEMsgClientToGcTarotCompleteBoardResponse => {
16100                "k_EMsgClientToGCTarotCompleteBoardResponse"
16101            }
16102            Self::KEMsgClientToGcTarotDevCreateTile => {
16103                "k_EMsgClientToGCTarotDevCreateTile"
16104            }
16105            Self::KEMsgClientToGcTarotDevCreateTileResponse => {
16106                "k_EMsgClientToGCTarotDevCreateTileResponse"
16107            }
16108            Self::KEMsgClientToGcTarotDevCreateBoard => {
16109                "k_EMsgClientToGCTarotDevCreateBoard"
16110            }
16111            Self::KEMsgClientToGcTarotDevCreateBoardResponse => {
16112                "k_EMsgClientToGCTarotDevCreateBoardResponse"
16113            }
16114            Self::KEMsgClientToGcTarotDevGenerateTestTiles => {
16115                "k_EMsgClientToGCTarotDevGenerateTestTiles"
16116            }
16117            Self::KEMsgClientToGcTarotDevGenerateTestTilesResponse => {
16118                "k_EMsgClientToGCTarotDevGenerateTestTilesResponse"
16119            }
16120            Self::KEMsgClientToGcTarotDevModifyEnergy => {
16121                "k_EMsgClientToGCTarotDevModifyEnergy"
16122            }
16123            Self::KEMsgClientToGcTarotDevModifyEnergyResponse => {
16124                "k_EMsgClientToGCTarotDevModifyEnergyResponse"
16125            }
16126            Self::KEMsgClientToGcGenerateChallengeSet => {
16127                "k_EMsgClientToGCGenerateChallengeSet"
16128            }
16129            Self::KEMsgClientToGcGenerateChallengeSetResponse => {
16130                "k_EMsgClientToGCGenerateChallengeSetResponse"
16131            }
16132            Self::KEMsgClientToGcChallengeActivate => "k_EMsgClientToGCChallengeActivate",
16133            Self::KEMsgClientToGcChallengeActivateResponse => {
16134                "k_EMsgClientToGCChallengeActivateResponse"
16135            }
16136            Self::KEMsgClientToGcChallengeClaim => "k_EMsgClientToGCChallengeClaim",
16137            Self::KEMsgClientToGcChallengeClaimResponse => {
16138                "k_EMsgClientToGCChallengeClaimResponse"
16139            }
16140            Self::KEMsgClientToGcChallengeCancel => "k_EMsgClientToGCChallengeCancel",
16141            Self::KEMsgClientToGcChallengeCancelResponse => {
16142                "k_EMsgClientToGCChallengeCancelResponse"
16143            }
16144            Self::KEMsgClientToGcGetSurveyQuestion => "k_EMsgClientToGCGetSurveyQuestion",
16145            Self::KEMsgClientToGcGetSurveyQuestionResponse => {
16146                "k_EMsgClientToGCGetSurveyQuestionResponse"
16147            }
16148            Self::KEMsgClientToGcSubmitSurvey => "k_EMsgClientToGCSubmitSurvey",
16149            Self::KEMsgClientToGcSubmitSurveyResponse => {
16150                "k_EMsgClientToGCSubmitSurveyResponse"
16151            }
16152            Self::KEMsgClientToGcGetRankData => "k_EMsgClientToGCGetRankData",
16153            Self::KEMsgGcToClientGetRankDataResponse => {
16154                "k_EMsgGCToClientGetRankDataResponse"
16155            }
16156            Self::KEMsgGcToClientRankDataUpdate => "k_EMsgGCToClientRankDataUpdate",
16157            Self::KEMsgClientToGcGetHideoutSdrTicket => {
16158                "k_EMsgClientToGCGetHideoutSDRTicket"
16159            }
16160            Self::KEMsgClientToGcGetHideoutSdrTicketResponse => {
16161                "k_EMsgClientToGCGetHideoutSDRTicketResponse"
16162            }
16163            Self::KEMsgClientToGcSubmitHeroReleaseVote => {
16164                "k_EMsgClientToGCSubmitHeroReleaseVote"
16165            }
16166            Self::KEMsgClientToGcPartySendChatMsg => "k_EMsgClientToGCPartySendChatMsg",
16167            Self::KEMsgClientToGcPartySendChatMsgResponse => {
16168                "k_EMsgClientToGCPartySendChatMsgResponse"
16169            }
16170            Self::KEMsgGcToClientPartyChatMsg => "k_EMsgGCToClientPartyChatMsg",
16171            Self::KEMsgClientToGcRequestHeroReleaseVoteTally => {
16172                "k_EMsgClientToGCRequestHeroReleaseVoteTally"
16173            }
16174            Self::KEMsgGcToClientUpdateHeroReleaseVoteTally => {
16175                "k_EMsgGCToClientUpdateHeroReleaseVoteTally"
16176            }
16177            Self::KEMsgClientToGcSetAccountPrivacySetting => {
16178                "k_EMsgClientToGCSetAccountPrivacySetting"
16179            }
16180            Self::KEMsgClientToGcSetAccountPrivacySettingResponse => {
16181                "k_EMsgClientToGCSetAccountPrivacySettingResponse"
16182            }
16183        }
16184    }
16185    /// Creates an enum from field names used in the ProtoBuf definition.
16186    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
16187        match value {
16188            "k_EMsgClientToGCStartMatchmaking" => {
16189                Some(Self::KEMsgClientToGcStartMatchmaking)
16190            }
16191            "k_EMsgClientToGCStartMatchmakingResponse" => {
16192                Some(Self::KEMsgClientToGcStartMatchmakingResponse)
16193            }
16194            "k_EMsgClientToGCStopMatchmaking" => {
16195                Some(Self::KEMsgClientToGcStopMatchmaking)
16196            }
16197            "k_EMsgClientToGCStopMatchmakingResponse" => {
16198                Some(Self::KEMsgClientToGcStopMatchmakingResponse)
16199            }
16200            "k_EMsgGCToClientMatchmakingStopped" => {
16201                Some(Self::KEMsgGcToClientMatchmakingStopped)
16202            }
16203            "k_EMsgClientToGCLeaveLobby" => Some(Self::KEMsgClientToGcLeaveLobby),
16204            "k_EMsgClientToGCLeaveLobbyResponse" => {
16205                Some(Self::KEMsgClientToGcLeaveLobbyResponse)
16206            }
16207            "k_EMsgClientToGCIsInMatchmaking" => {
16208                Some(Self::KEMsgClientToGcIsInMatchmaking)
16209            }
16210            "k_EMsgClientToGCIsInMatchmakingResponse" => {
16211                Some(Self::KEMsgClientToGcIsInMatchmakingResponse)
16212            }
16213            "k_EMsgGCToClientDevPlaytestStatus" => {
16214                Some(Self::KEMsgGcToClientDevPlaytestStatus)
16215            }
16216            "k_EMsgClientToGCDevSetMMBias" => Some(Self::KEMsgClientToGcDevSetMmBias),
16217            "k_EMsgClientToGCGetProfileCard" => Some(Self::KEMsgClientToGcGetProfileCard),
16218            "k_EMsgClientToGCGetProfileCardResponse" => {
16219                Some(Self::KEMsgClientToGcGetProfileCardResponse)
16220            }
16221            "k_EMsgClientToGCUpdateRoster" => Some(Self::KEMsgClientToGcUpdateRoster),
16222            "k_EMsgClientToGCUpdateRosterResponse" => {
16223                Some(Self::KEMsgClientToGcUpdateRosterResponse)
16224            }
16225            "k_EMsgGCToClientProfileCardUpdated" => {
16226                Some(Self::KEMsgGcToClientProfileCardUpdated)
16227            }
16228            "k_EMsgGCToClientDevAnnouncements" => {
16229                Some(Self::KEMsgGcToClientDevAnnouncements)
16230            }
16231            "k_EMsgClientToGCModifyDevAnnouncements" => {
16232                Some(Self::KEMsgClientToGcModifyDevAnnouncements)
16233            }
16234            "k_EMsgClientToGCModifyDevAnnouncementsResponse" => {
16235                Some(Self::KEMsgClientToGcModifyDevAnnouncementsResponse)
16236            }
16237            "k_EMsgGCToClientSDRTicket" => Some(Self::KEMsgGcToClientSdrTicket),
16238            "k_EMsgClientToGCReplacementSDRTicket" => {
16239                Some(Self::KEMsgClientToGcReplacementSdrTicket)
16240            }
16241            "k_EMsgClientToGCReplacementSDRTicketResponse" => {
16242                Some(Self::KEMsgClientToGcReplacementSdrTicketResponse)
16243            }
16244            "k_EMsgClientToGCSetServerConVar" => {
16245                Some(Self::KEMsgClientToGcSetServerConVar)
16246            }
16247            "k_EMsgClientToGCSetServerConVarResponse" => {
16248                Some(Self::KEMsgClientToGcSetServerConVarResponse)
16249            }
16250            "k_EMsgClientToGCSpectateLobby" => Some(Self::KEMsgClientToGcSpectateLobby),
16251            "k_EMsgClientToGCSpectateLobbyResponse" => {
16252                Some(Self::KEMsgClientToGcSpectateLobbyResponse)
16253            }
16254            "k_EMsgClientToGCPostMatchSurveyResponse" => {
16255                Some(Self::KEMsgClientToGcPostMatchSurveyResponse)
16256            }
16257            "k_EMsgClientToGCGetMatchHistory" => {
16258                Some(Self::KEMsgClientToGcGetMatchHistory)
16259            }
16260            "k_EMsgClientToGCGetMatchHistoryResponse" => {
16261                Some(Self::KEMsgClientToGcGetMatchHistoryResponse)
16262            }
16263            "k_EMsgClientToGCSpectateUser" => Some(Self::KEMsgClientToGcSpectateUser),
16264            "k_EMsgClientToGCSpectateUserResponse" => {
16265                Some(Self::KEMsgClientToGcSpectateUserResponse)
16266            }
16267            "k_EMsgClientToGCPartyCreate" => Some(Self::KEMsgClientToGcPartyCreate),
16268            "k_EMsgClientToGCPartyCreateResponse" => {
16269                Some(Self::KEMsgClientToGcPartyCreateResponse)
16270            }
16271            "k_EMsgClientToGCPartyLeave" => Some(Self::KEMsgClientToGcPartyLeave),
16272            "k_EMsgClientToGCPartyLeaveResponse" => {
16273                Some(Self::KEMsgClientToGcPartyLeaveResponse)
16274            }
16275            "k_EMsgClientToGCPartyJoin" => Some(Self::KEMsgClientToGcPartyJoin),
16276            "k_EMsgClientToGCPartyJoinResponse" => {
16277                Some(Self::KEMsgClientToGcPartyJoinResponse)
16278            }
16279            "k_EMsgClientToGCPartyAction" => Some(Self::KEMsgClientToGcPartyAction),
16280            "k_EMsgClientToGCPartyActionResponse" => {
16281                Some(Self::KEMsgClientToGcPartyActionResponse)
16282            }
16283            "k_EMsgClientToGCPartyStartMatch" => {
16284                Some(Self::KEMsgClientToGcPartyStartMatch)
16285            }
16286            "k_EMsgClientToGCPartyStartMatchResponse" => {
16287                Some(Self::KEMsgClientToGcPartyStartMatchResponse)
16288            }
16289            "k_EMsgClientToGCPartyInviteUser" => {
16290                Some(Self::KEMsgClientToGcPartyInviteUser)
16291            }
16292            "k_EMsgClientToGCPartyInviteUserResponse" => {
16293                Some(Self::KEMsgClientToGcPartyInviteUserResponse)
16294            }
16295            "k_EMsgGCToClientPartyEvent" => Some(Self::KEMsgGcToClientPartyEvent),
16296            "k_EMsgGCToClientCanRejoinParty" => Some(Self::KEMsgGcToClientCanRejoinParty),
16297            "k_EMsgClientToGCPartyJoinViaCode" => {
16298                Some(Self::KEMsgClientToGcPartyJoinViaCode)
16299            }
16300            "k_EMsgClientToGCPartyJoinViaCodeResponse" => {
16301                Some(Self::KEMsgClientToGcPartyJoinViaCodeResponse)
16302            }
16303            "k_EMsgClientToGCPartySetReadyState" => {
16304                Some(Self::KEMsgClientToGcPartySetReadyState)
16305            }
16306            "k_EMsgClientToGCPartySetReadyStateResponse" => {
16307                Some(Self::KEMsgClientToGcPartySetReadyStateResponse)
16308            }
16309            "k_EMsgClientToGCGetAccountStats" => {
16310                Some(Self::KEMsgClientToGcGetAccountStats)
16311            }
16312            "k_EMsgClientToGCGetAccountStatsResponse" => {
16313                Some(Self::KEMsgClientToGcGetAccountStatsResponse)
16314            }
16315            "k_EMsgGCToClientAccountStatsUpdated" => {
16316                Some(Self::KEMsgGcToClientAccountStatsUpdated)
16317            }
16318            "k_EMsgClientToGCGetMatchMetaData" => {
16319                Some(Self::KEMsgClientToGcGetMatchMetaData)
16320            }
16321            "k_EMsgClientToGCGetMatchMetaDataResponse" => {
16322                Some(Self::KEMsgClientToGcGetMatchMetaDataResponse)
16323            }
16324            "k_EMsgClientToGCDevAction" => Some(Self::KEMsgClientToGcDevAction),
16325            "k_EMsgClientToGCDevActionResponse" => {
16326                Some(Self::KEMsgClientToGcDevActionResponse)
16327            }
16328            "k_EMsgClientToGCRecordClientEvents" => {
16329                Some(Self::KEMsgClientToGcRecordClientEvents)
16330            }
16331            "k_EMsgClientToGCRecordClientEventsResponse" => {
16332                Some(Self::KEMsgClientToGcRecordClientEventsResponse)
16333            }
16334            "k_EMsgClientToGCSetNewPlayerProgress" => {
16335                Some(Self::KEMsgClientToGcSetNewPlayerProgress)
16336            }
16337            "k_EMsgClientToGCSetNewPlayerProgressResponse" => {
16338                Some(Self::KEMsgClientToGcSetNewPlayerProgressResponse)
16339            }
16340            "k_EMsgClientToGCUpdateAccountSync" => {
16341                Some(Self::KEMsgClientToGcUpdateAccountSync)
16342            }
16343            "k_EMsgClientToGCUpdateAccountSyncResponse" => {
16344                Some(Self::KEMsgClientToGcUpdateAccountSyncResponse)
16345            }
16346            "k_EMsgClientToGCGetHeroChoice" => Some(Self::KEMsgClientToGcGetHeroChoice),
16347            "k_EMsgClientToGCGetHeroChoiceResponse" => {
16348                Some(Self::KEMsgClientToGcGetHeroChoiceResponse)
16349            }
16350            "k_EMsgClientToGCUnlockHero" => Some(Self::KEMsgClientToGcUnlockHero),
16351            "k_EMsgClientToGCUnlockHeroResponse" => {
16352                Some(Self::KEMsgClientToGcUnlockHeroResponse)
16353            }
16354            "k_EMsgClientToGCBookUnlock" => Some(Self::KEMsgClientToGcBookUnlock),
16355            "k_EMsgClientToGCBookUnlockResponse" => {
16356                Some(Self::KEMsgClientToGcBookUnlockResponse)
16357            }
16358            "k_EMsgClientToGCGetBook" => Some(Self::KEMsgClientToGcGetBook),
16359            "k_EMsgClientToGCGetBookResponse" => {
16360                Some(Self::KEMsgClientToGcGetBookResponse)
16361            }
16362            "k_EMsgGCToClientBookUpdated" => Some(Self::KEMsgGcToClientBookUpdated),
16363            "k_EMsgClientToGCSubmitPlaytestUser" => {
16364                Some(Self::KEMsgClientToGcSubmitPlaytestUser)
16365            }
16366            "k_EMsgClientToGCSubmitPlaytestUserResponse" => {
16367                Some(Self::KEMsgClientToGcSubmitPlaytestUserResponse)
16368            }
16369            "k_EMsgClientToGCUpdateHeroBuild" => {
16370                Some(Self::KEMsgClientToGcUpdateHeroBuild)
16371            }
16372            "k_EMsgClientToGCUpdateHeroBuildResponse" => {
16373                Some(Self::KEMsgClientToGcUpdateHeroBuildResponse)
16374            }
16375            "k_EMsgClientToGCFindHeroBuilds" => Some(Self::KEMsgClientToGcFindHeroBuilds),
16376            "k_EMsgClientToGCFindHeroBuildsResponse" => {
16377                Some(Self::KEMsgClientToGcFindHeroBuildsResponse)
16378            }
16379            "k_EMsgClientToGCReportPlayerFromMatch" => {
16380                Some(Self::KEMsgClientToGcReportPlayerFromMatch)
16381            }
16382            "k_EMsgClientToGCReportPlayerFromMatchResponse" => {
16383                Some(Self::KEMsgClientToGcReportPlayerFromMatchResponse)
16384            }
16385            "k_EMsgClientToGCGetAccountMatchReports" => {
16386                Some(Self::KEMsgClientToGcGetAccountMatchReports)
16387            }
16388            "k_EMsgClientToGCGetAccountMatchReportsResponse" => {
16389                Some(Self::KEMsgClientToGcGetAccountMatchReportsResponse)
16390            }
16391            "k_EMsgClientToGCDeleteHeroBuild" => {
16392                Some(Self::KEMsgClientToGcDeleteHeroBuild)
16393            }
16394            "k_EMsgClientToGCDeleteHeroBuildResponse" => {
16395                Some(Self::KEMsgClientToGcDeleteHeroBuildResponse)
16396            }
16397            "k_EMsgClientToGCGetActiveMatches" => {
16398                Some(Self::KEMsgClientToGcGetActiveMatches)
16399            }
16400            "k_EMsgClientToGCGetActiveMatchesResponse" => {
16401                Some(Self::KEMsgClientToGcGetActiveMatchesResponse)
16402            }
16403            "k_EMsgClientToGCGetDiscordLink" => Some(Self::KEMsgClientToGcGetDiscordLink),
16404            "k_EMsgClientToGCGetDiscordLinkResponse" => {
16405                Some(Self::KEMsgClientToGcGetDiscordLinkResponse)
16406            }
16407            "k_EMsgClientToGCPartySetMode" => Some(Self::KEMsgClientToGcPartySetMode),
16408            "k_EMsgClientToGCPartySetModeResponse" => {
16409                Some(Self::KEMsgClientToGcPartySetModeResponse)
16410            }
16411            "k_EMsgClientToGCGrantForumAccess" => {
16412                Some(Self::KEMsgClientToGcGrantForumAccess)
16413            }
16414            "k_EMsgClientToGCGrantForumAccessResponse" => {
16415                Some(Self::KEMsgClientToGcGrantForumAccessResponse)
16416            }
16417            "k_EMsgClientToGCModeratorRequest" => {
16418                Some(Self::KEMsgClientToGcModeratorRequest)
16419            }
16420            "k_EMsgClientToGCModeratorRequestResponse" => {
16421                Some(Self::KEMsgClientToGcModeratorRequestResponse)
16422            }
16423            "k_EMsgClientToGCGetFriendGameStatus" => {
16424                Some(Self::KEMsgClientToGcGetFriendGameStatus)
16425            }
16426            "k_EMsgClientToGCGetFriendGameStatusResponse" => {
16427                Some(Self::KEMsgClientToGcGetFriendGameStatusResponse)
16428            }
16429            "k_EMsgClientToGCUpdateHeroBuildPreference" => {
16430                Some(Self::KEMsgClientToGcUpdateHeroBuildPreference)
16431            }
16432            "k_EMsgClientToGCUpdateHeroBuildPreferenceResponse" => {
16433                Some(Self::KEMsgClientToGcUpdateHeroBuildPreferenceResponse)
16434            }
16435            "k_EMsgClientToGCUpdateSpectatorStatus" => {
16436                Some(Self::KEMsgClientToGcUpdateSpectatorStatus)
16437            }
16438            "k_EMsgClientToGCCommendPlayerFromMatch" => {
16439                Some(Self::KEMsgClientToGcCommendPlayerFromMatch)
16440            }
16441            "k_EMsgClientToGCCommendPlayerFromMatchResponse" => {
16442                Some(Self::KEMsgClientToGcCommendPlayerFromMatchResponse)
16443            }
16444            "k_EMsgGCToClientCommendNotification" => {
16445                Some(Self::KEMsgGcToClientCommendNotification)
16446            }
16447            "k_EMsgGCToClientHeroLabsSchedule" => {
16448                Some(Self::KEMsgGcToClientHeroLabsSchedule)
16449            }
16450            "k_EMsgClientToGCDevRequestCheatReports" => {
16451                Some(Self::KEMsgClientToGcDevRequestCheatReports)
16452            }
16453            "k_EMsgClientToGCDevRequestCheatReportsResponse" => {
16454                Some(Self::KEMsgClientToGcDevRequestCheatReportsResponse)
16455            }
16456            "k_EMsgClientToGCDevBan" => Some(Self::KEMsgClientToGcDevBan),
16457            "k_EMsgClientToGCDevBanResponse" => Some(Self::KEMsgClientToGcDevBanResponse),
16458            "k_EMsgClientToGCGetHeroMMRRankings" => {
16459                Some(Self::KEMsgClientToGcGetHeroMmrRankings)
16460            }
16461            "k_EMsgClientToGCGetHeroMMRRankingsResponse" => {
16462                Some(Self::KEMsgClientToGcGetHeroMmrRankingsResponse)
16463            }
16464            "k_EMsgClientToGCGetLeaderboard" => Some(Self::KEMsgClientToGcGetLeaderboard),
16465            "k_EMsgClientToGCGetLeaderboardResponse" => {
16466                Some(Self::KEMsgClientToGcGetLeaderboardResponse)
16467            }
16468            "k_EMsgClientToGCGetAccountLeaderboards" => {
16469                Some(Self::KEMsgClientToGcGetAccountLeaderboards)
16470            }
16471            "k_EMsgClientToGCGetAccountLeaderboardsResponse" => {
16472                Some(Self::KEMsgClientToGcGetAccountLeaderboardsResponse)
16473            }
16474            "k_EMsgClientToGCTarotGetUserData" => {
16475                Some(Self::KEMsgClientToGcTarotGetUserData)
16476            }
16477            "k_EMsgClientToGCTarotGetUserDataResponse" => {
16478                Some(Self::KEMsgClientToGcTarotGetUserDataResponse)
16479            }
16480            "k_EMsgGCToClientTarotUserDataUpdated" => {
16481                Some(Self::KEMsgGcToClientTarotUserDataUpdated)
16482            }
16483            "k_EMsgClientToGCTarotPlaceTile" => Some(Self::KEMsgClientToGcTarotPlaceTile),
16484            "k_EMsgClientToGCTarotPlaceTileResponse" => {
16485                Some(Self::KEMsgClientToGcTarotPlaceTileResponse)
16486            }
16487            "k_EMsgClientToGCTarotApplyRune" => Some(Self::KEMsgClientToGcTarotApplyRune),
16488            "k_EMsgClientToGCTarotApplyRuneResponse" => {
16489                Some(Self::KEMsgClientToGcTarotApplyRuneResponse)
16490            }
16491            "k_EMsgClientToGCTarotCompleteBoard" => {
16492                Some(Self::KEMsgClientToGcTarotCompleteBoard)
16493            }
16494            "k_EMsgClientToGCTarotCompleteBoardResponse" => {
16495                Some(Self::KEMsgClientToGcTarotCompleteBoardResponse)
16496            }
16497            "k_EMsgClientToGCTarotDevCreateTile" => {
16498                Some(Self::KEMsgClientToGcTarotDevCreateTile)
16499            }
16500            "k_EMsgClientToGCTarotDevCreateTileResponse" => {
16501                Some(Self::KEMsgClientToGcTarotDevCreateTileResponse)
16502            }
16503            "k_EMsgClientToGCTarotDevCreateBoard" => {
16504                Some(Self::KEMsgClientToGcTarotDevCreateBoard)
16505            }
16506            "k_EMsgClientToGCTarotDevCreateBoardResponse" => {
16507                Some(Self::KEMsgClientToGcTarotDevCreateBoardResponse)
16508            }
16509            "k_EMsgClientToGCTarotDevGenerateTestTiles" => {
16510                Some(Self::KEMsgClientToGcTarotDevGenerateTestTiles)
16511            }
16512            "k_EMsgClientToGCTarotDevGenerateTestTilesResponse" => {
16513                Some(Self::KEMsgClientToGcTarotDevGenerateTestTilesResponse)
16514            }
16515            "k_EMsgClientToGCTarotDevModifyEnergy" => {
16516                Some(Self::KEMsgClientToGcTarotDevModifyEnergy)
16517            }
16518            "k_EMsgClientToGCTarotDevModifyEnergyResponse" => {
16519                Some(Self::KEMsgClientToGcTarotDevModifyEnergyResponse)
16520            }
16521            "k_EMsgClientToGCGenerateChallengeSet" => {
16522                Some(Self::KEMsgClientToGcGenerateChallengeSet)
16523            }
16524            "k_EMsgClientToGCGenerateChallengeSetResponse" => {
16525                Some(Self::KEMsgClientToGcGenerateChallengeSetResponse)
16526            }
16527            "k_EMsgClientToGCChallengeActivate" => {
16528                Some(Self::KEMsgClientToGcChallengeActivate)
16529            }
16530            "k_EMsgClientToGCChallengeActivateResponse" => {
16531                Some(Self::KEMsgClientToGcChallengeActivateResponse)
16532            }
16533            "k_EMsgClientToGCChallengeClaim" => Some(Self::KEMsgClientToGcChallengeClaim),
16534            "k_EMsgClientToGCChallengeClaimResponse" => {
16535                Some(Self::KEMsgClientToGcChallengeClaimResponse)
16536            }
16537            "k_EMsgClientToGCChallengeCancel" => {
16538                Some(Self::KEMsgClientToGcChallengeCancel)
16539            }
16540            "k_EMsgClientToGCChallengeCancelResponse" => {
16541                Some(Self::KEMsgClientToGcChallengeCancelResponse)
16542            }
16543            "k_EMsgClientToGCGetSurveyQuestion" => {
16544                Some(Self::KEMsgClientToGcGetSurveyQuestion)
16545            }
16546            "k_EMsgClientToGCGetSurveyQuestionResponse" => {
16547                Some(Self::KEMsgClientToGcGetSurveyQuestionResponse)
16548            }
16549            "k_EMsgClientToGCSubmitSurvey" => Some(Self::KEMsgClientToGcSubmitSurvey),
16550            "k_EMsgClientToGCSubmitSurveyResponse" => {
16551                Some(Self::KEMsgClientToGcSubmitSurveyResponse)
16552            }
16553            "k_EMsgClientToGCGetRankData" => Some(Self::KEMsgClientToGcGetRankData),
16554            "k_EMsgGCToClientGetRankDataResponse" => {
16555                Some(Self::KEMsgGcToClientGetRankDataResponse)
16556            }
16557            "k_EMsgGCToClientRankDataUpdate" => Some(Self::KEMsgGcToClientRankDataUpdate),
16558            "k_EMsgClientToGCGetHideoutSDRTicket" => {
16559                Some(Self::KEMsgClientToGcGetHideoutSdrTicket)
16560            }
16561            "k_EMsgClientToGCGetHideoutSDRTicketResponse" => {
16562                Some(Self::KEMsgClientToGcGetHideoutSdrTicketResponse)
16563            }
16564            "k_EMsgClientToGCSubmitHeroReleaseVote" => {
16565                Some(Self::KEMsgClientToGcSubmitHeroReleaseVote)
16566            }
16567            "k_EMsgClientToGCPartySendChatMsg" => {
16568                Some(Self::KEMsgClientToGcPartySendChatMsg)
16569            }
16570            "k_EMsgClientToGCPartySendChatMsgResponse" => {
16571                Some(Self::KEMsgClientToGcPartySendChatMsgResponse)
16572            }
16573            "k_EMsgGCToClientPartyChatMsg" => Some(Self::KEMsgGcToClientPartyChatMsg),
16574            "k_EMsgClientToGCRequestHeroReleaseVoteTally" => {
16575                Some(Self::KEMsgClientToGcRequestHeroReleaseVoteTally)
16576            }
16577            "k_EMsgGCToClientUpdateHeroReleaseVoteTally" => {
16578                Some(Self::KEMsgGcToClientUpdateHeroReleaseVoteTally)
16579            }
16580            "k_EMsgClientToGCSetAccountPrivacySetting" => {
16581                Some(Self::KEMsgClientToGcSetAccountPrivacySetting)
16582            }
16583            "k_EMsgClientToGCSetAccountPrivacySettingResponse" => {
16584                Some(Self::KEMsgClientToGcSetAccountPrivacySettingResponse)
16585            }
16586            _ => None,
16587        }
16588    }
16589}
16590#[derive(serde::Serialize, serde::Deserialize)]
16591#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
16592#[repr(i32)]
16593pub enum ECitadelAccountPermissionFlag {
16594    KEAccountPermissionRanked = 1,
16595}
16596impl ECitadelAccountPermissionFlag {
16597    /// String value of the enum field names used in the ProtoBuf definition.
16598    ///
16599    /// The values are not transformed in any way and thus are considered stable
16600    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
16601    pub fn as_str_name(&self) -> &'static str {
16602        match self {
16603            Self::KEAccountPermissionRanked => "k_eAccountPermission_Ranked",
16604        }
16605    }
16606    /// Creates an enum from field names used in the ProtoBuf definition.
16607    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
16608        match value {
16609            "k_eAccountPermission_Ranked" => Some(Self::KEAccountPermissionRanked),
16610            _ => None,
16611        }
16612    }
16613}
16614#[derive(serde::Serialize, serde::Deserialize)]
16615#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
16616#[repr(i32)]
16617pub enum ECitadelNewPlayerProgressFlag {
16618    KENewPlayerProgressGettingStarted = 1,
16619    KENewPlayerProgressHeroTraining = 2,
16620    KENewPlayerProgressLaneTraining = 3,
16621    KENewPlayerProgressCombinedTutorial2026 = 4,
16622}
16623impl ECitadelNewPlayerProgressFlag {
16624    /// String value of the enum field names used in the ProtoBuf definition.
16625    ///
16626    /// The values are not transformed in any way and thus are considered stable
16627    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
16628    pub fn as_str_name(&self) -> &'static str {
16629        match self {
16630            Self::KENewPlayerProgressGettingStarted => {
16631                "k_eNewPlayerProgress_GettingStarted"
16632            }
16633            Self::KENewPlayerProgressHeroTraining => "k_eNewPlayerProgress_HeroTraining",
16634            Self::KENewPlayerProgressLaneTraining => "k_eNewPlayerProgress_LaneTraining",
16635            Self::KENewPlayerProgressCombinedTutorial2026 => {
16636                "k_eNewPlayerProgress_CombinedTutorial2026"
16637            }
16638        }
16639    }
16640    /// Creates an enum from field names used in the ProtoBuf definition.
16641    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
16642        match value {
16643            "k_eNewPlayerProgress_GettingStarted" => {
16644                Some(Self::KENewPlayerProgressGettingStarted)
16645            }
16646            "k_eNewPlayerProgress_HeroTraining" => {
16647                Some(Self::KENewPlayerProgressHeroTraining)
16648            }
16649            "k_eNewPlayerProgress_LaneTraining" => {
16650                Some(Self::KENewPlayerProgressLaneTraining)
16651            }
16652            "k_eNewPlayerProgress_CombinedTutorial2026" => {
16653                Some(Self::KENewPlayerProgressCombinedTutorial2026)
16654            }
16655            _ => None,
16656        }
16657    }
16658}
16659#[derive(serde::Serialize, serde::Deserialize)]
16660#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
16661#[repr(i32)]
16662pub enum EProfileCardSlotType {
16663    KEProfileCardSlotTypeEmpty = 0,
16664    KEProfileCardSlotTypeStat = 1,
16665    KEProfileCardSlotTypeHero = 2,
16666}
16667impl EProfileCardSlotType {
16668    /// String value of the enum field names used in the ProtoBuf definition.
16669    ///
16670    /// The values are not transformed in any way and thus are considered stable
16671    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
16672    pub fn as_str_name(&self) -> &'static str {
16673        match self {
16674            Self::KEProfileCardSlotTypeEmpty => "k_EProfileCardSlotType_Empty",
16675            Self::KEProfileCardSlotTypeStat => "k_EProfileCardSlotType_Stat",
16676            Self::KEProfileCardSlotTypeHero => "k_EProfileCardSlotType_Hero",
16677        }
16678    }
16679    /// Creates an enum from field names used in the ProtoBuf definition.
16680    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
16681        match value {
16682            "k_EProfileCardSlotType_Empty" => Some(Self::KEProfileCardSlotTypeEmpty),
16683            "k_EProfileCardSlotType_Stat" => Some(Self::KEProfileCardSlotTypeStat),
16684            "k_EProfileCardSlotType_Hero" => Some(Self::KEProfileCardSlotTypeHero),
16685            _ => None,
16686        }
16687    }
16688}
16689#[derive(serde::Serialize, serde::Deserialize)]
16690#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
16691#[repr(i32)]
16692pub enum EDevBanReason {
16693    KEDevBanReasonUnspecified = 0,
16694    KEDevBanReasonAimAssist = 1,
16695    KEDevBanReasonVisionAssist = 2,
16696    KEDevBanReasonMovementAssist = 3,
16697}
16698impl EDevBanReason {
16699    /// String value of the enum field names used in the ProtoBuf definition.
16700    ///
16701    /// The values are not transformed in any way and thus are considered stable
16702    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
16703    pub fn as_str_name(&self) -> &'static str {
16704        match self {
16705            Self::KEDevBanReasonUnspecified => "k_eDevBanReason_Unspecified",
16706            Self::KEDevBanReasonAimAssist => "k_eDevBanReason_AimAssist",
16707            Self::KEDevBanReasonVisionAssist => "k_eDevBanReason_VisionAssist",
16708            Self::KEDevBanReasonMovementAssist => "k_eDevBanReason_MovementAssist",
16709        }
16710    }
16711    /// Creates an enum from field names used in the ProtoBuf definition.
16712    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
16713        match value {
16714            "k_eDevBanReason_Unspecified" => Some(Self::KEDevBanReasonUnspecified),
16715            "k_eDevBanReason_AimAssist" => Some(Self::KEDevBanReasonAimAssist),
16716            "k_eDevBanReason_VisionAssist" => Some(Self::KEDevBanReasonVisionAssist),
16717            "k_eDevBanReason_MovementAssist" => Some(Self::KEDevBanReasonMovementAssist),
16718            _ => None,
16719        }
16720    }
16721}
16722#[derive(serde::Serialize, serde::Deserialize)]
16723#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
16724#[repr(i32)]
16725pub enum ECitadelClientAccountEvent {
16726    KELaunchedHeroTest = 1,
16727    KEViewedProfile = 2,
16728    KEViewedHeroes = 4,
16729    KEViewedHeroDetails = 5,
16730    KEViewedPatchNotes = 6,
16731    KEViewedEvents = 7,
16732    KEViewedGettingStarted = 8,
16733    KEViewedGuidePage = 9,
16734    KELaunchedClient = 10,
16735    KEEditRoster = 11,
16736    KEViewedWatch = 12,
16737    KECreatedParty = 13,
16738    KECreatedPartyWithInvite = 14,
16739    KEViewedSelfProfile = 15,
16740    KEJoinedPartyCode = 16,
16741    KESentPartyInvite = 17,
16742    KEAcceptPartyInvite = 18,
16743    KERejectPartyInvite = 19,
16744    KESpectateUser = 20,
16745    KESpectateMatch = 21,
16746    KEEnteredMatchMaking = 22,
16747    KELeftMatchMaking = 23,
16748    KEEnteredPartyMatchMaking = 24,
16749    KELeftPartyMatchMaking = 25,
16750    KEDownloadedReplay = 26,
16751    KEWatchedReplay = 27,
16752    KEViewMatchDetails = 28,
16753    KEMatchDetailsTab = 29,
16754    KEDeleteReplay = 30,
16755    KEBotMatchGuided = 31,
16756    KEBotMatchEasy = 32,
16757    KEBotMatchHard = 33,
16758    KELiveUpdatedRoster = 34,
16759    KEMatchMakingIdleDisplayed = 35,
16760    KEMatchMakingIdleStopped = 36,
16761    KEConnectReacquireTicket = 37,
16762    KEConnectAttemptReconnect = 38,
16763    KEDisconnectPresentedPrompt = 39,
16764    KEDisconnectConfirmed = 40,
16765    KEViewedSettingsOptions = 41,
16766    KEViewedSettingsVideo = 42,
16767    KEViewedSettingsAudio = 43,
16768    KEViewedSettingsHotKey = 44,
16769    KEViewedSettingsChatWheel = 45,
16770    KEViewedSettingsAbout = 46,
16771    KEOpenedSubmitFeedback = 47,
16772    KETutorialSkipPressed = 48,
16773    KETutorialSkipConfirmed = 49,
16774    KEViewedGuidePage5s = 50,
16775    KEViewedGuidePage15s = 51,
16776    KEViewedGuidePage30s = 52,
16777    KEViewedGuidePage60s = 53,
16778    KEOpenedBookTest = 54,
16779    KESandboxViaHeroPage = 55,
16780    KEViewedSettingsSteamInput = 56,
16781    KEViewedSettingsSocial = 57,
16782    KECalibrationMatch = 58,
16783    KESandboxViaPlayMenu = 59,
16784    KEBotMatchMedium = 60,
16785    KESandboxViaHideoutTeleport = 61,
16786    KERosterSelectSingleHero = 62,
16787}
16788impl ECitadelClientAccountEvent {
16789    /// String value of the enum field names used in the ProtoBuf definition.
16790    ///
16791    /// The values are not transformed in any way and thus are considered stable
16792    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
16793    pub fn as_str_name(&self) -> &'static str {
16794        match self {
16795            Self::KELaunchedHeroTest => "k_eLaunchedHeroTest",
16796            Self::KEViewedProfile => "k_eViewedProfile",
16797            Self::KEViewedHeroes => "k_eViewedHeroes",
16798            Self::KEViewedHeroDetails => "k_eViewedHeroDetails",
16799            Self::KEViewedPatchNotes => "k_eViewedPatchNotes",
16800            Self::KEViewedEvents => "k_eViewedEvents",
16801            Self::KEViewedGettingStarted => "k_eViewedGettingStarted",
16802            Self::KEViewedGuidePage => "k_eViewedGuidePage",
16803            Self::KELaunchedClient => "k_eLaunchedClient",
16804            Self::KEEditRoster => "k_eEditRoster",
16805            Self::KEViewedWatch => "k_eViewedWatch",
16806            Self::KECreatedParty => "k_eCreatedParty",
16807            Self::KECreatedPartyWithInvite => "k_eCreatedPartyWithInvite",
16808            Self::KEViewedSelfProfile => "k_eViewedSelfProfile",
16809            Self::KEJoinedPartyCode => "k_eJoinedPartyCode",
16810            Self::KESentPartyInvite => "k_eSentPartyInvite",
16811            Self::KEAcceptPartyInvite => "k_eAcceptPartyInvite",
16812            Self::KERejectPartyInvite => "k_eRejectPartyInvite",
16813            Self::KESpectateUser => "k_eSpectateUser",
16814            Self::KESpectateMatch => "k_eSpectateMatch",
16815            Self::KEEnteredMatchMaking => "k_eEnteredMatchMaking",
16816            Self::KELeftMatchMaking => "k_eLeftMatchMaking",
16817            Self::KEEnteredPartyMatchMaking => "k_eEnteredPartyMatchMaking",
16818            Self::KELeftPartyMatchMaking => "k_eLeftPartyMatchMaking",
16819            Self::KEDownloadedReplay => "k_eDownloadedReplay",
16820            Self::KEWatchedReplay => "k_eWatchedReplay",
16821            Self::KEViewMatchDetails => "k_eViewMatchDetails",
16822            Self::KEMatchDetailsTab => "k_eMatchDetailsTab",
16823            Self::KEDeleteReplay => "k_eDeleteReplay",
16824            Self::KEBotMatchGuided => "k_eBotMatch_Guided",
16825            Self::KEBotMatchEasy => "k_eBotMatch_Easy",
16826            Self::KEBotMatchHard => "k_eBotMatch_Hard",
16827            Self::KELiveUpdatedRoster => "k_eLiveUpdatedRoster",
16828            Self::KEMatchMakingIdleDisplayed => "k_eMatchMakingIdle_Displayed",
16829            Self::KEMatchMakingIdleStopped => "k_eMatchMakingIdle_Stopped",
16830            Self::KEConnectReacquireTicket => "k_eConnectReacquireTicket",
16831            Self::KEConnectAttemptReconnect => "k_eConnectAttemptReconnect",
16832            Self::KEDisconnectPresentedPrompt => "k_eDisconnectPresentedPrompt",
16833            Self::KEDisconnectConfirmed => "k_eDisconnectConfirmed",
16834            Self::KEViewedSettingsOptions => "k_eViewedSettings_Options",
16835            Self::KEViewedSettingsVideo => "k_eViewedSettings_Video",
16836            Self::KEViewedSettingsAudio => "k_eViewedSettings_Audio",
16837            Self::KEViewedSettingsHotKey => "k_eViewedSettings_HotKey",
16838            Self::KEViewedSettingsChatWheel => "k_eViewedSettings_ChatWheel",
16839            Self::KEViewedSettingsAbout => "k_eViewedSettings_About",
16840            Self::KEOpenedSubmitFeedback => "k_eOpenedSubmitFeedback",
16841            Self::KETutorialSkipPressed => "k_eTutorialSkip_Pressed",
16842            Self::KETutorialSkipConfirmed => "k_eTutorialSkip_Confirmed",
16843            Self::KEViewedGuidePage5s => "k_eViewedGuidePage_5s",
16844            Self::KEViewedGuidePage15s => "k_eViewedGuidePage_15s",
16845            Self::KEViewedGuidePage30s => "k_eViewedGuidePage_30s",
16846            Self::KEViewedGuidePage60s => "k_eViewedGuidePage_60s",
16847            Self::KEOpenedBookTest => "k_eOpenedBookTest",
16848            Self::KESandboxViaHeroPage => "k_eSandboxViaHeroPage",
16849            Self::KEViewedSettingsSteamInput => "k_eViewedSettings_SteamInput",
16850            Self::KEViewedSettingsSocial => "k_eViewedSettings_Social",
16851            Self::KECalibrationMatch => "k_eCalibrationMatch",
16852            Self::KESandboxViaPlayMenu => "k_eSandboxViaPlayMenu",
16853            Self::KEBotMatchMedium => "k_eBotMatch_Medium",
16854            Self::KESandboxViaHideoutTeleport => "k_eSandboxViaHideoutTeleport",
16855            Self::KERosterSelectSingleHero => "k_eRosterSelectSingleHero",
16856        }
16857    }
16858    /// Creates an enum from field names used in the ProtoBuf definition.
16859    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
16860        match value {
16861            "k_eLaunchedHeroTest" => Some(Self::KELaunchedHeroTest),
16862            "k_eViewedProfile" => Some(Self::KEViewedProfile),
16863            "k_eViewedHeroes" => Some(Self::KEViewedHeroes),
16864            "k_eViewedHeroDetails" => Some(Self::KEViewedHeroDetails),
16865            "k_eViewedPatchNotes" => Some(Self::KEViewedPatchNotes),
16866            "k_eViewedEvents" => Some(Self::KEViewedEvents),
16867            "k_eViewedGettingStarted" => Some(Self::KEViewedGettingStarted),
16868            "k_eViewedGuidePage" => Some(Self::KEViewedGuidePage),
16869            "k_eLaunchedClient" => Some(Self::KELaunchedClient),
16870            "k_eEditRoster" => Some(Self::KEEditRoster),
16871            "k_eViewedWatch" => Some(Self::KEViewedWatch),
16872            "k_eCreatedParty" => Some(Self::KECreatedParty),
16873            "k_eCreatedPartyWithInvite" => Some(Self::KECreatedPartyWithInvite),
16874            "k_eViewedSelfProfile" => Some(Self::KEViewedSelfProfile),
16875            "k_eJoinedPartyCode" => Some(Self::KEJoinedPartyCode),
16876            "k_eSentPartyInvite" => Some(Self::KESentPartyInvite),
16877            "k_eAcceptPartyInvite" => Some(Self::KEAcceptPartyInvite),
16878            "k_eRejectPartyInvite" => Some(Self::KERejectPartyInvite),
16879            "k_eSpectateUser" => Some(Self::KESpectateUser),
16880            "k_eSpectateMatch" => Some(Self::KESpectateMatch),
16881            "k_eEnteredMatchMaking" => Some(Self::KEEnteredMatchMaking),
16882            "k_eLeftMatchMaking" => Some(Self::KELeftMatchMaking),
16883            "k_eEnteredPartyMatchMaking" => Some(Self::KEEnteredPartyMatchMaking),
16884            "k_eLeftPartyMatchMaking" => Some(Self::KELeftPartyMatchMaking),
16885            "k_eDownloadedReplay" => Some(Self::KEDownloadedReplay),
16886            "k_eWatchedReplay" => Some(Self::KEWatchedReplay),
16887            "k_eViewMatchDetails" => Some(Self::KEViewMatchDetails),
16888            "k_eMatchDetailsTab" => Some(Self::KEMatchDetailsTab),
16889            "k_eDeleteReplay" => Some(Self::KEDeleteReplay),
16890            "k_eBotMatch_Guided" => Some(Self::KEBotMatchGuided),
16891            "k_eBotMatch_Easy" => Some(Self::KEBotMatchEasy),
16892            "k_eBotMatch_Hard" => Some(Self::KEBotMatchHard),
16893            "k_eLiveUpdatedRoster" => Some(Self::KELiveUpdatedRoster),
16894            "k_eMatchMakingIdle_Displayed" => Some(Self::KEMatchMakingIdleDisplayed),
16895            "k_eMatchMakingIdle_Stopped" => Some(Self::KEMatchMakingIdleStopped),
16896            "k_eConnectReacquireTicket" => Some(Self::KEConnectReacquireTicket),
16897            "k_eConnectAttemptReconnect" => Some(Self::KEConnectAttemptReconnect),
16898            "k_eDisconnectPresentedPrompt" => Some(Self::KEDisconnectPresentedPrompt),
16899            "k_eDisconnectConfirmed" => Some(Self::KEDisconnectConfirmed),
16900            "k_eViewedSettings_Options" => Some(Self::KEViewedSettingsOptions),
16901            "k_eViewedSettings_Video" => Some(Self::KEViewedSettingsVideo),
16902            "k_eViewedSettings_Audio" => Some(Self::KEViewedSettingsAudio),
16903            "k_eViewedSettings_HotKey" => Some(Self::KEViewedSettingsHotKey),
16904            "k_eViewedSettings_ChatWheel" => Some(Self::KEViewedSettingsChatWheel),
16905            "k_eViewedSettings_About" => Some(Self::KEViewedSettingsAbout),
16906            "k_eOpenedSubmitFeedback" => Some(Self::KEOpenedSubmitFeedback),
16907            "k_eTutorialSkip_Pressed" => Some(Self::KETutorialSkipPressed),
16908            "k_eTutorialSkip_Confirmed" => Some(Self::KETutorialSkipConfirmed),
16909            "k_eViewedGuidePage_5s" => Some(Self::KEViewedGuidePage5s),
16910            "k_eViewedGuidePage_15s" => Some(Self::KEViewedGuidePage15s),
16911            "k_eViewedGuidePage_30s" => Some(Self::KEViewedGuidePage30s),
16912            "k_eViewedGuidePage_60s" => Some(Self::KEViewedGuidePage60s),
16913            "k_eOpenedBookTest" => Some(Self::KEOpenedBookTest),
16914            "k_eSandboxViaHeroPage" => Some(Self::KESandboxViaHeroPage),
16915            "k_eViewedSettings_SteamInput" => Some(Self::KEViewedSettingsSteamInput),
16916            "k_eViewedSettings_Social" => Some(Self::KEViewedSettingsSocial),
16917            "k_eCalibrationMatch" => Some(Self::KECalibrationMatch),
16918            "k_eSandboxViaPlayMenu" => Some(Self::KESandboxViaPlayMenu),
16919            "k_eBotMatch_Medium" => Some(Self::KEBotMatchMedium),
16920            "k_eSandboxViaHideoutTeleport" => Some(Self::KESandboxViaHideoutTeleport),
16921            "k_eRosterSelectSingleHero" => Some(Self::KERosterSelectSingleHero),
16922            _ => None,
16923        }
16924    }
16925}
16926#[derive(serde::Serialize, serde::Deserialize)]
16927#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
16928#[repr(i32)]
16929pub enum ECommendType {
16930    KEInvalid = 0,
16931    KEGeneric = 1,
16932    KEFriendly = 2,
16933    KETeamwork = 3,
16934    KESkilled = 4,
16935}
16936impl ECommendType {
16937    /// String value of the enum field names used in the ProtoBuf definition.
16938    ///
16939    /// The values are not transformed in any way and thus are considered stable
16940    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
16941    pub fn as_str_name(&self) -> &'static str {
16942        match self {
16943            Self::KEInvalid => "k_eInvalid",
16944            Self::KEGeneric => "k_eGeneric",
16945            Self::KEFriendly => "k_eFriendly",
16946            Self::KETeamwork => "k_eTeamwork",
16947            Self::KESkilled => "k_eSkilled",
16948        }
16949    }
16950    /// Creates an enum from field names used in the ProtoBuf definition.
16951    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
16952        match value {
16953            "k_eInvalid" => Some(Self::KEInvalid),
16954            "k_eGeneric" => Some(Self::KEGeneric),
16955            "k_eFriendly" => Some(Self::KEFriendly),
16956            "k_eTeamwork" => Some(Self::KETeamwork),
16957            "k_eSkilled" => Some(Self::KESkilled),
16958            _ => None,
16959        }
16960    }
16961}
16962#[derive(serde::Serialize, serde::Deserialize)]
16963#[derive(Clone, PartialEq, ::prost::Message)]
16964pub struct CMsgServerCrashSentinelFile {
16965    #[prost(uint32, optional, tag = "1")]
16966    pub version: ::core::option::Option<u32>,
16967    #[prost(fixed64, optional, tag = "2")]
16968    pub server_steam_id: ::core::option::Option<u64>,
16969    #[prost(fixed32, optional, tag = "3")]
16970    pub server_public_ip_addr: ::core::option::Option<u32>,
16971    #[prost(uint32, optional, tag = "4")]
16972    pub server_port: ::core::option::Option<u32>,
16973    #[prost(uint32, optional, tag = "5")]
16974    pub server_cluster_id: ::core::option::Option<u32>,
16975    #[prost(uint32, optional, tag = "6")]
16976    pub pid: ::core::option::Option<u32>,
16977    #[prost(uint32, optional, tag = "7")]
16978    pub saved_time: ::core::option::Option<u32>,
16979    #[prost(uint32, optional, tag = "8")]
16980    pub server_version: ::core::option::Option<u32>,
16981    #[prost(message, optional, tag = "9")]
16982    pub game_info: ::core::option::Option<c_msg_server_crash_sentinel_file::GameInfo>,
16983    #[prost(uint32, optional, tag = "10")]
16984    pub server_private_ip_addr: ::core::option::Option<u32>,
16985    #[prost(uint32, optional, tag = "11")]
16986    pub instance_id: ::core::option::Option<u32>,
16987    #[prost(uint32, optional, tag = "12")]
16988    pub server_region_id: ::core::option::Option<u32>,
16989}
16990/// Nested message and enum types in `CMsgServerCrashSentinelFile`.
16991pub mod c_msg_server_crash_sentinel_file {
16992    #[derive(serde::Serialize, serde::Deserialize)]
16993    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
16994    pub struct Player {
16995        #[prost(uint32, optional, tag = "1")]
16996        pub account_id: ::core::option::Option<u32>,
16997        #[prost(uint32, optional, tag = "2")]
16998        pub hero_id: ::core::option::Option<u32>,
16999    }
17000    #[derive(serde::Serialize, serde::Deserialize)]
17001    #[derive(Clone, PartialEq, ::prost::Message)]
17002    pub struct GameInfo {
17003        #[prost(uint64, optional, tag = "1")]
17004        pub match_id: ::core::option::Option<u64>,
17005        #[prost(fixed64, optional, tag = "2")]
17006        pub lobby_id: ::core::option::Option<u64>,
17007        #[prost(uint32, optional, tag = "3")]
17008        pub server_state: ::core::option::Option<u32>,
17009        #[prost(message, repeated, tag = "5")]
17010        pub players: ::prost::alloc::vec::Vec<Player>,
17011        #[prost(
17012            enumeration = "super::ECitadelMatchMode",
17013            optional,
17014            tag = "6",
17015            default = "KECitadelMatchModeInvalid"
17016        )]
17017        pub match_mode: ::core::option::Option<i32>,
17018        #[prost(
17019            enumeration = "super::ECitadelGameMode",
17020            optional,
17021            tag = "7",
17022            default = "KECitadelGameModeInvalid"
17023        )]
17024        pub game_mode: ::core::option::Option<i32>,
17025        #[prost(bool, optional, tag = "8")]
17026        pub was_server_shutdown: ::core::option::Option<bool>,
17027        #[prost(uint64, optional, tag = "9")]
17028        pub hideout_lobby_id: ::core::option::Option<u64>,
17029        #[prost(bool, optional, tag = "10")]
17030        pub allow_matches: ::core::option::Option<bool>,
17031        #[prost(bool, optional, tag = "11")]
17032        pub allow_hideout: ::core::option::Option<bool>,
17033        #[prost(bool, optional, tag = "12")]
17034        pub was_lost_lobby: ::core::option::Option<bool>,
17035    }
17036}
17037#[derive(serde::Serialize, serde::Deserialize)]
17038#[derive(Clone, PartialEq, ::prost::Message)]
17039pub struct CMsgAccountChallengesActive {
17040    #[prost(message, repeated, tag = "1")]
17041    pub challenges: ::prost::alloc::vec::Vec<c_msg_account_challenges_active::Challenge>,
17042}
17043/// Nested message and enum types in `CMsgAccountChallengesActive`.
17044pub mod c_msg_account_challenges_active {
17045    #[derive(serde::Serialize, serde::Deserialize)]
17046    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17047    pub struct Challenge {
17048        #[prost(uint64, optional, tag = "1")]
17049        pub challenge_id: ::core::option::Option<u64>,
17050        #[prost(uint32, optional, tag = "2")]
17051        pub progress: ::core::option::Option<u32>,
17052        #[prost(uint32, optional, tag = "3")]
17053        pub max_progress: ::core::option::Option<u32>,
17054    }
17055}
17056#[derive(serde::Serialize, serde::Deserialize)]
17057#[derive(Clone, PartialEq, ::prost::Message)]
17058pub struct CServerLobbyDataPlayerMmr {
17059    #[prost(message, repeated, tag = "1")]
17060    pub players: ::prost::alloc::vec::Vec<c_server_lobby_data_player_mmr::Player>,
17061}
17062/// Nested message and enum types in `CServerLobbyData_PlayerMMR`.
17063pub mod c_server_lobby_data_player_mmr {
17064    #[derive(serde::Serialize, serde::Deserialize)]
17065    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
17066    pub struct Player {
17067        #[prost(uint32, optional, tag = "2")]
17068        pub player_mmr: ::core::option::Option<u32>,
17069        #[prost(uint32, optional, tag = "3")]
17070        pub player_uncertainty: ::core::option::Option<u32>,
17071        #[prost(uint32, optional, tag = "4")]
17072        pub hero_mmr: ::core::option::Option<u32>,
17073        #[prost(uint32, optional, tag = "5")]
17074        pub hero_mmr_with_uncertainty: ::core::option::Option<u32>,
17075        #[prost(uint32, optional, tag = "6")]
17076        pub player_slot: ::core::option::Option<u32>,
17077        #[prost(float, optional, tag = "7")]
17078        pub hero_mmru_skill: ::core::option::Option<f32>,
17079    }
17080}
17081#[derive(serde::Serialize, serde::Deserialize)]
17082#[derive(Clone, PartialEq, ::prost::Message)]
17083pub struct CServerLobbyDataPlayerInfo {
17084    #[prost(uint32, optional, tag = "1")]
17085    pub account_id: ::core::option::Option<u32>,
17086    #[prost(message, repeated, tag = "2")]
17087    pub account_stats: ::prost::alloc::vec::Vec<CMsgAccountHeroStats>,
17088    #[prost(message, repeated, tag = "5")]
17089    pub book_info: ::prost::alloc::vec::Vec<CMsgAccountBookStats>,
17090    #[prost(message, optional, tag = "7")]
17091    pub challenges: ::core::option::Option<CMsgAccountChallengesActive>,
17092    #[prost(message, optional, tag = "8")]
17093    pub global_equips: ::core::option::Option<CMsgEquippedItemList>,
17094}
17095#[derive(serde::Serialize, serde::Deserialize)]
17096#[derive(Clone, PartialEq, ::prost::Message)]
17097pub struct CServerLobbyDataPostMatchSurvey {
17098    #[prost(message, repeated, tag = "1")]
17099    pub surveys: ::prost::alloc::vec::Vec<
17100        c_server_lobby_data_post_match_survey::PlayerSurvey,
17101    >,
17102}
17103/// Nested message and enum types in `CServerLobbyData_PostMatchSurvey`.
17104pub mod c_server_lobby_data_post_match_survey {
17105    #[derive(serde::Serialize, serde::Deserialize)]
17106    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17107    pub struct PlayerSurvey {
17108        #[prost(uint32, optional, tag = "1")]
17109        pub account_id: ::core::option::Option<u32>,
17110        #[prost(uint32, optional, tag = "2")]
17111        pub question_id: ::core::option::Option<u32>,
17112    }
17113}
17114#[derive(serde::Serialize, serde::Deserialize)]
17115#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17116pub struct CServerLobbyDataAutoTest {
17117    #[prost(uint32, optional, tag = "2")]
17118    pub max_duration_s: ::core::option::Option<u32>,
17119}
17120#[derive(serde::Serialize, serde::Deserialize)]
17121#[derive(Clone, PartialEq, ::prost::Message)]
17122pub struct CServerLobbyDataPlayerStatValues {
17123    #[prost(message, repeated, tag = "1")]
17124    pub accolades: ::prost::alloc::vec::Vec<
17125        c_server_lobby_data_player_stat_values::AccoladeThresholds,
17126    >,
17127    #[prost(message, repeated, tag = "2")]
17128    pub stat_distributions: ::prost::alloc::vec::Vec<
17129        c_server_lobby_data_player_stat_values::StatDistribution,
17130    >,
17131}
17132/// Nested message and enum types in `CServerLobbyData_PlayerStatValues`.
17133pub mod c_server_lobby_data_player_stat_values {
17134    #[derive(serde::Serialize, serde::Deserialize)]
17135    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
17136    pub struct AccoladeThresholds {
17137        #[prost(uint32, optional, tag = "1")]
17138        pub accolade_id: ::core::option::Option<u32>,
17139        #[prost(uint32, repeated, packed = "false", tag = "2")]
17140        pub thresholds: ::prost::alloc::vec::Vec<u32>,
17141    }
17142    #[derive(serde::Serialize, serde::Deserialize)]
17143    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
17144    pub struct StatDistribution {
17145        #[prost(uint32, optional, tag = "1")]
17146        pub tracked_stat_id: ::core::option::Option<u32>,
17147        #[prost(float, optional, tag = "2")]
17148        pub tracked_stat_mean: ::core::option::Option<f32>,
17149        #[prost(float, optional, tag = "3")]
17150        pub tracked_stat_std_dev: ::core::option::Option<f32>,
17151    }
17152}
17153#[derive(serde::Serialize, serde::Deserialize)]
17154#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
17155pub struct CsoCitadelServerDynamicLobby {
17156    #[prost(uint64, optional, tag = "1")]
17157    pub lobby_id: ::core::option::Option<u64>,
17158    #[prost(uint32, repeated, tag = "2")]
17159    pub left_account_ids: ::prost::alloc::vec::Vec<u32>,
17160    #[prost(bool, optional, tag = "3")]
17161    pub broadcast_active: ::core::option::Option<bool>,
17162    #[prost(uint32, optional, tag = "4")]
17163    pub spectator_count: ::core::option::Option<u32>,
17164}
17165#[derive(serde::Serialize, serde::Deserialize)]
17166#[derive(Clone, PartialEq, ::prost::Message)]
17167pub struct CsoCitadelServerStaticLobby {
17168    #[prost(message, repeated, tag = "1")]
17169    pub extra_messages: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
17170    #[prost(fixed64, optional, tag = "2")]
17171    pub server_steam_id: ::core::option::Option<u64>,
17172    #[prost(uint64, optional, tag = "3")]
17173    pub lobby_id: ::core::option::Option<u64>,
17174    #[prost(fixed32, optional, tag = "4")]
17175    pub replay_salt: ::core::option::Option<u32>,
17176    #[prost(string, optional, tag = "5")]
17177    pub level_name: ::core::option::Option<::prost::alloc::string::String>,
17178    #[prost(message, repeated, tag = "6")]
17179    pub members: ::prost::alloc::vec::Vec<cso_citadel_server_static_lobby::Member>,
17180    #[prost(message, optional, tag = "7")]
17181    pub dev_settings: ::core::option::Option<
17182        cso_citadel_server_static_lobby::DevSettings,
17183    >,
17184    #[prost(bool, optional, tag = "8")]
17185    pub gc_provided_heroes: ::core::option::Option<bool>,
17186    #[prost(
17187        enumeration = "ECitadelBotDifficulty",
17188        optional,
17189        tag = "9",
17190        default = "KECitadelBotDifficultyNone"
17191    )]
17192    pub bot_difficulty: ::core::option::Option<i32>,
17193    #[prost(fixed32, optional, tag = "10")]
17194    pub metadata_salt: ::core::option::Option<u32>,
17195    #[prost(uint32, optional, tag = "11")]
17196    pub match_start_time: ::core::option::Option<u32>,
17197    #[prost(
17198        enumeration = "ECitadelRegionMode",
17199        optional,
17200        tag = "16",
17201        default = "KECitadelRegionModeRow"
17202    )]
17203    pub region_mode: ::core::option::Option<i32>,
17204    #[prost(string, optional, tag = "17")]
17205    pub broadcast_url: ::core::option::Option<::prost::alloc::string::String>,
17206    #[prost(bool, optional, tag = "18")]
17207    pub new_player_pool: ::core::option::Option<bool>,
17208    #[prost(bool, optional, tag = "19")]
17209    pub low_pri_pool: ::core::option::Option<bool>,
17210    #[prost(bool, optional, tag = "20")]
17211    pub is_restricted_access: ::core::option::Option<bool>,
17212    #[prost(bool, optional, tag = "21")]
17213    pub cheats_enabled: ::core::option::Option<bool>,
17214    #[prost(bool, optional, tag = "22")]
17215    pub duplicate_heroes_enabled: ::core::option::Option<bool>,
17216    #[prost(bool, optional, tag = "23")]
17217    pub is_high_skill_range_parties: ::core::option::Option<bool>,
17218    #[prost(uint32, optional, tag = "25")]
17219    pub average_badge_team_0: ::core::option::Option<u32>,
17220    #[prost(uint32, optional, tag = "26")]
17221    pub average_badge_team_1: ::core::option::Option<u32>,
17222    #[prost(string, optional, tag = "27")]
17223    pub gameplay_experiment: ::core::option::Option<::prost::alloc::string::String>,
17224    #[prost(bool, optional, tag = "28")]
17225    pub rewards_eligible: ::core::option::Option<bool>,
17226    #[prost(uint32, repeated, packed = "false", tag = "29")]
17227    pub banned_heroes: ::prost::alloc::vec::Vec<u32>,
17228}
17229/// Nested message and enum types in `CSOCitadelServerStaticLobby`.
17230pub mod cso_citadel_server_static_lobby {
17231    #[derive(serde::Serialize, serde::Deserialize)]
17232    #[derive(Clone, PartialEq, ::prost::Message)]
17233    pub struct Member {
17234        #[prost(uint32, optional, tag = "1")]
17235        pub account_id: ::core::option::Option<u32>,
17236        #[prost(string, optional, tag = "2")]
17237        pub persona_name: ::core::option::Option<::prost::alloc::string::String>,
17238        #[prost(
17239            enumeration = "super::ECitadelLobbyTeam",
17240            optional,
17241            tag = "3",
17242            default = "KECitadelLobbyTeamTeam0"
17243        )]
17244        pub team: ::core::option::Option<i32>,
17245        #[prost(uint32, optional, tag = "4")]
17246        pub player_slot: ::core::option::Option<u32>,
17247        #[prost(uint32, optional, tag = "5")]
17248        pub hero_id: ::core::option::Option<u32>,
17249        #[prost(uint32, optional, tag = "6")]
17250        pub party_index: ::core::option::Option<u32>,
17251        #[prost(
17252            enumeration = "super::EgcPlatform",
17253            optional,
17254            tag = "7",
17255            default = "KEGcPlatformNone"
17256        )]
17257        pub platform: ::core::option::Option<i32>,
17258        #[prost(enumeration = "EAwardIDs", repeated, packed = "false", tag = "8")]
17259        pub award_ids: ::prost::alloc::vec::Vec<i32>,
17260        #[prost(bool, optional, tag = "9")]
17261        pub is_comms_restricted: ::core::option::Option<bool>,
17262        #[prost(uint32, optional, tag = "10")]
17263        pub lane_id: ::core::option::Option<u32>,
17264        #[prost(message, optional, tag = "13")]
17265        pub gc_account_data: ::core::option::Option<super::CMsgGcAccountData>,
17266        #[prost(bool, optional, tag = "14")]
17267        pub party_desires_laning_together: ::core::option::Option<bool>,
17268        #[prost(
17269            enumeration = "super::ECitadelBotDifficulty",
17270            optional,
17271            tag = "16",
17272            default = "KECitadelBotDifficultyNone"
17273        )]
17274        pub bot_difficulty: ::core::option::Option<i32>,
17275        #[prost(bool, optional, tag = "18")]
17276        pub requires_skill_calibration: ::core::option::Option<bool>,
17277        #[prost(message, optional, tag = "19")]
17278        pub hero_data: ::core::option::Option<super::CMsgPlayerHeroData>,
17279        #[prost(uint32, optional, tag = "20")]
17280        pub match_number: ::core::option::Option<u32>,
17281        #[prost(bool, optional, tag = "21")]
17282        pub randomed_hero: ::core::option::Option<bool>,
17283    }
17284    #[derive(serde::Serialize, serde::Deserialize)]
17285    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
17286    pub struct DevSettings {
17287        #[prost(string, optional, tag = "1")]
17288        pub console_string: ::core::option::Option<::prost::alloc::string::String>,
17289    }
17290    #[derive(serde::Serialize, serde::Deserialize)]
17291    #[derive(
17292        Clone,
17293        Copy,
17294        Debug,
17295        PartialEq,
17296        Eq,
17297        Hash,
17298        PartialOrd,
17299        Ord,
17300        ::prost::Enumeration
17301    )]
17302    #[repr(i32)]
17303    pub enum EAwardIDs {
17304        KEAwardKingPandaDeprecated = 1,
17305    }
17306    impl EAwardIDs {
17307        /// String value of the enum field names used in the ProtoBuf definition.
17308        ///
17309        /// The values are not transformed in any way and thus are considered stable
17310        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
17311        pub fn as_str_name(&self) -> &'static str {
17312            match self {
17313                Self::KEAwardKingPandaDeprecated => "k_eAward_KingPanda_DEPRECATED",
17314            }
17315        }
17316        /// Creates an enum from field names used in the ProtoBuf definition.
17317        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
17318            match value {
17319                "k_eAward_KingPanda_DEPRECATED" => Some(Self::KEAwardKingPandaDeprecated),
17320                _ => None,
17321            }
17322        }
17323    }
17324}
17325#[derive(serde::Serialize, serde::Deserialize)]
17326#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17327pub struct CsoCitadelServerHideoutLobby {
17328    #[prost(uint64, optional, tag = "1")]
17329    pub hideout_lobby_id: ::core::option::Option<u64>,
17330}
17331#[derive(serde::Serialize, serde::Deserialize)]
17332#[derive(Clone, PartialEq, ::prost::Message)]
17333pub struct CMsgServerSignoutDataServerPerfStats {
17334    #[prost(uint64, optional, tag = "1")]
17335    pub peak_memory_bytes: ::core::option::Option<u64>,
17336    #[prost(uint64, optional, tag = "2")]
17337    pub end_memory_bytes: ::core::option::Option<u64>,
17338    #[prost(uint32, optional, tag = "3")]
17339    pub frame_time_max_micro_s: ::core::option::Option<u32>,
17340    #[prost(uint32, optional, tag = "4")]
17341    pub frame_time_95_micro_s: ::core::option::Option<u32>,
17342    #[prost(uint32, optional, tag = "5")]
17343    pub frame_time_avg_micro_s: ::core::option::Option<u32>,
17344    #[prost(uint32, optional, tag = "6")]
17345    pub frame_idle_time_95_micro_s: ::core::option::Option<u32>,
17346    #[prost(uint32, optional, tag = "7")]
17347    pub frame_idle_time_avg_micro_s: ::core::option::Option<u32>,
17348    #[prost(uint32, optional, tag = "8")]
17349    pub frame_time_80_micro_s: ::core::option::Option<u32>,
17350    #[prost(uint32, optional, tag = "9")]
17351    pub frame_time_99_micro_s: ::core::option::Option<u32>,
17352    #[prost(message, optional, tag = "10")]
17353    pub perf_samples: ::core::option::Option<
17354        c_msg_server_signout_data_server_perf_stats::MatchPerfSamples,
17355    >,
17356}
17357/// Nested message and enum types in `CMsgServerSignoutData_ServerPerfStats`.
17358pub mod c_msg_server_signout_data_server_perf_stats {
17359    #[derive(serde::Serialize, serde::Deserialize)]
17360    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17361    pub struct FrameCounts {
17362        #[prost(uint32, optional, tag = "1")]
17363        pub num_frames: ::core::option::Option<u32>,
17364        #[prost(uint32, optional, tag = "2")]
17365        pub longest_run: ::core::option::Option<u32>,
17366        #[prost(uint32, optional, tag = "3")]
17367        pub num_runs: ::core::option::Option<u32>,
17368    }
17369    #[derive(serde::Serialize, serde::Deserialize)]
17370    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
17371    pub struct PerfSample {
17372        #[prost(uint32, optional, tag = "1")]
17373        pub game_time_s: ::core::option::Option<u32>,
17374        #[prost(float, optional, tag = "2")]
17375        pub avg_frame: ::core::option::Option<f32>,
17376        #[prost(float, optional, tag = "3")]
17377        pub avg_idle: ::core::option::Option<f32>,
17378        #[prost(uint32, optional, tag = "4")]
17379        pub total_frames: ::core::option::Option<u32>,
17380        #[prost(message, optional, tag = "5")]
17381        pub performant_frames: ::core::option::Option<FrameCounts>,
17382        #[prost(message, optional, tag = "6")]
17383        pub long_frames: ::core::option::Option<FrameCounts>,
17384        #[prost(message, optional, tag = "7")]
17385        pub low_idle_frames: ::core::option::Option<FrameCounts>,
17386        #[prost(uint64, optional, tag = "8")]
17387        pub memory_bytes: ::core::option::Option<u64>,
17388        #[prost(uint64, optional, tag = "9")]
17389        pub peak_memory_bytes: ::core::option::Option<u64>,
17390    }
17391    #[derive(serde::Serialize, serde::Deserialize)]
17392    #[derive(Clone, PartialEq, ::prost::Message)]
17393    pub struct MatchPerfSamples {
17394        #[prost(float, optional, tag = "1")]
17395        pub long_frame_threshold: ::core::option::Option<f32>,
17396        #[prost(float, optional, tag = "2")]
17397        pub low_idle_threshold: ::core::option::Option<f32>,
17398        #[prost(message, repeated, tag = "3")]
17399        pub samples: ::prost::alloc::vec::Vec<PerfSample>,
17400    }
17401}
17402#[derive(serde::Serialize, serde::Deserialize)]
17403#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17404pub struct CMsgServerToGcUpdateMatchInfo {
17405    #[prost(uint64, optional, tag = "1")]
17406    pub lobby_id: ::core::option::Option<u64>,
17407    #[prost(uint32, optional, tag = "3")]
17408    pub kills_team_0: ::core::option::Option<u32>,
17409    #[prost(uint32, optional, tag = "4")]
17410    pub kills_team_1: ::core::option::Option<u32>,
17411    #[prost(uint32, optional, tag = "5")]
17412    pub net_worth_team_0: ::core::option::Option<u32>,
17413    #[prost(uint32, optional, tag = "6")]
17414    pub net_worth_team_1: ::core::option::Option<u32>,
17415    #[prost(uint32, optional, tag = "7")]
17416    pub spectators: ::core::option::Option<u32>,
17417    #[prost(uint32, optional, tag = "8")]
17418    pub open_spectator_slots: ::core::option::Option<u32>,
17419    #[prost(uint64, optional, tag = "9")]
17420    pub objectives_mask_team0: ::core::option::Option<u64>,
17421    #[prost(uint64, optional, tag = "10")]
17422    pub objectives_mask_team1: ::core::option::Option<u64>,
17423    #[prost(uint32, optional, tag = "11")]
17424    pub brawl_score_team0: ::core::option::Option<u32>,
17425    #[prost(uint32, optional, tag = "12")]
17426    pub brawl_score_team1: ::core::option::Option<u32>,
17427}
17428#[derive(serde::Serialize, serde::Deserialize)]
17429#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17430pub struct CMsgServerToGcMatchSignoutPermission {
17431    #[prost(uint32, optional, tag = "1")]
17432    pub signout_start: ::core::option::Option<u32>,
17433    #[prost(uint32, optional, tag = "2")]
17434    pub permission_request: ::core::option::Option<u32>,
17435    #[prost(uint64, optional, tag = "3")]
17436    pub match_id: ::core::option::Option<u64>,
17437    #[prost(
17438        enumeration = "ECitadelMatchMode",
17439        optional,
17440        tag = "4",
17441        default = "KECitadelMatchModeInvalid"
17442    )]
17443    pub match_mode: ::core::option::Option<i32>,
17444}
17445#[derive(serde::Serialize, serde::Deserialize)]
17446#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
17447pub struct CMsgServerToGcMatchSignoutPermissionResponse {
17448    #[prost(bool, optional, tag = "1")]
17449    pub can_sign_out: ::core::option::Option<bool>,
17450    #[prost(uint32, optional, tag = "2")]
17451    pub retry_time_s: ::core::option::Option<u32>,
17452    #[prost(uint32, repeated, packed = "false", tag = "3")]
17453    pub requested_data: ::prost::alloc::vec::Vec<u32>,
17454}
17455#[derive(serde::Serialize, serde::Deserialize)]
17456#[derive(Clone, PartialEq, ::prost::Message)]
17457pub struct CMsgServerSignoutDataDisconnections {
17458    #[prost(message, repeated, tag = "1")]
17459    pub disconnections: ::prost::alloc::vec::Vec<
17460        c_msg_server_signout_data_disconnections::CMsgMatchDisconnection,
17461    >,
17462}
17463/// Nested message and enum types in `CMsgServerSignoutData_Disconnections`.
17464pub mod c_msg_server_signout_data_disconnections {
17465    #[derive(serde::Serialize, serde::Deserialize)]
17466    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17467    pub struct CMsgMatchDisconnection {
17468        #[prost(uint32, optional, tag = "1")]
17469        pub account_id: ::core::option::Option<u32>,
17470        #[prost(uint32, optional, tag = "2")]
17471        pub disconnect_time: ::core::option::Option<u32>,
17472        #[prost(uint32, optional, tag = "3")]
17473        pub connection_state: ::core::option::Option<u32>,
17474        #[prost(uint32, optional, tag = "4")]
17475        pub reason_code: ::core::option::Option<u32>,
17476        #[prost(uint32, optional, tag = "5")]
17477        pub reconnect_delay: ::core::option::Option<u32>,
17478        #[prost(uint32, optional, tag = "6")]
17479        pub match_disconnect_time: ::core::option::Option<u32>,
17480        #[prost(uint32, optional, tag = "7")]
17481        pub match_reconnect_delay: ::core::option::Option<u32>,
17482    }
17483}
17484#[derive(serde::Serialize, serde::Deserialize)]
17485#[derive(Clone, PartialEq, ::prost::Message)]
17486pub struct CMsgServerSignoutDataMatchDevStats {
17487    #[prost(message, repeated, tag = "1")]
17488    pub players: ::prost::alloc::vec::Vec<
17489        c_msg_server_signout_data_match_dev_stats::PlayerSlot,
17490    >,
17491}
17492/// Nested message and enum types in `CMsgServerSignoutData_MatchDevStats`.
17493pub mod c_msg_server_signout_data_match_dev_stats {
17494    #[derive(serde::Serialize, serde::Deserialize)]
17495    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17496    pub struct PlayerSlot {
17497        #[prost(uint32, optional, tag = "1")]
17498        pub player_slot: ::core::option::Option<u32>,
17499    }
17500}
17501#[derive(serde::Serialize, serde::Deserialize)]
17502#[derive(Clone, PartialEq, ::prost::Message)]
17503pub struct CMsgServerSignoutDataDetailedStats {
17504    #[prost(message, repeated, tag = "1")]
17505    pub player_stats: ::prost::alloc::vec::Vec<
17506        c_msg_server_signout_data_detailed_stats::Player,
17507    >,
17508    #[prost(message, repeated, tag = "2")]
17509    pub objectives: ::prost::alloc::vec::Vec<
17510        c_msg_server_signout_data_detailed_stats::Objective,
17511    >,
17512    #[prost(message, repeated, tag = "3")]
17513    pub mid_boss: ::prost::alloc::vec::Vec<
17514        c_msg_server_signout_data_detailed_stats::MidBoss,
17515    >,
17516}
17517/// Nested message and enum types in `CMsgServerSignoutData_DetailedStats`.
17518pub mod c_msg_server_signout_data_detailed_stats {
17519    #[derive(serde::Serialize, serde::Deserialize)]
17520    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
17521    pub struct Position {
17522        #[prost(float, optional, tag = "1")]
17523        pub x: ::core::option::Option<f32>,
17524        #[prost(float, optional, tag = "2")]
17525        pub y: ::core::option::Option<f32>,
17526        #[prost(float, optional, tag = "3")]
17527        pub z: ::core::option::Option<f32>,
17528    }
17529    #[derive(serde::Serialize, serde::Deserialize)]
17530    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
17531    pub struct TimeSample {
17532        #[prost(uint32, optional, tag = "1")]
17533        pub match_time_s: ::core::option::Option<u32>,
17534        #[prost(message, optional, tag = "2")]
17535        pub stats: ::core::option::Option<time_sample::Stats>,
17536        #[prost(message, optional, tag = "4")]
17537        pub gold_stats: ::core::option::Option<time_sample::GoldStats>,
17538    }
17539    /// Nested message and enum types in `TimeSample`.
17540    pub mod time_sample {
17541        #[derive(serde::Serialize, serde::Deserialize)]
17542        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
17543        pub struct Stats {
17544            #[prost(uint32, optional, tag = "1")]
17545            pub net_worth: ::core::option::Option<u32>,
17546            #[prost(uint32, optional, tag = "2")]
17547            pub kills: ::core::option::Option<u32>,
17548            #[prost(uint32, optional, tag = "3")]
17549            pub deaths: ::core::option::Option<u32>,
17550            #[prost(uint32, optional, tag = "4")]
17551            pub assists: ::core::option::Option<u32>,
17552            #[prost(uint32, optional, tag = "5")]
17553            pub possible_creeps: ::core::option::Option<u32>,
17554            #[prost(uint32, optional, tag = "6")]
17555            pub creep_kills: ::core::option::Option<u32>,
17556            #[prost(uint32, optional, tag = "7")]
17557            pub neutral_kills: ::core::option::Option<u32>,
17558            #[prost(uint32, optional, tag = "8")]
17559            pub creep_damage: ::core::option::Option<u32>,
17560            #[prost(uint32, optional, tag = "9")]
17561            pub neutral_damage: ::core::option::Option<u32>,
17562            #[prost(uint32, optional, tag = "10")]
17563            pub boss_damage: ::core::option::Option<u32>,
17564            #[prost(uint32, optional, tag = "11")]
17565            pub player_damage: ::core::option::Option<u32>,
17566            #[prost(uint32, optional, tag = "12")]
17567            pub denies: ::core::option::Option<u32>,
17568            #[prost(uint32, optional, tag = "13")]
17569            pub player_healing: ::core::option::Option<u32>,
17570            #[prost(uint32, optional, tag = "14")]
17571            pub ability_points: ::core::option::Option<u32>,
17572            #[prost(uint32, optional, tag = "15")]
17573            pub self_healing: ::core::option::Option<u32>,
17574            #[prost(uint32, optional, tag = "16")]
17575            pub player_damage_taken: ::core::option::Option<u32>,
17576            #[prost(uint32, optional, tag = "17")]
17577            pub max_health: ::core::option::Option<u32>,
17578            #[prost(uint32, optional, tag = "18")]
17579            pub weapon_power: ::core::option::Option<u32>,
17580            #[prost(uint32, optional, tag = "19")]
17581            pub tech_power: ::core::option::Option<u32>,
17582            #[prost(uint32, optional, tag = "20")]
17583            pub shots_hit: ::core::option::Option<u32>,
17584            #[prost(uint32, optional, tag = "21")]
17585            pub shots_missed: ::core::option::Option<u32>,
17586            #[prost(uint32, optional, tag = "22")]
17587            pub damage_absorbed: ::core::option::Option<u32>,
17588            #[prost(uint32, optional, tag = "23")]
17589            pub absorption_provided: ::core::option::Option<u32>,
17590            #[prost(uint32, optional, tag = "26")]
17591            pub heal_prevented: ::core::option::Option<u32>,
17592            #[prost(uint32, optional, tag = "27")]
17593            pub heal_lost: ::core::option::Option<u32>,
17594            #[prost(uint32, optional, tag = "28")]
17595            pub player_barriering: ::core::option::Option<u32>,
17596            #[prost(uint32, optional, tag = "45")]
17597            pub teammate_healing: ::core::option::Option<u32>,
17598            #[prost(uint32, optional, tag = "46")]
17599            pub teammate_barriering: ::core::option::Option<u32>,
17600            #[prost(uint32, optional, tag = "47")]
17601            pub self_damage: ::core::option::Option<u32>,
17602            #[prost(uint32, repeated, packed = "false", tag = "48")]
17603            pub damage_per_hero_ability: ::prost::alloc::vec::Vec<u32>,
17604            #[prost(uint32, optional, tag = "49")]
17605            pub player_bullet_damage: ::core::option::Option<u32>,
17606            #[prost(uint32, optional, tag = "50")]
17607            pub player_ability_damage: ::core::option::Option<u32>,
17608        }
17609        #[derive(serde::Serialize, serde::Deserialize)]
17610        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17611        pub struct GoldStats {
17612            #[prost(uint32, optional, tag = "1")]
17613            pub player: ::core::option::Option<u32>,
17614            #[prost(uint32, optional, tag = "2")]
17615            pub player_orb: ::core::option::Option<u32>,
17616            #[prost(uint32, optional, tag = "3")]
17617            pub lane_creep_orb: ::core::option::Option<u32>,
17618            #[prost(uint32, optional, tag = "4")]
17619            pub neutral_creep_orb: ::core::option::Option<u32>,
17620            #[prost(uint32, optional, tag = "5")]
17621            pub boss: ::core::option::Option<u32>,
17622            #[prost(uint32, optional, tag = "6")]
17623            pub boss_orb: ::core::option::Option<u32>,
17624            #[prost(uint32, optional, tag = "7")]
17625            pub treasure: ::core::option::Option<u32>,
17626            #[prost(uint32, optional, tag = "8")]
17627            pub denied: ::core::option::Option<u32>,
17628            #[prost(uint32, optional, tag = "9")]
17629            pub death_loss: ::core::option::Option<u32>,
17630            #[prost(uint32, optional, tag = "10")]
17631            pub lane_creep: ::core::option::Option<u32>,
17632            #[prost(uint32, optional, tag = "11")]
17633            pub neutral_creep: ::core::option::Option<u32>,
17634            #[prost(uint32, optional, tag = "12")]
17635            pub team_bonus: ::core::option::Option<u32>,
17636            #[prost(uint32, optional, tag = "13")]
17637            pub ability_assassinate: ::core::option::Option<u32>,
17638            #[prost(uint32, optional, tag = "14")]
17639            pub item_trophy_collector: ::core::option::Option<u32>,
17640            #[prost(uint32, optional, tag = "15")]
17641            pub item_cultist_sacrifice: ::core::option::Option<u32>,
17642            #[prost(uint32, optional, tag = "16")]
17643            pub comeback_kills: ::core::option::Option<u32>,
17644            #[prost(uint32, optional, tag = "17")]
17645            pub comeback_treasure: ::core::option::Option<u32>,
17646            #[prost(uint32, optional, tag = "18")]
17647            pub comeback_misc: ::core::option::Option<u32>,
17648            #[prost(uint32, optional, tag = "19")]
17649            pub item_goose_egg: ::core::option::Option<u32>,
17650        }
17651    }
17652    #[derive(serde::Serialize, serde::Deserialize)]
17653    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
17654    pub struct Objective {
17655        #[prost(uint32, optional, tag = "2")]
17656        pub destroyed_time_s: ::core::option::Option<u32>,
17657        #[prost(uint32, optional, tag = "4")]
17658        pub creep_damage: ::core::option::Option<u32>,
17659        #[prost(uint32, optional, tag = "5")]
17660        pub creep_damage_mitigated: ::core::option::Option<u32>,
17661        #[prost(uint32, optional, tag = "6")]
17662        pub player_damage: ::core::option::Option<u32>,
17663        #[prost(uint32, optional, tag = "8")]
17664        pub first_damage_time_s: ::core::option::Option<u32>,
17665        #[prost(
17666            enumeration = "super::ECitadelTeamObjective",
17667            optional,
17668            tag = "9",
17669            default = "KECitadelTeamObjectiveCore"
17670        )]
17671        pub team_objective_id: ::core::option::Option<i32>,
17672        #[prost(
17673            enumeration = "super::ECitadelLobbyTeam",
17674            optional,
17675            tag = "10",
17676            default = "KECitadelLobbyTeamTeam0"
17677        )]
17678        pub team: ::core::option::Option<i32>,
17679        #[prost(uint32, optional, tag = "11")]
17680        pub players_damaged: ::core::option::Option<u32>,
17681        #[prost(uint32, optional, tag = "12")]
17682        pub players_destroyed: ::core::option::Option<u32>,
17683        #[prost(uint32, repeated, packed = "false", tag = "13")]
17684        pub enemy_count_dmg_mitigated: ::prost::alloc::vec::Vec<u32>,
17685        #[prost(uint32, optional, tag = "14")]
17686        pub player_spirit_damage: ::core::option::Option<u32>,
17687    }
17688    #[derive(serde::Serialize, serde::Deserialize)]
17689    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17690    pub struct MidBoss {
17691        #[prost(
17692            enumeration = "super::ECitadelLobbyTeam",
17693            optional,
17694            tag = "1",
17695            default = "KECitadelLobbyTeamTeam0"
17696        )]
17697        pub team_killed: ::core::option::Option<i32>,
17698        #[prost(
17699            enumeration = "super::ECitadelLobbyTeam",
17700            optional,
17701            tag = "2",
17702            default = "KECitadelLobbyTeamTeam0"
17703        )]
17704        pub team_claimed: ::core::option::Option<i32>,
17705        #[prost(uint32, optional, tag = "3")]
17706        pub destroyed_time_s: ::core::option::Option<u32>,
17707    }
17708    #[derive(serde::Serialize, serde::Deserialize)]
17709    #[derive(Clone, PartialEq, ::prost::Message)]
17710    pub struct Player {
17711        #[prost(uint32, optional, tag = "1")]
17712        pub player_slot: ::core::option::Option<u32>,
17713        #[prost(message, repeated, tag = "3")]
17714        pub time_samples: ::prost::alloc::vec::Vec<TimeSample>,
17715    }
17716}
17717#[derive(serde::Serialize, serde::Deserialize)]
17718#[derive(Clone, PartialEq, ::prost::Message)]
17719pub struct CMsgServerSignoutDataPerfData {
17720    #[prost(float, repeated, packed = "false", tag = "1")]
17721    pub average_frame_time: ::prost::alloc::vec::Vec<f32>,
17722    #[prost(float, repeated, packed = "false", tag = "2")]
17723    pub max_frame_time: ::prost::alloc::vec::Vec<f32>,
17724    #[prost(float, optional, tag = "3")]
17725    pub server_average_frame_time: ::core::option::Option<f32>,
17726    #[prost(float, optional, tag = "4")]
17727    pub server_max_frame_time: ::core::option::Option<f32>,
17728    #[prost(float, repeated, packed = "false", tag = "5")]
17729    pub average_compute_time: ::prost::alloc::vec::Vec<f32>,
17730    #[prost(float, repeated, packed = "false", tag = "6")]
17731    pub max_compute_time: ::prost::alloc::vec::Vec<f32>,
17732    #[prost(float, repeated, packed = "false", tag = "7")]
17733    pub average_client_tick_time: ::prost::alloc::vec::Vec<f32>,
17734    #[prost(float, repeated, packed = "false", tag = "8")]
17735    pub max_client_tick_time: ::prost::alloc::vec::Vec<f32>,
17736    #[prost(float, repeated, packed = "false", tag = "9")]
17737    pub average_client_simulate_time: ::prost::alloc::vec::Vec<f32>,
17738    #[prost(float, repeated, packed = "false", tag = "10")]
17739    pub max_client_simulate_time: ::prost::alloc::vec::Vec<f32>,
17740    #[prost(float, repeated, packed = "false", tag = "11")]
17741    pub average_output_time: ::prost::alloc::vec::Vec<f32>,
17742    #[prost(float, repeated, packed = "false", tag = "12")]
17743    pub max_output_time: ::prost::alloc::vec::Vec<f32>,
17744    #[prost(float, repeated, packed = "false", tag = "13")]
17745    pub average_wait_for_rendering_to_complete_time: ::prost::alloc::vec::Vec<f32>,
17746    #[prost(float, repeated, packed = "false", tag = "14")]
17747    pub max_wait_for_rendering_to_complete_time: ::prost::alloc::vec::Vec<f32>,
17748    #[prost(float, repeated, packed = "false", tag = "15")]
17749    pub average_swap_time: ::prost::alloc::vec::Vec<f32>,
17750    #[prost(float, repeated, packed = "false", tag = "16")]
17751    pub max_swap_time: ::prost::alloc::vec::Vec<f32>,
17752    #[prost(float, repeated, packed = "false", tag = "17")]
17753    pub average_frame_update_time: ::prost::alloc::vec::Vec<f32>,
17754    #[prost(float, repeated, packed = "false", tag = "18")]
17755    pub max_frame_update_time: ::prost::alloc::vec::Vec<f32>,
17756    #[prost(float, repeated, packed = "false", tag = "19")]
17757    pub average_idle_time: ::prost::alloc::vec::Vec<f32>,
17758    #[prost(float, repeated, packed = "false", tag = "20")]
17759    pub max_idle_time: ::prost::alloc::vec::Vec<f32>,
17760    #[prost(float, repeated, packed = "false", tag = "21")]
17761    pub average_input_processing_time: ::prost::alloc::vec::Vec<f32>,
17762    #[prost(float, repeated, packed = "false", tag = "22")]
17763    pub max_input_processing_time: ::prost::alloc::vec::Vec<f32>,
17764}
17765#[derive(serde::Serialize, serde::Deserialize)]
17766#[derive(Clone, PartialEq, ::prost::Message)]
17767pub struct CMsgServerSignoutDataBookRewards {
17768    #[prost(message, repeated, tag = "1")]
17769    pub account_rewards: ::prost::alloc::vec::Vec<
17770        c_msg_server_signout_data_book_rewards::AccountRewards,
17771    >,
17772}
17773/// Nested message and enum types in `CMsgServerSignoutData_BookRewards`.
17774pub mod c_msg_server_signout_data_book_rewards {
17775    #[derive(serde::Serialize, serde::Deserialize)]
17776    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17777    pub struct BookReward {
17778        #[prost(uint32, optional, tag = "1")]
17779        pub book_id: ::core::option::Option<u32>,
17780        #[prost(uint32, optional, tag = "2")]
17781        pub xp_reward: ::core::option::Option<u32>,
17782    }
17783    #[derive(serde::Serialize, serde::Deserialize)]
17784    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17785    pub struct AccountRewards {
17786        #[prost(uint32, optional, tag = "1")]
17787        pub account_id: ::core::option::Option<u32>,
17788        #[prost(message, optional, tag = "2")]
17789        pub book_reward: ::core::option::Option<BookReward>,
17790    }
17791}
17792#[derive(serde::Serialize, serde::Deserialize)]
17793#[derive(Clone, PartialEq, ::prost::Message)]
17794pub struct CMsgServerSignoutDataChallengeProgress {
17795    #[prost(message, repeated, tag = "1")]
17796    pub account_challenges: ::prost::alloc::vec::Vec<
17797        c_msg_server_signout_data_challenge_progress::AccountChallenges,
17798    >,
17799}
17800/// Nested message and enum types in `CMsgServerSignoutData_ChallengeProgress`.
17801pub mod c_msg_server_signout_data_challenge_progress {
17802    #[derive(serde::Serialize, serde::Deserialize)]
17803    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17804    pub struct ChallengeProgress {
17805        #[prost(uint64, optional, tag = "1")]
17806        pub challenge_id: ::core::option::Option<u64>,
17807        #[prost(uint32, optional, tag = "2")]
17808        pub progress: ::core::option::Option<u32>,
17809    }
17810    #[derive(serde::Serialize, serde::Deserialize)]
17811    #[derive(Clone, PartialEq, ::prost::Message)]
17812    pub struct AccountChallenges {
17813        #[prost(uint32, optional, tag = "1")]
17814        pub account_id: ::core::option::Option<u32>,
17815        #[prost(message, repeated, tag = "2")]
17816        pub challenges: ::prost::alloc::vec::Vec<ChallengeProgress>,
17817    }
17818}
17819#[derive(serde::Serialize, serde::Deserialize)]
17820#[derive(Clone, PartialEq, ::prost::Message)]
17821pub struct CMsgServerSignoutDataHeroXpGrant {
17822    #[prost(message, repeated, tag = "1")]
17823    pub account_xp: ::prost::alloc::vec::Vec<
17824        c_msg_server_signout_data_hero_xp_grant::AccountXpGrant,
17825    >,
17826}
17827/// Nested message and enum types in `CMsgServerSignoutData_HeroXPGrant`.
17828pub mod c_msg_server_signout_data_hero_xp_grant {
17829    #[derive(serde::Serialize, serde::Deserialize)]
17830    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17831    pub struct HeroXpGrant {
17832        #[prost(uint32, optional, tag = "1")]
17833        pub hero_id: ::core::option::Option<u32>,
17834        #[prost(uint32, optional, tag = "2")]
17835        pub xp_grant: ::core::option::Option<u32>,
17836        #[prost(
17837            enumeration = "EGrantReason",
17838            optional,
17839            tag = "3",
17840            default = "KEGrantWin"
17841        )]
17842        pub reason: ::core::option::Option<i32>,
17843    }
17844    #[derive(serde::Serialize, serde::Deserialize)]
17845    #[derive(Clone, PartialEq, ::prost::Message)]
17846    pub struct AccountXpGrant {
17847        #[prost(uint32, optional, tag = "1")]
17848        pub account_id: ::core::option::Option<u32>,
17849        #[prost(message, repeated, tag = "2")]
17850        pub xp_grant: ::prost::alloc::vec::Vec<HeroXpGrant>,
17851    }
17852    #[derive(serde::Serialize, serde::Deserialize)]
17853    #[derive(
17854        Clone,
17855        Copy,
17856        Debug,
17857        PartialEq,
17858        Eq,
17859        Hash,
17860        PartialOrd,
17861        Ord,
17862        ::prost::Enumeration
17863    )]
17864    #[repr(i32)]
17865    pub enum EGrantReason {
17866        KEGrantWin = 0,
17867        KEGrantLoss = 1,
17868        KEGrantAward = 2,
17869    }
17870    impl EGrantReason {
17871        /// String value of the enum field names used in the ProtoBuf definition.
17872        ///
17873        /// The values are not transformed in any way and thus are considered stable
17874        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
17875        pub fn as_str_name(&self) -> &'static str {
17876            match self {
17877                Self::KEGrantWin => "k_eGrant_Win",
17878                Self::KEGrantLoss => "k_eGrant_Loss",
17879                Self::KEGrantAward => "k_eGrant_Award",
17880            }
17881        }
17882        /// Creates an enum from field names used in the ProtoBuf definition.
17883        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
17884            match value {
17885                "k_eGrant_Win" => Some(Self::KEGrantWin),
17886                "k_eGrant_Loss" => Some(Self::KEGrantLoss),
17887                "k_eGrant_Award" => Some(Self::KEGrantAward),
17888                _ => None,
17889            }
17890        }
17891    }
17892}
17893#[derive(serde::Serialize, serde::Deserialize)]
17894#[derive(Clone, PartialEq, ::prost::Message)]
17895pub struct CMsgServerSignoutDataMatchKills {
17896    #[prost(message, repeated, tag = "1")]
17897    pub kills: ::prost::alloc::vec::Vec<c_msg_server_signout_data_match_kills::Kill>,
17898}
17899/// Nested message and enum types in `CMsgServerSignoutData_MatchKills`.
17900pub mod c_msg_server_signout_data_match_kills {
17901    #[derive(serde::Serialize, serde::Deserialize)]
17902    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17903    pub struct Kill {
17904        #[prost(uint32, optional, tag = "1")]
17905        pub killer: ::core::option::Option<u32>,
17906        #[prost(uint32, optional, tag = "2")]
17907        pub victim: ::core::option::Option<u32>,
17908        #[prost(uint32, optional, tag = "3")]
17909        pub match_time: ::core::option::Option<u32>,
17910        #[prost(uint32, optional, tag = "4")]
17911        pub killer_streak: ::core::option::Option<u32>,
17912    }
17913}
17914#[derive(serde::Serialize, serde::Deserialize)]
17915#[derive(Clone, PartialEq, ::prost::Message)]
17916pub struct CMsgServerSignoutDataAccountStatChanges {
17917    #[prost(message, repeated, tag = "1")]
17918    pub account_stats: ::prost::alloc::vec::Vec<
17919        c_msg_server_signout_data_account_stat_changes::AccountStats,
17920    >,
17921}
17922/// Nested message and enum types in `CMsgServerSignoutData_AccountStatChanges`.
17923pub mod c_msg_server_signout_data_account_stat_changes {
17924    #[derive(serde::Serialize, serde::Deserialize)]
17925    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17926    pub struct Stat {
17927        #[prost(uint32, optional, tag = "1")]
17928        pub hero_id: ::core::option::Option<u32>,
17929        #[prost(uint32, optional, tag = "2")]
17930        pub stat_id: ::core::option::Option<u32>,
17931        #[prost(uint32, optional, tag = "3")]
17932        pub value: ::core::option::Option<u32>,
17933        #[prost(
17934            enumeration = "super::ECitadelAccountStatMedal",
17935            optional,
17936            tag = "4",
17937            default = "KENone"
17938        )]
17939        pub medal: ::core::option::Option<i32>,
17940    }
17941    #[derive(serde::Serialize, serde::Deserialize)]
17942    #[derive(Clone, PartialEq, ::prost::Message)]
17943    pub struct AccountStats {
17944        #[prost(uint32, optional, tag = "1")]
17945        pub account_id: ::core::option::Option<u32>,
17946        #[prost(message, repeated, tag = "2")]
17947        pub stats: ::prost::alloc::vec::Vec<Stat>,
17948    }
17949}
17950#[derive(serde::Serialize, serde::Deserialize)]
17951#[derive(Clone, PartialEq, ::prost::Message)]
17952pub struct CMsgServerSignoutDataPlayerChat {
17953    #[prost(message, repeated, tag = "1")]
17954    pub chat_lines: ::prost::alloc::vec::Vec<
17955        c_msg_server_signout_data_player_chat::ChatLine,
17956    >,
17957}
17958/// Nested message and enum types in `CMsgServerSignoutData_PlayerChat`.
17959pub mod c_msg_server_signout_data_player_chat {
17960    #[derive(serde::Serialize, serde::Deserialize)]
17961    #[derive(Clone, PartialEq, ::prost::Message)]
17962    pub struct ChatLine {
17963        #[prost(uint32, optional, tag = "1")]
17964        pub player_slot: ::core::option::Option<u32>,
17965        #[prost(float, optional, tag = "2")]
17966        pub game_time: ::core::option::Option<f32>,
17967        #[prost(bool, optional, tag = "3")]
17968        pub team_only: ::core::option::Option<bool>,
17969        #[prost(string, optional, tag = "4")]
17970        pub chat_line: ::core::option::Option<::prost::alloc::string::String>,
17971    }
17972}
17973#[derive(serde::Serialize, serde::Deserialize)]
17974#[derive(Clone, PartialEq, ::prost::Message)]
17975pub struct CMsgServerSignoutDataPlayerBehavior {
17976    #[prost(message, repeated, tag = "1")]
17977    pub players: ::prost::alloc::vec::Vec<
17978        c_msg_server_signout_data_player_behavior::Player,
17979    >,
17980}
17981/// Nested message and enum types in `CMsgServerSignoutData_PlayerBehavior`.
17982pub mod c_msg_server_signout_data_player_behavior {
17983    #[derive(serde::Serialize, serde::Deserialize)]
17984    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
17985    pub struct Player {
17986        #[prost(uint32, optional, tag = "1")]
17987        pub account_id: ::core::option::Option<u32>,
17988        #[prost(uint32, optional, tag = "2")]
17989        pub team_chat_messages: ::core::option::Option<u32>,
17990        #[prost(uint32, optional, tag = "3")]
17991        pub all_chat_messages: ::core::option::Option<u32>,
17992        #[prost(uint32, optional, tag = "4")]
17993        pub pings: ::core::option::Option<u32>,
17994        #[prost(uint32, optional, tag = "5")]
17995        pub voice_chat_seconds: ::core::option::Option<u32>,
17996        #[prost(uint32, optional, tag = "6")]
17997        pub pauses: ::core::option::Option<u32>,
17998        #[prost(uint32, optional, tag = "7")]
17999        pub total_pause_time: ::core::option::Option<u32>,
18000        #[prost(uint32, optional, tag = "8")]
18001        pub disconnects: ::core::option::Option<u32>,
18002        #[prost(uint32, optional, tag = "9")]
18003        pub first_all_chat_gametime: ::core::option::Option<u32>,
18004        #[prost(uint32, optional, tag = "10")]
18005        pub first_voice_chat_gametime: ::core::option::Option<u32>,
18006        #[prost(uint32, optional, tag = "11")]
18007        pub total_idle_time: ::core::option::Option<u32>,
18008        #[prost(uint32, optional, tag = "12")]
18009        pub total_inactive_time: ::core::option::Option<u32>,
18010        #[prost(uint32, optional, tag = "13")]
18011        pub total_disconnect_time: ::core::option::Option<u32>,
18012        #[prost(uint32, optional, tag = "14")]
18013        pub first_team_chat_gametime: ::core::option::Option<u32>,
18014        #[prost(uint32, optional, tag = "15")]
18015        pub first_all_chat_time: ::core::option::Option<u32>,
18016        #[prost(uint32, optional, tag = "16")]
18017        pub first_voice_chat_time: ::core::option::Option<u32>,
18018        #[prost(uint32, optional, tag = "17")]
18019        pub first_team_chat_time: ::core::option::Option<u32>,
18020    }
18021}
18022#[derive(serde::Serialize, serde::Deserialize)]
18023#[derive(Clone, PartialEq, ::prost::Message)]
18024pub struct CMsgServerSignoutDataStreetBrawlData {
18025    #[prost(message, repeated, tag = "1")]
18026    pub rounds: ::prost::alloc::vec::Vec<
18027        c_msg_server_signout_data_street_brawl_data::Round,
18028    >,
18029}
18030/// Nested message and enum types in `CMsgServerSignoutData_StreetBrawlData`.
18031pub mod c_msg_server_signout_data_street_brawl_data {
18032    #[derive(serde::Serialize, serde::Deserialize)]
18033    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18034    pub struct DraftItem {
18035        #[prost(uint32, optional, tag = "1")]
18036        pub ability_id: ::core::option::Option<u32>,
18037        #[prost(uint32, optional, tag = "2")]
18038        pub flags: ::core::option::Option<u32>,
18039        #[prost(
18040            enumeration = "EDraftItemOutcome",
18041            optional,
18042            tag = "3",
18043            default = "KENotChosen"
18044        )]
18045        pub outcome: ::core::option::Option<i32>,
18046    }
18047    #[derive(serde::Serialize, serde::Deserialize)]
18048    #[derive(Clone, PartialEq, ::prost::Message)]
18049    pub struct DraftItemSet {
18050        #[prost(message, repeated, tag = "1")]
18051        pub items: ::prost::alloc::vec::Vec<DraftItem>,
18052    }
18053    #[derive(serde::Serialize, serde::Deserialize)]
18054    #[derive(Clone, PartialEq, ::prost::Message)]
18055    pub struct RoundPlayer {
18056        #[prost(uint32, optional, tag = "1")]
18057        pub player_slot: ::core::option::Option<u32>,
18058        #[prost(uint32, optional, tag = "2")]
18059        pub player_damage: ::core::option::Option<u32>,
18060        #[prost(uint32, optional, tag = "3")]
18061        pub kills: ::core::option::Option<u32>,
18062        #[prost(uint32, optional, tag = "4")]
18063        pub player_healing: ::core::option::Option<u32>,
18064        #[prost(uint32, optional, tag = "5")]
18065        pub deaths: ::core::option::Option<u32>,
18066        #[prost(uint32, optional, tag = "6")]
18067        pub assists: ::core::option::Option<u32>,
18068        #[prost(uint32, optional, tag = "7")]
18069        pub objective_damage: ::core::option::Option<u32>,
18070        #[prost(uint32, optional, tag = "8")]
18071        pub objective_spirit_damage: ::core::option::Option<u32>,
18072        #[prost(message, repeated, tag = "9")]
18073        pub draft_item_sets: ::prost::alloc::vec::Vec<DraftItemSet>,
18074    }
18075    #[derive(serde::Serialize, serde::Deserialize)]
18076    #[derive(Clone, PartialEq, ::prost::Message)]
18077    pub struct Round {
18078        #[prost(uint32, optional, tag = "1")]
18079        pub round_number: ::core::option::Option<u32>,
18080        #[prost(uint32, optional, tag = "2")]
18081        pub round_time: ::core::option::Option<u32>,
18082        #[prost(
18083            enumeration = "super::ECitadelLobbyTeam",
18084            optional,
18085            tag = "3",
18086            default = "KECitadelLobbyTeamTeam0"
18087        )]
18088        pub winning_team: ::core::option::Option<i32>,
18089        #[prost(message, repeated, tag = "5")]
18090        pub players: ::prost::alloc::vec::Vec<RoundPlayer>,
18091    }
18092    #[derive(serde::Serialize, serde::Deserialize)]
18093    #[derive(
18094        Clone,
18095        Copy,
18096        Debug,
18097        PartialEq,
18098        Eq,
18099        Hash,
18100        PartialOrd,
18101        Ord,
18102        ::prost::Enumeration
18103    )]
18104    #[repr(i32)]
18105    pub enum EDraftItemOutcome {
18106        KENotChosen = 0,
18107        KEChosen = 1,
18108        KERerolled = 2,
18109    }
18110    impl EDraftItemOutcome {
18111        /// String value of the enum field names used in the ProtoBuf definition.
18112        ///
18113        /// The values are not transformed in any way and thus are considered stable
18114        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
18115        pub fn as_str_name(&self) -> &'static str {
18116            match self {
18117                Self::KENotChosen => "k_eNotChosen",
18118                Self::KEChosen => "k_eChosen",
18119                Self::KERerolled => "k_eRerolled",
18120            }
18121        }
18122        /// Creates an enum from field names used in the ProtoBuf definition.
18123        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
18124            match value {
18125                "k_eNotChosen" => Some(Self::KENotChosen),
18126                "k_eChosen" => Some(Self::KEChosen),
18127                "k_eRerolled" => Some(Self::KERerolled),
18128                _ => None,
18129            }
18130        }
18131    }
18132    #[derive(serde::Serialize, serde::Deserialize)]
18133    #[derive(
18134        Clone,
18135        Copy,
18136        Debug,
18137        PartialEq,
18138        Eq,
18139        Hash,
18140        PartialOrd,
18141        Ord,
18142        ::prost::Enumeration
18143    )]
18144    #[repr(i32)]
18145    pub enum EDraftItemFlags {
18146        KEHasUpgradeBit = 1,
18147        KEHasAdditionalItem = 2,
18148        KERareItem = 4,
18149    }
18150    impl EDraftItemFlags {
18151        /// String value of the enum field names used in the ProtoBuf definition.
18152        ///
18153        /// The values are not transformed in any way and thus are considered stable
18154        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
18155        pub fn as_str_name(&self) -> &'static str {
18156            match self {
18157                Self::KEHasUpgradeBit => "k_eHasUpgradeBit",
18158                Self::KEHasAdditionalItem => "k_eHasAdditionalItem",
18159                Self::KERareItem => "k_eRareItem",
18160            }
18161        }
18162        /// Creates an enum from field names used in the ProtoBuf definition.
18163        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
18164            match value {
18165                "k_eHasUpgradeBit" => Some(Self::KEHasUpgradeBit),
18166                "k_eHasAdditionalItem" => Some(Self::KEHasAdditionalItem),
18167                "k_eRareItem" => Some(Self::KERareItem),
18168                _ => None,
18169            }
18170        }
18171    }
18172}
18173#[derive(serde::Serialize, serde::Deserialize)]
18174#[derive(Clone, PartialEq, ::prost::Message)]
18175pub struct CMsgServerSignoutDataPenalizedPlayers {
18176    #[prost(message, repeated, tag = "1")]
18177    pub penalized_players: ::prost::alloc::vec::Vec<
18178        c_msg_server_signout_data_penalized_players::Penalty,
18179    >,
18180}
18181/// Nested message and enum types in `CMsgServerSignoutData_PenalizedPlayers`.
18182pub mod c_msg_server_signout_data_penalized_players {
18183    #[derive(serde::Serialize, serde::Deserialize)]
18184    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18185    pub struct Penalty {
18186        #[prost(uint32, optional, tag = "1")]
18187        pub account_id: ::core::option::Option<u32>,
18188        #[prost(
18189            enumeration = "EPenaltyReason",
18190            optional,
18191            tag = "2",
18192            default = "KEPenaltyReasonAbandon"
18193        )]
18194        pub reason: ::core::option::Option<i32>,
18195        #[prost(uint32, optional, tag = "3")]
18196        pub match_time_s: ::core::option::Option<u32>,
18197        #[prost(uint32, optional, tag = "4")]
18198        pub time_stamp: ::core::option::Option<u32>,
18199    }
18200    #[derive(serde::Serialize, serde::Deserialize)]
18201    #[derive(
18202        Clone,
18203        Copy,
18204        Debug,
18205        PartialEq,
18206        Eq,
18207        Hash,
18208        PartialOrd,
18209        Ord,
18210        ::prost::Enumeration
18211    )]
18212    #[repr(i32)]
18213    pub enum EPenaltyReason {
18214        KEPenaltyReasonAbandon = 0,
18215        KEPenaltyReasonDisconnectedTooLong = 1,
18216        KEPenaltyReasonAfk = 2,
18217        KEPenaltyReasonDisconnectedTooLongPregame = 3,
18218    }
18219    impl EPenaltyReason {
18220        /// String value of the enum field names used in the ProtoBuf definition.
18221        ///
18222        /// The values are not transformed in any way and thus are considered stable
18223        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
18224        pub fn as_str_name(&self) -> &'static str {
18225            match self {
18226                Self::KEPenaltyReasonAbandon => "k_EPenaltyReason_Abandon",
18227                Self::KEPenaltyReasonDisconnectedTooLong => {
18228                    "k_EPenaltyReason_DisconnectedTooLong"
18229                }
18230                Self::KEPenaltyReasonAfk => "k_EPenaltyReason_AFK",
18231                Self::KEPenaltyReasonDisconnectedTooLongPregame => {
18232                    "k_EPenaltyReason_DisconnectedTooLongPregame"
18233                }
18234            }
18235        }
18236        /// Creates an enum from field names used in the ProtoBuf definition.
18237        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
18238            match value {
18239                "k_EPenaltyReason_Abandon" => Some(Self::KEPenaltyReasonAbandon),
18240                "k_EPenaltyReason_DisconnectedTooLong" => {
18241                    Some(Self::KEPenaltyReasonDisconnectedTooLong)
18242                }
18243                "k_EPenaltyReason_AFK" => Some(Self::KEPenaltyReasonAfk),
18244                "k_EPenaltyReason_DisconnectedTooLongPregame" => {
18245                    Some(Self::KEPenaltyReasonDisconnectedTooLongPregame)
18246                }
18247                _ => None,
18248            }
18249        }
18250    }
18251}
18252#[derive(serde::Serialize, serde::Deserialize)]
18253#[derive(Clone, PartialEq, ::prost::Message)]
18254pub struct CMsgMatchData {
18255    #[prost(uint32, optional, tag = "1")]
18256    pub match_duration_s: ::core::option::Option<u32>,
18257    #[prost(
18258        enumeration = "c_msg_match_data::EEndReason",
18259        optional,
18260        tag = "2",
18261        default = "KEEndReasonTeamWin"
18262    )]
18263    pub end_reason: ::core::option::Option<i32>,
18264    #[prost(
18265        enumeration = "ECitadelLobbyTeam",
18266        optional,
18267        tag = "3",
18268        default = "KECitadelLobbyTeamTeam0"
18269    )]
18270    pub winning_team: ::core::option::Option<i32>,
18271    #[prost(message, repeated, tag = "4")]
18272    pub players: ::prost::alloc::vec::Vec<c_msg_match_data::PlayerInfo>,
18273    #[prost(uint32, optional, tag = "5")]
18274    pub objectives_mask_legacy: ::core::option::Option<u32>,
18275    #[prost(uint32, optional, tag = "6")]
18276    pub server_version: ::core::option::Option<u32>,
18277    #[prost(
18278        enumeration = "ECitadelGameMode",
18279        optional,
18280        tag = "7",
18281        default = "KECitadelGameModeInvalid"
18282    )]
18283    pub game_mode: ::core::option::Option<i32>,
18284    #[prost(
18285        enumeration = "ECitadelMatchMode",
18286        optional,
18287        tag = "8",
18288        default = "KECitadelMatchModeInvalid"
18289    )]
18290    pub match_mode: ::core::option::Option<i32>,
18291    #[prost(uint64, optional, tag = "9")]
18292    pub objectives_mask_team0: ::core::option::Option<u64>,
18293    #[prost(uint64, optional, tag = "10")]
18294    pub objectives_mask_team1: ::core::option::Option<u64>,
18295    #[prost(uint32, optional, tag = "11")]
18296    pub match_end_time: ::core::option::Option<u32>,
18297    #[prost(float, optional, tag = "12")]
18298    pub stomp_score: ::core::option::Option<f32>,
18299    #[prost(bool, optional, tag = "13")]
18300    pub safe_to_abandon: ::core::option::Option<bool>,
18301    #[prost(bool, optional, tag = "14")]
18302    pub team_abandon: ::core::option::Option<bool>,
18303    #[prost(bool, optional, tag = "15")]
18304    pub new_player_pool: ::core::option::Option<bool>,
18305    #[prost(bool, optional, tag = "16")]
18306    pub low_pri_pool: ::core::option::Option<bool>,
18307    #[prost(bool, optional, tag = "17")]
18308    pub not_scored: ::core::option::Option<bool>,
18309    #[prost(uint32, repeated, packed = "false", tag = "18")]
18310    pub team_score: ::prost::alloc::vec::Vec<u32>,
18311    #[prost(message, repeated, tag = "19")]
18312    pub teams: ::prost::alloc::vec::Vec<c_msg_match_data::TeamInfo>,
18313    #[prost(message, repeated, tag = "20")]
18314    pub match_tracked_stats: ::prost::alloc::vec::Vec<CMsgTrackedStat>,
18315    #[prost(float, optional, tag = "21")]
18316    pub winner_pct_time_in_enemy: ::core::option::Option<f32>,
18317    #[prost(bool, optional, tag = "22")]
18318    pub forgive_existing_abandons: ::core::option::Option<bool>,
18319    #[prost(uint32, optional, tag = "23")]
18320    pub brawl_avg_round_time_s: ::core::option::Option<u32>,
18321}
18322/// Nested message and enum types in `CMsgMatchData`.
18323pub mod c_msg_match_data {
18324    #[derive(serde::Serialize, serde::Deserialize)]
18325    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18326    pub struct PlayerItem {
18327        #[prost(uint32, optional, tag = "1")]
18328        pub item_id: ::core::option::Option<u32>,
18329        #[prost(uint32, optional, tag = "2")]
18330        pub game_time_s: ::core::option::Option<u32>,
18331        #[prost(uint32, optional, tag = "3")]
18332        pub upgrade_id: ::core::option::Option<u32>,
18333        #[prost(uint32, optional, tag = "4")]
18334        pub sold_time_s: ::core::option::Option<u32>,
18335        #[prost(uint32, optional, tag = "5")]
18336        pub flags: ::core::option::Option<u32>,
18337        #[prost(uint32, optional, tag = "6")]
18338        pub imbued_ability_id: ::core::option::Option<u32>,
18339        #[prost(uint32, optional, tag = "7")]
18340        pub upgrade_info: ::core::option::Option<u32>,
18341    }
18342    #[derive(serde::Serialize, serde::Deserialize)]
18343    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18344    pub struct AuxStat {
18345        #[prost(
18346            enumeration = "super::ECitadelMatchAuxStat",
18347            optional,
18348            tag = "1",
18349            default = "KEMatchAuxStatDummy"
18350        )]
18351        pub stat_id: ::core::option::Option<i32>,
18352        #[prost(uint32, optional, tag = "2")]
18353        pub stat_value: ::core::option::Option<u32>,
18354    }
18355    #[derive(serde::Serialize, serde::Deserialize)]
18356    #[derive(Clone, PartialEq, ::prost::Message)]
18357    pub struct PlayerInfo {
18358        #[prost(uint32, optional, tag = "1")]
18359        pub account_id: ::core::option::Option<u32>,
18360        #[prost(
18361            enumeration = "super::ECitadelLobbyTeam",
18362            optional,
18363            tag = "2",
18364            default = "KECitadelLobbyTeamTeam0"
18365        )]
18366        pub team: ::core::option::Option<i32>,
18367        #[prost(uint32, optional, tag = "3")]
18368        pub player_slot: ::core::option::Option<u32>,
18369        #[prost(uint32, optional, tag = "4")]
18370        pub hero_mmr_with_uncertainty: ::core::option::Option<u32>,
18371        #[prost(uint32, optional, tag = "5")]
18372        pub player_mmr: ::core::option::Option<u32>,
18373        #[prost(uint32, optional, tag = "6")]
18374        pub player_uncertainty: ::core::option::Option<u32>,
18375        #[prost(uint32, optional, tag = "7")]
18376        pub hero_id: ::core::option::Option<u32>,
18377        #[prost(uint32, optional, tag = "8")]
18378        pub kills: ::core::option::Option<u32>,
18379        #[prost(uint32, optional, tag = "9")]
18380        pub deaths: ::core::option::Option<u32>,
18381        #[prost(uint32, optional, tag = "10")]
18382        pub net_worth: ::core::option::Option<u32>,
18383        #[prost(uint32, optional, tag = "11")]
18384        pub assists: ::core::option::Option<u32>,
18385        #[prost(uint32, optional, tag = "12")]
18386        pub hero_mmr: ::core::option::Option<u32>,
18387        #[prost(message, repeated, tag = "13")]
18388        pub items: ::prost::alloc::vec::Vec<PlayerItem>,
18389        #[prost(uint32, optional, tag = "14")]
18390        pub gpm_10min: ::core::option::Option<u32>,
18391        #[prost(uint32, optional, tag = "15")]
18392        pub gpm_15min: ::core::option::Option<u32>,
18393        #[prost(uint32, optional, tag = "16")]
18394        pub gpm_20min: ::core::option::Option<u32>,
18395        #[prost(uint32, optional, tag = "17")]
18396        pub gpm_25min: ::core::option::Option<u32>,
18397        #[prost(uint32, optional, tag = "18")]
18398        pub gpm_30min: ::core::option::Option<u32>,
18399        #[prost(uint32, optional, tag = "19")]
18400        pub gpm_35min: ::core::option::Option<u32>,
18401        #[prost(uint32, optional, tag = "20")]
18402        pub gpm_end: ::core::option::Option<u32>,
18403        #[prost(uint32, optional, tag = "21")]
18404        pub last_hits: ::core::option::Option<u32>,
18405        #[prost(uint32, optional, tag = "22")]
18406        pub denies: ::core::option::Option<u32>,
18407        #[prost(uint32, optional, tag = "23")]
18408        pub ability_points: ::core::option::Option<u32>,
18409        #[prost(uint32, optional, tag = "24")]
18410        pub level: ::core::option::Option<u32>,
18411        #[prost(uint32, optional, tag = "25")]
18412        pub assigned_lane: ::core::option::Option<u32>,
18413        #[prost(uint32, optional, tag = "26")]
18414        pub party_index: ::core::option::Option<u32>,
18415        #[prost(
18416            enumeration = "super::EgcPlatform",
18417            optional,
18418            tag = "27",
18419            default = "KEGcPlatformNone"
18420        )]
18421        pub platform: ::core::option::Option<i32>,
18422        #[prost(uint32, optional, tag = "28")]
18423        pub ability_damage: ::core::option::Option<u32>,
18424        #[prost(uint32, optional, tag = "29")]
18425        pub bullet_damage: ::core::option::Option<u32>,
18426        #[prost(uint32, optional, tag = "30")]
18427        pub hero_bullets_hit: ::core::option::Option<u32>,
18428        #[prost(uint32, optional, tag = "31")]
18429        pub hero_bullets_hit_crit: ::core::option::Option<u32>,
18430        #[prost(uint32, optional, tag = "32")]
18431        pub player_healing: ::core::option::Option<u32>,
18432        #[prost(uint32, optional, tag = "33")]
18433        pub hero_bullets_fired: ::core::option::Option<u32>,
18434        #[prost(uint32, optional, tag = "34")]
18435        pub hero_incoming_bullets_fired: ::core::option::Option<u32>,
18436        #[prost(uint32, optional, tag = "35")]
18437        pub hero_incoming_bullets_hit: ::core::option::Option<u32>,
18438        #[prost(uint32, optional, tag = "36")]
18439        pub hero_incoming_bullets_crit: ::core::option::Option<u32>,
18440        #[prost(uint32, optional, tag = "37")]
18441        pub time_dead_s: ::core::option::Option<u32>,
18442        #[prost(uint32, optional, tag = "38")]
18443        pub player_bullet_damage: ::core::option::Option<u32>,
18444        #[prost(uint32, optional, tag = "39")]
18445        pub player_ability_damage: ::core::option::Option<u32>,
18446        #[prost(uint32, optional, tag = "40")]
18447        pub player_melee_damage: ::core::option::Option<u32>,
18448        #[prost(uint32, optional, tag = "41")]
18449        pub abandon_match_time_s: ::core::option::Option<u32>,
18450        #[prost(uint32, optional, tag = "42")]
18451        pub abandon_time_stamp: ::core::option::Option<u32>,
18452        #[prost(uint32, optional, tag = "43")]
18453        pub trooper_kill_excluded: ::core::option::Option<u32>,
18454        #[prost(uint32, optional, tag = "44")]
18455        pub hero_bullets_lucky_shots: ::core::option::Option<u32>,
18456        #[prost(uint32, optional, tag = "45")]
18457        pub hero_build_id: ::core::option::Option<u32>,
18458        #[prost(uint32, optional, tag = "46")]
18459        pub objective_damage: ::core::option::Option<u32>,
18460        #[prost(float, optional, tag = "47")]
18461        pub avg_time_to_kill_s: ::core::option::Option<f32>,
18462        #[prost(bool, optional, tag = "48")]
18463        pub requires_skill_calibration: ::core::option::Option<bool>,
18464        #[prost(uint32, optional, tag = "49")]
18465        pub player_barriering: ::core::option::Option<u32>,
18466        #[prost(uint32, optional, tag = "50")]
18467        pub teammate_healing: ::core::option::Option<u32>,
18468        #[prost(uint32, optional, tag = "51")]
18469        pub teammate_barriering: ::core::option::Option<u32>,
18470        #[prost(uint32, optional, tag = "52")]
18471        pub self_damage: ::core::option::Option<u32>,
18472        #[prost(uint32, optional, tag = "53")]
18473        pub match_number: ::core::option::Option<u32>,
18474        #[prost(uint32, repeated, packed = "false", tag = "54")]
18475        pub damage_per_hero_ability: ::prost::alloc::vec::Vec<u32>,
18476        #[prost(message, repeated, tag = "55")]
18477        pub aux_stats: ::prost::alloc::vec::Vec<AuxStat>,
18478        #[prost(message, repeated, tag = "56")]
18479        pub player_tracked_stats: ::prost::alloc::vec::Vec<super::CMsgTrackedStat>,
18480        #[prost(float, optional, tag = "57")]
18481        pub new_player_score: ::core::option::Option<f32>,
18482        #[prost(float, optional, tag = "58")]
18483        pub hero_mmru_skill: ::core::option::Option<f32>,
18484    }
18485    #[derive(serde::Serialize, serde::Deserialize)]
18486    #[derive(Clone, PartialEq, ::prost::Message)]
18487    pub struct TeamInfo {
18488        #[prost(
18489            enumeration = "super::ECitadelLobbyTeam",
18490            optional,
18491            tag = "1",
18492            default = "KECitadelLobbyTeamTeam0"
18493        )]
18494        pub team: ::core::option::Option<i32>,
18495        #[prost(message, repeated, tag = "2")]
18496        pub team_tracked_stats: ::prost::alloc::vec::Vec<super::CMsgTrackedStat>,
18497    }
18498    #[derive(serde::Serialize, serde::Deserialize)]
18499    #[derive(
18500        Clone,
18501        Copy,
18502        Debug,
18503        PartialEq,
18504        Eq,
18505        Hash,
18506        PartialOrd,
18507        Ord,
18508        ::prost::Enumeration
18509    )]
18510    #[repr(i32)]
18511    pub enum EEndReason {
18512        KEEndReasonTeamWin = 0,
18513        KEEndReasonMatchDraw = 1,
18514        KEEndReasonAllAbandoned = 2,
18515        KEEndReasonNetworkIssues = 3,
18516        KEEndReasonMatchLength = 4,
18517        KEEndReasonPlayerNeverConnected = 5,
18518    }
18519    impl EEndReason {
18520        /// String value of the enum field names used in the ProtoBuf definition.
18521        ///
18522        /// The values are not transformed in any way and thus are considered stable
18523        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
18524        pub fn as_str_name(&self) -> &'static str {
18525            match self {
18526                Self::KEEndReasonTeamWin => "k_EEndReason_TeamWin",
18527                Self::KEEndReasonMatchDraw => "k_EEndReason_MatchDraw",
18528                Self::KEEndReasonAllAbandoned => "k_EEndReason_AllAbandoned",
18529                Self::KEEndReasonNetworkIssues => "k_EEndReason_NetworkIssues",
18530                Self::KEEndReasonMatchLength => "k_EEndReason_MatchLength",
18531                Self::KEEndReasonPlayerNeverConnected => {
18532                    "k_EEndReason_PlayerNeverConnected"
18533                }
18534            }
18535        }
18536        /// Creates an enum from field names used in the ProtoBuf definition.
18537        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
18538            match value {
18539                "k_EEndReason_TeamWin" => Some(Self::KEEndReasonTeamWin),
18540                "k_EEndReason_MatchDraw" => Some(Self::KEEndReasonMatchDraw),
18541                "k_EEndReason_AllAbandoned" => Some(Self::KEEndReasonAllAbandoned),
18542                "k_EEndReason_NetworkIssues" => Some(Self::KEEndReasonNetworkIssues),
18543                "k_EEndReason_MatchLength" => Some(Self::KEEndReasonMatchLength),
18544                "k_EEndReason_PlayerNeverConnected" => {
18545                    Some(Self::KEEndReasonPlayerNeverConnected)
18546                }
18547                _ => None,
18548            }
18549        }
18550    }
18551}
18552#[derive(serde::Serialize, serde::Deserialize)]
18553#[derive(Clone, PartialEq, ::prost::Message)]
18554pub struct CMsgServerToGcMatchSignout {
18555    #[prost(message, repeated, tag = "1")]
18556    pub additional_data: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
18557    #[prost(uint32, optional, tag = "2")]
18558    pub signout_attempt: ::core::option::Option<u32>,
18559    #[prost(uint64, optional, tag = "3")]
18560    pub lobby_id: ::core::option::Option<u64>,
18561    #[prost(uint64, optional, tag = "4")]
18562    pub match_id: ::core::option::Option<u64>,
18563    #[prost(uint32, optional, tag = "9")]
18564    pub cluster_id: ::core::option::Option<u32>,
18565    #[prost(message, optional, tag = "10")]
18566    pub match_data: ::core::option::Option<CMsgMatchData>,
18567}
18568#[derive(serde::Serialize, serde::Deserialize)]
18569#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18570pub struct CMsgServerToGcMatchSignoutResponse {
18571    #[prost(
18572        enumeration = "c_msg_server_to_gc_match_signout_response::ESignoutResult",
18573        optional,
18574        tag = "1",
18575        default = "KESignoutFailedRetry"
18576    )]
18577    pub result: ::core::option::Option<i32>,
18578}
18579/// Nested message and enum types in `CMsgServerToGCMatchSignoutResponse`.
18580pub mod c_msg_server_to_gc_match_signout_response {
18581    #[derive(serde::Serialize, serde::Deserialize)]
18582    #[derive(
18583        Clone,
18584        Copy,
18585        Debug,
18586        PartialEq,
18587        Eq,
18588        Hash,
18589        PartialOrd,
18590        Ord,
18591        ::prost::Enumeration
18592    )]
18593    #[repr(i32)]
18594    pub enum ESignoutResult {
18595        KESignoutFailedRetry = 1,
18596        KESignoutFailedNoRetry = 2,
18597        KESignoutFailedInFlight = 3,
18598        KESignoutSuccess = 4,
18599        KESignoutSuccessAlreadySignedOut = 5,
18600    }
18601    impl ESignoutResult {
18602        /// String value of the enum field names used in the ProtoBuf definition.
18603        ///
18604        /// The values are not transformed in any way and thus are considered stable
18605        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
18606        pub fn as_str_name(&self) -> &'static str {
18607            match self {
18608                Self::KESignoutFailedRetry => "k_ESignout_Failed_Retry",
18609                Self::KESignoutFailedNoRetry => "k_ESignout_Failed_NoRetry",
18610                Self::KESignoutFailedInFlight => "k_ESignout_Failed_InFlight",
18611                Self::KESignoutSuccess => "k_ESignout_Success",
18612                Self::KESignoutSuccessAlreadySignedOut => {
18613                    "k_ESignout_Success_AlreadySignedOut"
18614                }
18615            }
18616        }
18617        /// Creates an enum from field names used in the ProtoBuf definition.
18618        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
18619            match value {
18620                "k_ESignout_Failed_Retry" => Some(Self::KESignoutFailedRetry),
18621                "k_ESignout_Failed_NoRetry" => Some(Self::KESignoutFailedNoRetry),
18622                "k_ESignout_Failed_InFlight" => Some(Self::KESignoutFailedInFlight),
18623                "k_ESignout_Success" => Some(Self::KESignoutSuccess),
18624                "k_ESignout_Success_AlreadySignedOut" => {
18625                    Some(Self::KESignoutSuccessAlreadySignedOut)
18626                }
18627                _ => None,
18628            }
18629        }
18630    }
18631}
18632#[derive(serde::Serialize, serde::Deserialize)]
18633#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18634pub struct CMsgServerWelcomeCitadel {}
18635#[derive(serde::Serialize, serde::Deserialize)]
18636#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18637pub struct CMsgServerToGcIdlePing {
18638    #[prost(uint32, optional, tag = "1")]
18639    pub server_version: ::core::option::Option<u32>,
18640}
18641#[derive(serde::Serialize, serde::Deserialize)]
18642#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18643pub struct CMsgGcToServerRequestPing {}
18644#[derive(serde::Serialize, serde::Deserialize)]
18645#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18646pub struct CMsgGcToServerAllocateForMatch {
18647    #[prost(uint64, optional, tag = "1")]
18648    pub match_id: ::core::option::Option<u64>,
18649}
18650#[derive(serde::Serialize, serde::Deserialize)]
18651#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18652pub struct CMsgGcToServerAllocateForMatchResponse {
18653    #[prost(bool, optional, tag = "1")]
18654    pub success: ::core::option::Option<bool>,
18655}
18656#[derive(serde::Serialize, serde::Deserialize)]
18657#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18658pub struct CMsgGcToServerAllocateForHideout {
18659    #[prost(uint64, optional, tag = "1")]
18660    pub hideout_lobby_id: ::core::option::Option<u64>,
18661}
18662#[derive(serde::Serialize, serde::Deserialize)]
18663#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18664pub struct CMsgGcToServerAllocateForHideoutResponse {
18665    #[prost(uint64, optional, tag = "1")]
18666    pub hideout_lobby_id: ::core::option::Option<u64>,
18667    #[prost(bool, optional, tag = "2")]
18668    pub success: ::core::option::Option<bool>,
18669}
18670#[derive(serde::Serialize, serde::Deserialize)]
18671#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
18672pub struct CMsgServerToGcEnterMatchmaking {
18673    #[prost(uint32, optional, tag = "1")]
18674    pub server_version: ::core::option::Option<u32>,
18675    #[prost(string, optional, tag = "2")]
18676    pub search_key: ::core::option::Option<::prost::alloc::string::String>,
18677    #[prost(uint32, optional, tag = "3")]
18678    pub region_id: ::core::option::Option<u32>,
18679    #[prost(uint32, optional, tag = "4")]
18680    pub cluster_id: ::core::option::Option<u32>,
18681    #[prost(uint32, optional, tag = "5")]
18682    pub server_public_ip: ::core::option::Option<u32>,
18683    #[prost(uint32, optional, tag = "6")]
18684    pub server_private_ip: ::core::option::Option<u32>,
18685    #[prost(uint32, optional, tag = "7")]
18686    pub server_port: ::core::option::Option<u32>,
18687    #[prost(bytes = "vec", optional, tag = "9")]
18688    pub sdr_address: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
18689    #[prost(uint32, optional, tag = "10")]
18690    pub replay_group_id: ::core::option::Option<u32>,
18691    #[prost(bool, optional, tag = "11")]
18692    pub allow_matches: ::core::option::Option<bool>,
18693    #[prost(bool, optional, tag = "12")]
18694    pub allow_hideout: ::core::option::Option<bool>,
18695}
18696#[derive(serde::Serialize, serde::Deserialize)]
18697#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18698pub struct CMsgGcToServerCancelAllocateForMatch {
18699    #[prost(uint64, optional, tag = "1")]
18700    pub match_id: ::core::option::Option<u64>,
18701    #[prost(uint64, optional, tag = "2")]
18702    pub hideout_lobby_id: ::core::option::Option<u64>,
18703}
18704#[derive(serde::Serialize, serde::Deserialize)]
18705#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18706pub struct CMsgServerToGcUpdateLobbyServerState {
18707    #[prost(uint64, optional, tag = "1")]
18708    pub lobby_id: ::core::option::Option<u64>,
18709    #[prost(
18710        enumeration = "ELobbyServerState",
18711        optional,
18712        tag = "2",
18713        default = "KELobbyServerStateAssign"
18714    )]
18715    pub server_state: ::core::option::Option<i32>,
18716    #[prost(bool, optional, tag = "3")]
18717    pub safe_to_abandon: ::core::option::Option<bool>,
18718}
18719#[derive(serde::Serialize, serde::Deserialize)]
18720#[derive(Clone, PartialEq, ::prost::Message)]
18721pub struct CMsgServerToGcAbandonMatch {
18722    #[prost(fixed64, optional, tag = "1")]
18723    pub server_steam_id: ::core::option::Option<u64>,
18724    #[prost(fixed64, optional, tag = "2")]
18725    pub lobby_id: ::core::option::Option<u64>,
18726    #[prost(uint32, optional, tag = "3")]
18727    pub cluster_id: ::core::option::Option<u32>,
18728    #[prost(
18729        enumeration = "c_msg_server_to_gc_abandon_match::EReason",
18730        optional,
18731        tag = "4",
18732        default = "ServerCrash"
18733    )]
18734    pub reason_code: ::core::option::Option<i32>,
18735    #[prost(uint64, optional, tag = "5")]
18736    pub additional_data: ::core::option::Option<u64>,
18737    #[prost(uint64, optional, tag = "6")]
18738    pub match_id: ::core::option::Option<u64>,
18739    #[prost(message, repeated, tag = "8")]
18740    pub players: ::prost::alloc::vec::Vec<c_msg_server_to_gc_abandon_match::Player>,
18741    #[prost(fixed32, optional, tag = "9")]
18742    pub public_ip_address: ::core::option::Option<u32>,
18743    #[prost(uint32, optional, tag = "10")]
18744    pub port: ::core::option::Option<u32>,
18745    #[prost(uint32, optional, tag = "11")]
18746    pub server_version: ::core::option::Option<u32>,
18747    #[prost(uint32, optional, tag = "12")]
18748    pub pid: ::core::option::Option<u32>,
18749    #[prost(uint32, optional, tag = "13")]
18750    pub instance_id: ::core::option::Option<u32>,
18751    #[prost(uint32, optional, tag = "14")]
18752    pub private_ip_address: ::core::option::Option<u32>,
18753    #[prost(
18754        enumeration = "ECitadelMatchMode",
18755        optional,
18756        tag = "15",
18757        default = "KECitadelMatchModeInvalid"
18758    )]
18759    pub match_mode: ::core::option::Option<i32>,
18760    #[prost(
18761        enumeration = "ECitadelGameMode",
18762        optional,
18763        tag = "16",
18764        default = "KECitadelGameModeInvalid"
18765    )]
18766    pub game_mode: ::core::option::Option<i32>,
18767    #[prost(bool, optional, tag = "17")]
18768    pub was_server_shutdown: ::core::option::Option<bool>,
18769    #[prost(uint32, optional, tag = "18")]
18770    pub region_id: ::core::option::Option<u32>,
18771    #[prost(uint64, optional, tag = "19")]
18772    pub hideout_lobby_id: ::core::option::Option<u64>,
18773    #[prost(uint64, optional, tag = "20")]
18774    pub routing_id: ::core::option::Option<u64>,
18775    #[prost(bool, optional, tag = "21")]
18776    pub allow_matches: ::core::option::Option<bool>,
18777    #[prost(bool, optional, tag = "22")]
18778    pub allow_hideout: ::core::option::Option<bool>,
18779    #[prost(bool, optional, tag = "23")]
18780    pub was_lost_lobby: ::core::option::Option<bool>,
18781}
18782/// Nested message and enum types in `CMsgServerToGCAbandonMatch`.
18783pub mod c_msg_server_to_gc_abandon_match {
18784    #[derive(serde::Serialize, serde::Deserialize)]
18785    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18786    pub struct Player {
18787        #[prost(uint32, optional, tag = "1")]
18788        pub account_id: ::core::option::Option<u32>,
18789        #[prost(uint64, optional, tag = "2")]
18790        pub additional_data: ::core::option::Option<u64>,
18791        #[prost(uint32, optional, tag = "3")]
18792        pub hero_id: ::core::option::Option<u32>,
18793    }
18794    #[derive(serde::Serialize, serde::Deserialize)]
18795    #[derive(
18796        Clone,
18797        Copy,
18798        Debug,
18799        PartialEq,
18800        Eq,
18801        Hash,
18802        PartialOrd,
18803        Ord,
18804        ::prost::Enumeration
18805    )]
18806    #[repr(i32)]
18807    pub enum EReason {
18808        ServerCrash = 1,
18809        ClientsFailedToConnect = 2,
18810    }
18811    impl EReason {
18812        /// String value of the enum field names used in the ProtoBuf definition.
18813        ///
18814        /// The values are not transformed in any way and thus are considered stable
18815        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
18816        pub fn as_str_name(&self) -> &'static str {
18817            match self {
18818                Self::ServerCrash => "eReason_ServerCrash",
18819                Self::ClientsFailedToConnect => "eReason_ClientsFailedToConnect",
18820            }
18821        }
18822        /// Creates an enum from field names used in the ProtoBuf definition.
18823        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
18824            match value {
18825                "eReason_ServerCrash" => Some(Self::ServerCrash),
18826                "eReason_ClientsFailedToConnect" => Some(Self::ClientsFailedToConnect),
18827                _ => None,
18828            }
18829        }
18830    }
18831}
18832#[derive(serde::Serialize, serde::Deserialize)]
18833#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18834pub struct CMsgServerToGcAbandonMatchResponse {}
18835#[derive(serde::Serialize, serde::Deserialize)]
18836#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18837pub struct CMsgServerToGcTestConnection {}
18838#[derive(serde::Serialize, serde::Deserialize)]
18839#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18840pub struct CMsgServerToGcTestConnectionResponse {}
18841#[derive(serde::Serialize, serde::Deserialize)]
18842#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
18843pub struct CMsgGcToServerSetServerConVar {
18844    #[prost(string, optional, tag = "1")]
18845    pub convar_name: ::core::option::Option<::prost::alloc::string::String>,
18846    #[prost(string, optional, tag = "2")]
18847    pub convar_value: ::core::option::Option<::prost::alloc::string::String>,
18848}
18849#[derive(serde::Serialize, serde::Deserialize)]
18850#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18851pub struct CMsgGcToServerSetServerConVarResponse {
18852    #[prost(bool, optional, tag = "1")]
18853    pub success: ::core::option::Option<bool>,
18854}
18855#[derive(serde::Serialize, serde::Deserialize)]
18856#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18857pub struct CMsgGcToServerAddSpectator {
18858    #[prost(uint64, optional, tag = "1")]
18859    pub lobby_id: ::core::option::Option<u64>,
18860    #[prost(uint32, optional, tag = "2")]
18861    pub account_id: ::core::option::Option<u32>,
18862    #[prost(uint32, optional, tag = "3")]
18863    pub account_to_spectate: ::core::option::Option<u32>,
18864}
18865#[derive(serde::Serialize, serde::Deserialize)]
18866#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18867pub struct CMsgGcToServerAddSpectatorResponse {
18868    #[prost(
18869        enumeration = "c_msg_gc_to_server_add_spectator_response::EResponse",
18870        optional,
18871        tag = "1",
18872        default = "KEInternalError"
18873    )]
18874    pub result: ::core::option::Option<i32>,
18875    #[prost(uint32, optional, tag = "2")]
18876    pub requesting_account_id: ::core::option::Option<u32>,
18877}
18878/// Nested message and enum types in `CMsgGCToServerAddSpectatorResponse`.
18879pub mod c_msg_gc_to_server_add_spectator_response {
18880    #[derive(serde::Serialize, serde::Deserialize)]
18881    #[derive(
18882        Clone,
18883        Copy,
18884        Debug,
18885        PartialEq,
18886        Eq,
18887        Hash,
18888        PartialOrd,
18889        Ord,
18890        ::prost::Enumeration
18891    )]
18892    #[repr(i32)]
18893    pub enum EResponse {
18894        KEInternalError = 0,
18895        KESuccess = 1,
18896        KEServerFull = 2,
18897    }
18898    impl EResponse {
18899        /// String value of the enum field names used in the ProtoBuf definition.
18900        ///
18901        /// The values are not transformed in any way and thus are considered stable
18902        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
18903        pub fn as_str_name(&self) -> &'static str {
18904            match self {
18905                Self::KEInternalError => "k_eInternalError",
18906                Self::KESuccess => "k_eSuccess",
18907                Self::KEServerFull => "k_eServerFull",
18908            }
18909        }
18910        /// Creates an enum from field names used in the ProtoBuf definition.
18911        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
18912            match value {
18913                "k_eInternalError" => Some(Self::KEInternalError),
18914                "k_eSuccess" => Some(Self::KESuccess),
18915                "k_eServerFull" => Some(Self::KEServerFull),
18916                _ => None,
18917            }
18918        }
18919    }
18920}
18921#[derive(serde::Serialize, serde::Deserialize)]
18922#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18923pub struct CMsgServerToGcRequestPlayerHeroData {
18924    #[prost(uint32, optional, tag = "1")]
18925    pub account_id: ::core::option::Option<u32>,
18926    #[prost(uint32, optional, tag = "2")]
18927    pub hero_id: ::core::option::Option<u32>,
18928}
18929#[derive(serde::Serialize, serde::Deserialize)]
18930#[derive(Clone, PartialEq, ::prost::Message)]
18931pub struct CMsgServerToGcRequestPlayerHeroDataResponse {
18932    #[prost(
18933        enumeration = "c_msg_server_to_gc_request_player_hero_data_response::EResult",
18934        optional,
18935        tag = "1",
18936        default = "KEInternalError"
18937    )]
18938    pub result: ::core::option::Option<i32>,
18939    #[prost(message, optional, tag = "2")]
18940    pub hero_data: ::core::option::Option<CMsgPlayerHeroData>,
18941}
18942/// Nested message and enum types in `CMsgServerToGCRequestPlayerHeroDataResponse`.
18943pub mod c_msg_server_to_gc_request_player_hero_data_response {
18944    #[derive(serde::Serialize, serde::Deserialize)]
18945    #[derive(
18946        Clone,
18947        Copy,
18948        Debug,
18949        PartialEq,
18950        Eq,
18951        Hash,
18952        PartialOrd,
18953        Ord,
18954        ::prost::Enumeration
18955    )]
18956    #[repr(i32)]
18957    pub enum EResult {
18958        KEInternalError = 0,
18959        KESuccess = 1,
18960        KETooBusy = 2,
18961        KEDisabled = 3,
18962        KETimeout = 4,
18963        KEInvalidPermission = 5,
18964    }
18965    impl EResult {
18966        /// String value of the enum field names used in the ProtoBuf definition.
18967        ///
18968        /// The values are not transformed in any way and thus are considered stable
18969        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
18970        pub fn as_str_name(&self) -> &'static str {
18971            match self {
18972                Self::KEInternalError => "k_eInternalError",
18973                Self::KESuccess => "k_eSuccess",
18974                Self::KETooBusy => "k_eTooBusy",
18975                Self::KEDisabled => "k_eDisabled",
18976                Self::KETimeout => "k_eTimeout",
18977                Self::KEInvalidPermission => "k_eInvalidPermission",
18978            }
18979        }
18980        /// Creates an enum from field names used in the ProtoBuf definition.
18981        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
18982            match value {
18983                "k_eInternalError" => Some(Self::KEInternalError),
18984                "k_eSuccess" => Some(Self::KESuccess),
18985                "k_eTooBusy" => Some(Self::KETooBusy),
18986                "k_eDisabled" => Some(Self::KEDisabled),
18987                "k_eTimeout" => Some(Self::KETimeout),
18988                "k_eInvalidPermission" => Some(Self::KEInvalidPermission),
18989                _ => None,
18990            }
18991        }
18992    }
18993}
18994#[derive(serde::Serialize, serde::Deserialize)]
18995#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
18996pub struct CMsgServerSteamLearnCitadelSignOutPlayerInfo {
18997    #[prost(int32, optional, tag = "1")]
18998    pub account_id: ::core::option::Option<i32>,
18999    #[prost(uint32, optional, tag = "2")]
19000    pub hero_id: ::core::option::Option<u32>,
19001    #[prost(uint32, optional, tag = "3")]
19002    pub mmr: ::core::option::Option<u32>,
19003    #[prost(uint32, optional, tag = "4")]
19004    pub total_games_played: ::core::option::Option<u32>,
19005    #[prost(
19006        enumeration = "ECitadelMatchMode",
19007        optional,
19008        tag = "10",
19009        default = "KECitadelMatchModeInvalid"
19010    )]
19011    pub match_mode: ::core::option::Option<i32>,
19012    #[prost(
19013        enumeration = "ECitadelGameMode",
19014        optional,
19015        tag = "11",
19016        default = "KECitadelGameModeInvalid"
19017    )]
19018    pub game_mode: ::core::option::Option<i32>,
19019}
19020#[derive(serde::Serialize, serde::Deserialize)]
19021#[derive(Clone, Copy, PartialEq, ::prost::Message)]
19022pub struct CMsgServerSteamLearnCitadelPlayerMechanicalBehavior {
19023    #[prost(uint32, optional, tag = "1")]
19024    pub net_worth: ::core::option::Option<u32>,
19025    #[prost(uint32, optional, tag = "2")]
19026    pub deaths: ::core::option::Option<u32>,
19027    #[prost(uint32, optional, tag = "3")]
19028    pub team_net_worth: ::core::option::Option<u32>,
19029    #[prost(uint32, optional, tag = "4")]
19030    pub enemy_team_net_worth: ::core::option::Option<u32>,
19031    #[prost(uint32, optional, tag = "5")]
19032    pub team_kills: ::core::option::Option<u32>,
19033    #[prost(uint32, optional, tag = "6")]
19034    pub enemy_team_kills: ::core::option::Option<u32>,
19035    #[prost(float, optional, tag = "7")]
19036    pub game_time: ::core::option::Option<f32>,
19037    #[prost(float, optional, tag = "8")]
19038    pub velocity_ratio_veryfast: ::core::option::Option<f32>,
19039    #[prost(float, optional, tag = "9")]
19040    pub velocity_ratio_fast: ::core::option::Option<f32>,
19041    #[prost(float, optional, tag = "10")]
19042    pub velocity_ratio_normal: ::core::option::Option<f32>,
19043    #[prost(float, optional, tag = "11")]
19044    pub velocity_ratio_slow: ::core::option::Option<f32>,
19045    #[prost(float, optional, tag = "12")]
19046    pub slide_ratio: ::core::option::Option<f32>,
19047    #[prost(float, optional, tag = "13")]
19048    pub item_cooldown_ratio: ::core::option::Option<f32>,
19049    #[prost(uint32, optional, tag = "14")]
19050    pub parries: ::core::option::Option<u32>,
19051    #[prost(float, optional, tag = "15")]
19052    pub time_in_shop_ratio: ::core::option::Option<f32>,
19053    #[prost(uint32, optional, tag = "16")]
19054    pub denies: ::core::option::Option<u32>,
19055    #[prost(uint32, optional, tag = "18")]
19056    pub mmr: ::core::option::Option<u32>,
19057    #[prost(uint32, optional, tag = "19")]
19058    pub total_games_played: ::core::option::Option<u32>,
19059    #[prost(float, optional, tag = "20")]
19060    pub build_effectiveness: ::core::option::Option<f32>,
19061    #[prost(float, optional, tag = "21")]
19062    pub net_worth_team_ratio: ::core::option::Option<f32>,
19063    #[prost(float, optional, tag = "22")]
19064    pub net_worth_game_ratio: ::core::option::Option<f32>,
19065    #[prost(float, optional, tag = "23")]
19066    pub time_spent_not_contributing_to_game_events_ratio: ::core::option::Option<f32>,
19067    #[prost(float, optional, tag = "24")]
19068    pub dash_jumps_per_minute: ::core::option::Option<f32>,
19069    #[prost(float, optional, tag = "25")]
19070    pub wall_jumps_per_minute: ::core::option::Option<f32>,
19071}
19072#[derive(serde::Serialize, serde::Deserialize)]
19073#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
19074#[repr(i32)]
19075pub enum EgcCitadelServerMessages {
19076    KEMsgServerToGcMatchSignoutPermission = 10012,
19077    KEMsgServerToGcMatchSignoutPermissionResponse = 10013,
19078    KEMsgServerToGcMatchSignout = 10014,
19079    KEMsgServerToGcMatchSignoutResponse = 10015,
19080    KEMsgGcToServerAddSpectator = 10016,
19081    KEMsgGcToServerAddSpectatorResponse = 10017,
19082    KEMsgServerToGcIdlePing = 10018,
19083    KEMsgGcToServerRequestPing = 10019,
19084    KEMsgGcToServerAllocateForMatch = 10021,
19085    KEMsgGcToServerAllocateForMatchResponse = 10022,
19086    KEMsgServerToGcEnterMatchmaking = 10023,
19087    KEMsgGcToServerCancelAllocateForMatch = 10024,
19088    KEMsgServerToGcUpdateLobbyServerState = 10025,
19089    KEMsgServerToGcAbandonMatch = 10026,
19090    KEMsgServerToGcAbandonMatchResponse = 10027,
19091    KEMsgServerToGcTestConnection = 10028,
19092    KEMsgServerToGcTestConnectionResponse = 10029,
19093    KEMsgGcToServerSetServerConVar = 10039,
19094    KEMsgGcToServerSetServerConVarResponse = 10040,
19095    KEMsgServerToGcUpdateMatchInfo = 10041,
19096    KEMsgServerToGcRequestPlayerHeroData = 10044,
19097    KEMsgServerToGcRequestPlayerHeroDataResponse = 10045,
19098    KEMsgGcToServerAllocateForHideout = 10046,
19099    KEMsgGcToServerAllocateForHideoutResponse = 10047,
19100}
19101impl EgcCitadelServerMessages {
19102    /// String value of the enum field names used in the ProtoBuf definition.
19103    ///
19104    /// The values are not transformed in any way and thus are considered stable
19105    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
19106    pub fn as_str_name(&self) -> &'static str {
19107        match self {
19108            Self::KEMsgServerToGcMatchSignoutPermission => {
19109                "k_EMsgServerToGCMatchSignoutPermission"
19110            }
19111            Self::KEMsgServerToGcMatchSignoutPermissionResponse => {
19112                "k_EMsgServerToGCMatchSignoutPermissionResponse"
19113            }
19114            Self::KEMsgServerToGcMatchSignout => "k_EMsgServerToGCMatchSignout",
19115            Self::KEMsgServerToGcMatchSignoutResponse => {
19116                "k_EMsgServerToGCMatchSignoutResponse"
19117            }
19118            Self::KEMsgGcToServerAddSpectator => "k_EMsgGCToServerAddSpectator",
19119            Self::KEMsgGcToServerAddSpectatorResponse => {
19120                "k_EMsgGCToServerAddSpectatorResponse"
19121            }
19122            Self::KEMsgServerToGcIdlePing => "k_EMsgServerToGCIdlePing",
19123            Self::KEMsgGcToServerRequestPing => "k_EMsgGCToServerRequestPing",
19124            Self::KEMsgGcToServerAllocateForMatch => "k_EMsgGCToServerAllocateForMatch",
19125            Self::KEMsgGcToServerAllocateForMatchResponse => {
19126                "k_EMsgGCToServerAllocateForMatchResponse"
19127            }
19128            Self::KEMsgServerToGcEnterMatchmaking => "k_EMsgServerToGCEnterMatchmaking",
19129            Self::KEMsgGcToServerCancelAllocateForMatch => {
19130                "k_EMsgGCToServerCancelAllocateForMatch"
19131            }
19132            Self::KEMsgServerToGcUpdateLobbyServerState => {
19133                "k_EMsgServerToGCUpdateLobbyServerState"
19134            }
19135            Self::KEMsgServerToGcAbandonMatch => "k_EMsgServerToGCAbandonMatch",
19136            Self::KEMsgServerToGcAbandonMatchResponse => {
19137                "k_EMsgServerToGCAbandonMatchResponse"
19138            }
19139            Self::KEMsgServerToGcTestConnection => "k_EMsgServerToGCTestConnection",
19140            Self::KEMsgServerToGcTestConnectionResponse => {
19141                "k_EMsgServerToGCTestConnectionResponse"
19142            }
19143            Self::KEMsgGcToServerSetServerConVar => "k_EMsgGCToServerSetServerConVar",
19144            Self::KEMsgGcToServerSetServerConVarResponse => {
19145                "k_EMsgGCToServerSetServerConVarResponse"
19146            }
19147            Self::KEMsgServerToGcUpdateMatchInfo => "k_EMsgServerToGCUpdateMatchInfo",
19148            Self::KEMsgServerToGcRequestPlayerHeroData => {
19149                "k_EMsgServerToGCRequestPlayerHeroData"
19150            }
19151            Self::KEMsgServerToGcRequestPlayerHeroDataResponse => {
19152                "k_EMsgServerToGCRequestPlayerHeroDataResponse"
19153            }
19154            Self::KEMsgGcToServerAllocateForHideout => {
19155                "k_EMsgGCToServerAllocateForHideout"
19156            }
19157            Self::KEMsgGcToServerAllocateForHideoutResponse => {
19158                "k_EMsgGCToServerAllocateForHideoutResponse"
19159            }
19160        }
19161    }
19162    /// Creates an enum from field names used in the ProtoBuf definition.
19163    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
19164        match value {
19165            "k_EMsgServerToGCMatchSignoutPermission" => {
19166                Some(Self::KEMsgServerToGcMatchSignoutPermission)
19167            }
19168            "k_EMsgServerToGCMatchSignoutPermissionResponse" => {
19169                Some(Self::KEMsgServerToGcMatchSignoutPermissionResponse)
19170            }
19171            "k_EMsgServerToGCMatchSignout" => Some(Self::KEMsgServerToGcMatchSignout),
19172            "k_EMsgServerToGCMatchSignoutResponse" => {
19173                Some(Self::KEMsgServerToGcMatchSignoutResponse)
19174            }
19175            "k_EMsgGCToServerAddSpectator" => Some(Self::KEMsgGcToServerAddSpectator),
19176            "k_EMsgGCToServerAddSpectatorResponse" => {
19177                Some(Self::KEMsgGcToServerAddSpectatorResponse)
19178            }
19179            "k_EMsgServerToGCIdlePing" => Some(Self::KEMsgServerToGcIdlePing),
19180            "k_EMsgGCToServerRequestPing" => Some(Self::KEMsgGcToServerRequestPing),
19181            "k_EMsgGCToServerAllocateForMatch" => {
19182                Some(Self::KEMsgGcToServerAllocateForMatch)
19183            }
19184            "k_EMsgGCToServerAllocateForMatchResponse" => {
19185                Some(Self::KEMsgGcToServerAllocateForMatchResponse)
19186            }
19187            "k_EMsgServerToGCEnterMatchmaking" => {
19188                Some(Self::KEMsgServerToGcEnterMatchmaking)
19189            }
19190            "k_EMsgGCToServerCancelAllocateForMatch" => {
19191                Some(Self::KEMsgGcToServerCancelAllocateForMatch)
19192            }
19193            "k_EMsgServerToGCUpdateLobbyServerState" => {
19194                Some(Self::KEMsgServerToGcUpdateLobbyServerState)
19195            }
19196            "k_EMsgServerToGCAbandonMatch" => Some(Self::KEMsgServerToGcAbandonMatch),
19197            "k_EMsgServerToGCAbandonMatchResponse" => {
19198                Some(Self::KEMsgServerToGcAbandonMatchResponse)
19199            }
19200            "k_EMsgServerToGCTestConnection" => Some(Self::KEMsgServerToGcTestConnection),
19201            "k_EMsgServerToGCTestConnectionResponse" => {
19202                Some(Self::KEMsgServerToGcTestConnectionResponse)
19203            }
19204            "k_EMsgGCToServerSetServerConVar" => {
19205                Some(Self::KEMsgGcToServerSetServerConVar)
19206            }
19207            "k_EMsgGCToServerSetServerConVarResponse" => {
19208                Some(Self::KEMsgGcToServerSetServerConVarResponse)
19209            }
19210            "k_EMsgServerToGCUpdateMatchInfo" => {
19211                Some(Self::KEMsgServerToGcUpdateMatchInfo)
19212            }
19213            "k_EMsgServerToGCRequestPlayerHeroData" => {
19214                Some(Self::KEMsgServerToGcRequestPlayerHeroData)
19215            }
19216            "k_EMsgServerToGCRequestPlayerHeroDataResponse" => {
19217                Some(Self::KEMsgServerToGcRequestPlayerHeroDataResponse)
19218            }
19219            "k_EMsgGCToServerAllocateForHideout" => {
19220                Some(Self::KEMsgGcToServerAllocateForHideout)
19221            }
19222            "k_EMsgGCToServerAllocateForHideoutResponse" => {
19223                Some(Self::KEMsgGcToServerAllocateForHideoutResponse)
19224            }
19225            _ => None,
19226        }
19227    }
19228}
19229#[derive(serde::Serialize, serde::Deserialize)]
19230#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
19231#[repr(i32)]
19232pub enum ECitadelMatchAuxStat {
19233    KEMatchAuxStatDummy = 1,
19234}
19235impl ECitadelMatchAuxStat {
19236    /// String value of the enum field names used in the ProtoBuf definition.
19237    ///
19238    /// The values are not transformed in any way and thus are considered stable
19239    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
19240    pub fn as_str_name(&self) -> &'static str {
19241        match self {
19242            Self::KEMatchAuxStatDummy => "k_eMatchAuxStat_Dummy",
19243        }
19244    }
19245    /// Creates an enum from field names used in the ProtoBuf definition.
19246    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
19247        match value {
19248            "k_eMatchAuxStat_Dummy" => Some(Self::KEMatchAuxStatDummy),
19249            _ => None,
19250        }
19251    }
19252}
19253#[derive(serde::Serialize, serde::Deserialize)]
19254#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
19255#[repr(i32)]
19256pub enum EgcServerLobbyData {
19257    KEServerLobbyDataPlayerMmr = 1,
19258    KEServerLobbyDataPlayerInfo = 2,
19259    KEServerLobbyDataPostMatchSurvey = 3,
19260    KEServerLobbyDataAutoTest = 4,
19261    KEServerLobbyDataPlayerStatValues = 5,
19262}
19263impl EgcServerLobbyData {
19264    /// String value of the enum field names used in the ProtoBuf definition.
19265    ///
19266    /// The values are not transformed in any way and thus are considered stable
19267    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
19268    pub fn as_str_name(&self) -> &'static str {
19269        match self {
19270            Self::KEServerLobbyDataPlayerMmr => "k_EServerLobbyData_PlayerMMR",
19271            Self::KEServerLobbyDataPlayerInfo => "k_EServerLobbyData_PlayerInfo",
19272            Self::KEServerLobbyDataPostMatchSurvey => {
19273                "k_EServerLobbyData_PostMatchSurvey"
19274            }
19275            Self::KEServerLobbyDataAutoTest => "k_EServerLobbyData_AutoTest",
19276            Self::KEServerLobbyDataPlayerStatValues => {
19277                "k_EServerLobbyData_PlayerStatValues"
19278            }
19279        }
19280    }
19281    /// Creates an enum from field names used in the ProtoBuf definition.
19282    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
19283        match value {
19284            "k_EServerLobbyData_PlayerMMR" => Some(Self::KEServerLobbyDataPlayerMmr),
19285            "k_EServerLobbyData_PlayerInfo" => Some(Self::KEServerLobbyDataPlayerInfo),
19286            "k_EServerLobbyData_PostMatchSurvey" => {
19287                Some(Self::KEServerLobbyDataPostMatchSurvey)
19288            }
19289            "k_EServerLobbyData_AutoTest" => Some(Self::KEServerLobbyDataAutoTest),
19290            "k_EServerLobbyData_PlayerStatValues" => {
19291                Some(Self::KEServerLobbyDataPlayerStatValues)
19292            }
19293            _ => None,
19294        }
19295    }
19296}
19297#[derive(serde::Serialize, serde::Deserialize)]
19298#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
19299#[repr(i32)]
19300pub enum EgcServerSignoutData {
19301    KEServerSignoutDataDisconnections = 2,
19302    KEServerSignoutDataAccountStatChanges = 3,
19303    KEServerSignoutDataDetailedStats = 4,
19304    KEServerSignoutDataServerPerfStats = 5,
19305    KEServerSignoutDataPerfData = 6,
19306    KEServerSignoutDataPlayerChat = 7,
19307    KEServerSignoutDataBookRewards = 8,
19308    KEServerSignoutDataPenalizedPlayers = 9,
19309    KEServerSignoutDataMatchDevStats = 11,
19310    KEServerSignoutDataChallengeProgress = 12,
19311    KEServerSignoutDataHeroXpGrant = 13,
19312    KEServerSignoutDataMatchKills = 14,
19313    KEServerSignoutDataPlayerBehavior = 15,
19314    KEServerSignoutDataStreetBrawlData = 16,
19315}
19316impl EgcServerSignoutData {
19317    /// String value of the enum field names used in the ProtoBuf definition.
19318    ///
19319    /// The values are not transformed in any way and thus are considered stable
19320    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
19321    pub fn as_str_name(&self) -> &'static str {
19322        match self {
19323            Self::KEServerSignoutDataDisconnections => {
19324                "k_EServerSignoutData_Disconnections"
19325            }
19326            Self::KEServerSignoutDataAccountStatChanges => {
19327                "k_EServerSignoutData_AccountStatChanges"
19328            }
19329            Self::KEServerSignoutDataDetailedStats => {
19330                "k_EServerSignoutData_DetailedStats"
19331            }
19332            Self::KEServerSignoutDataServerPerfStats => {
19333                "k_EServerSignoutData_ServerPerfStats"
19334            }
19335            Self::KEServerSignoutDataPerfData => "k_EServerSignoutData_PerfData",
19336            Self::KEServerSignoutDataPlayerChat => "k_EServerSignoutData_PlayerChat",
19337            Self::KEServerSignoutDataBookRewards => "k_EServerSignoutData_BookRewards",
19338            Self::KEServerSignoutDataPenalizedPlayers => {
19339                "k_EServerSignoutData_PenalizedPlayers"
19340            }
19341            Self::KEServerSignoutDataMatchDevStats => {
19342                "k_EServerSignoutData_MatchDevStats"
19343            }
19344            Self::KEServerSignoutDataChallengeProgress => {
19345                "k_EServerSignoutData_ChallengeProgress"
19346            }
19347            Self::KEServerSignoutDataHeroXpGrant => "k_EServerSignoutData_HeroXPGrant",
19348            Self::KEServerSignoutDataMatchKills => "k_EServerSignoutData_MatchKills",
19349            Self::KEServerSignoutDataPlayerBehavior => {
19350                "k_EServerSignoutData_PlayerBehavior"
19351            }
19352            Self::KEServerSignoutDataStreetBrawlData => {
19353                "k_EServerSignoutData_StreetBrawlData"
19354            }
19355        }
19356    }
19357    /// Creates an enum from field names used in the ProtoBuf definition.
19358    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
19359        match value {
19360            "k_EServerSignoutData_Disconnections" => {
19361                Some(Self::KEServerSignoutDataDisconnections)
19362            }
19363            "k_EServerSignoutData_AccountStatChanges" => {
19364                Some(Self::KEServerSignoutDataAccountStatChanges)
19365            }
19366            "k_EServerSignoutData_DetailedStats" => {
19367                Some(Self::KEServerSignoutDataDetailedStats)
19368            }
19369            "k_EServerSignoutData_ServerPerfStats" => {
19370                Some(Self::KEServerSignoutDataServerPerfStats)
19371            }
19372            "k_EServerSignoutData_PerfData" => Some(Self::KEServerSignoutDataPerfData),
19373            "k_EServerSignoutData_PlayerChat" => {
19374                Some(Self::KEServerSignoutDataPlayerChat)
19375            }
19376            "k_EServerSignoutData_BookRewards" => {
19377                Some(Self::KEServerSignoutDataBookRewards)
19378            }
19379            "k_EServerSignoutData_PenalizedPlayers" => {
19380                Some(Self::KEServerSignoutDataPenalizedPlayers)
19381            }
19382            "k_EServerSignoutData_MatchDevStats" => {
19383                Some(Self::KEServerSignoutDataMatchDevStats)
19384            }
19385            "k_EServerSignoutData_ChallengeProgress" => {
19386                Some(Self::KEServerSignoutDataChallengeProgress)
19387            }
19388            "k_EServerSignoutData_HeroXPGrant" => {
19389                Some(Self::KEServerSignoutDataHeroXpGrant)
19390            }
19391            "k_EServerSignoutData_MatchKills" => {
19392                Some(Self::KEServerSignoutDataMatchKills)
19393            }
19394            "k_EServerSignoutData_PlayerBehavior" => {
19395                Some(Self::KEServerSignoutDataPlayerBehavior)
19396            }
19397            "k_EServerSignoutData_StreetBrawlData" => {
19398                Some(Self::KEServerSignoutDataStreetBrawlData)
19399            }
19400            _ => None,
19401        }
19402    }
19403}
19404#[derive(serde::Serialize, serde::Deserialize)]
19405#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19406pub struct CInButtonStatePb {
19407    #[prost(uint64, optional, tag = "1")]
19408    pub buttonstate1: ::core::option::Option<u64>,
19409    #[prost(uint64, optional, tag = "2")]
19410    pub buttonstate2: ::core::option::Option<u64>,
19411    #[prost(uint64, optional, tag = "3")]
19412    pub buttonstate3: ::core::option::Option<u64>,
19413}
19414#[derive(serde::Serialize, serde::Deserialize)]
19415#[derive(Clone, Copy, PartialEq, ::prost::Message)]
19416pub struct CSubtickMoveStep {
19417    #[prost(uint64, optional, tag = "1")]
19418    pub button: ::core::option::Option<u64>,
19419    #[prost(bool, optional, tag = "2")]
19420    pub pressed: ::core::option::Option<bool>,
19421    #[prost(float, optional, tag = "3")]
19422    pub when: ::core::option::Option<f32>,
19423    #[prost(float, optional, tag = "4")]
19424    pub analog_forward_delta: ::core::option::Option<f32>,
19425    #[prost(float, optional, tag = "5")]
19426    pub analog_left_delta: ::core::option::Option<f32>,
19427    #[prost(float, optional, tag = "8")]
19428    pub pitch_delta: ::core::option::Option<f32>,
19429    #[prost(float, optional, tag = "9")]
19430    pub yaw_delta: ::core::option::Option<f32>,
19431}
19432#[derive(serde::Serialize, serde::Deserialize)]
19433#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
19434pub struct CBaseUserCmdExecutionNotes {
19435    #[prost(string, optional, tag = "1")]
19436    pub ignored_reason: ::core::option::Option<::prost::alloc::string::String>,
19437}
19438#[derive(serde::Serialize, serde::Deserialize)]
19439#[derive(Clone, PartialEq, ::prost::Message)]
19440pub struct CBaseUserCmdPb {
19441    #[prost(int32, optional, tag = "1")]
19442    pub legacy_command_number: ::core::option::Option<i32>,
19443    #[prost(int32, optional, tag = "2")]
19444    pub client_tick: ::core::option::Option<i32>,
19445    #[prost(uint32, optional, tag = "17")]
19446    pub prediction_offset_ticks_x256: ::core::option::Option<u32>,
19447    #[prost(message, optional, tag = "3")]
19448    pub buttons_pb: ::core::option::Option<CInButtonStatePb>,
19449    #[prost(message, optional, tag = "4")]
19450    pub viewangles: ::core::option::Option<CMsgQAngle>,
19451    #[prost(float, optional, tag = "5")]
19452    pub forwardmove: ::core::option::Option<f32>,
19453    #[prost(float, optional, tag = "6")]
19454    pub leftmove: ::core::option::Option<f32>,
19455    #[prost(float, optional, tag = "7")]
19456    pub upmove: ::core::option::Option<f32>,
19457    #[prost(int32, optional, tag = "8")]
19458    pub impulse: ::core::option::Option<i32>,
19459    #[prost(int32, optional, tag = "9")]
19460    pub weaponselect: ::core::option::Option<i32>,
19461    #[prost(int32, optional, tag = "10")]
19462    pub random_seed: ::core::option::Option<i32>,
19463    #[prost(int32, optional, tag = "11")]
19464    pub mousedx: ::core::option::Option<i32>,
19465    #[prost(int32, optional, tag = "12")]
19466    pub mousedy: ::core::option::Option<i32>,
19467    #[prost(uint32, optional, tag = "14", default = "16777215")]
19468    pub pawn_entity_handle: ::core::option::Option<u32>,
19469    #[prost(message, repeated, tag = "18")]
19470    pub subtick_moves: ::prost::alloc::vec::Vec<CSubtickMoveStep>,
19471    #[prost(bytes = "vec", optional, tag = "19")]
19472    pub move_crc: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
19473    #[prost(uint32, optional, tag = "20")]
19474    pub consumed_server_angle_changes: ::core::option::Option<u32>,
19475    #[prost(int32, optional, tag = "21")]
19476    pub cmd_flags: ::core::option::Option<i32>,
19477    #[prost(message, optional, tag = "22")]
19478    pub execution_notes: ::core::option::Option<CBaseUserCmdExecutionNotes>,
19479}
19480#[derive(serde::Serialize, serde::Deserialize)]
19481#[derive(Clone, PartialEq, ::prost::Message)]
19482pub struct CUserCmdBasePb {
19483    #[prost(message, optional, tag = "1")]
19484    pub base: ::core::option::Option<CBaseUserCmdPb>,
19485}
19486#[derive(serde::Serialize, serde::Deserialize)]
19487#[derive(Clone, PartialEq, ::prost::Message)]
19488pub struct CCitadelUserCmdPb {
19489    #[prost(message, optional, tag = "1")]
19490    pub base: ::core::option::Option<CBaseUserCmdPb>,
19491    #[prost(message, optional, tag = "2")]
19492    pub vec_camera_position: ::core::option::Option<CMsgVector>,
19493    #[prost(message, optional, tag = "3")]
19494    pub ang_camera_angles: ::core::option::Option<CMsgQAngle>,
19495    #[prost(int32, optional, tag = "4")]
19496    pub execute_ability_indices: ::core::option::Option<i32>,
19497    #[prost(bool, optional, tag = "5")]
19498    pub in_shop: ::core::option::Option<bool>,
19499    #[prost(float, optional, tag = "6")]
19500    pub camera_roaming_speed: ::core::option::Option<f32>,
19501    #[prost(bool, optional, tag = "8")]
19502    pub using_free_cursor: ::core::option::Option<bool>,
19503    #[prost(int32, optional, tag = "10", default = "-1")]
19504    pub enemy_hero_aimed_at: ::core::option::Option<i32>,
19505    #[prost(int32, repeated, packed = "false", tag = "11")]
19506    pub view_delta_x: ::prost::alloc::vec::Vec<i32>,
19507    #[prost(int32, repeated, packed = "false", tag = "12")]
19508    pub view_delta_y: ::prost::alloc::vec::Vec<i32>,
19509    #[prost(bool, optional, tag = "13")]
19510    pub is_in_third_person_view: ::core::option::Option<bool>,
19511}
19512#[derive(serde::Serialize, serde::Deserialize)]
19513#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
19514pub struct CMsgVDebugGameSessionIdEvent {
19515    #[prost(int32, optional, tag = "1")]
19516    pub clientid: ::core::option::Option<i32>,
19517    #[prost(string, optional, tag = "2")]
19518    pub gamesessionid: ::core::option::Option<::prost::alloc::string::String>,
19519}
19520#[derive(serde::Serialize, serde::Deserialize)]
19521#[derive(Clone, Copy, PartialEq, ::prost::Message)]
19522pub struct CMsgPlaceDecalEvent {
19523    #[prost(message, optional, tag = "1")]
19524    pub position: ::core::option::Option<CMsgVector>,
19525    #[prost(message, optional, tag = "2")]
19526    pub normal: ::core::option::Option<CMsgVector>,
19527    #[prost(message, optional, tag = "3")]
19528    pub saxis: ::core::option::Option<CMsgVector>,
19529    #[prost(int32, optional, tag = "4")]
19530    pub boneindex: ::core::option::Option<i32>,
19531    #[prost(int32, optional, tag = "13")]
19532    pub triangleindex: ::core::option::Option<i32>,
19533    #[prost(uint32, optional, tag = "5")]
19534    pub flags: ::core::option::Option<u32>,
19535    #[prost(fixed32, optional, tag = "6")]
19536    pub color: ::core::option::Option<u32>,
19537    #[prost(int32, optional, tag = "7")]
19538    pub random_seed: ::core::option::Option<i32>,
19539    #[prost(uint32, optional, tag = "8")]
19540    pub decal_group_name: ::core::option::Option<u32>,
19541    #[prost(float, optional, tag = "9")]
19542    pub size_override: ::core::option::Option<f32>,
19543    #[prost(uint32, optional, tag = "10", default = "16777215")]
19544    pub entityhandle: ::core::option::Option<u32>,
19545    #[prost(uint64, optional, tag = "11")]
19546    pub material_id: ::core::option::Option<u64>,
19547    #[prost(uint32, optional, tag = "12")]
19548    pub sequence_name: ::core::option::Option<u32>,
19549}
19550#[derive(serde::Serialize, serde::Deserialize)]
19551#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19552pub struct CMsgClearWorldDecalsEvent {
19553    #[prost(uint32, optional, tag = "1")]
19554    pub flagstoclear: ::core::option::Option<u32>,
19555}
19556#[derive(serde::Serialize, serde::Deserialize)]
19557#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19558pub struct CMsgClearEntityDecalsEvent {
19559    #[prost(uint32, optional, tag = "1")]
19560    pub flagstoclear: ::core::option::Option<u32>,
19561}
19562#[derive(serde::Serialize, serde::Deserialize)]
19563#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19564pub struct CMsgClearDecalsForEntityEvent {
19565    #[prost(uint32, optional, tag = "1")]
19566    pub flagstoclear: ::core::option::Option<u32>,
19567    #[prost(uint32, optional, tag = "2", default = "16777215")]
19568    pub entityhandle: ::core::option::Option<u32>,
19569}
19570#[derive(serde::Serialize, serde::Deserialize)]
19571#[derive(Clone, PartialEq, ::prost::Message)]
19572pub struct CMsgSource1LegacyGameEventList {
19573    #[prost(message, repeated, tag = "1")]
19574    pub descriptors: ::prost::alloc::vec::Vec<
19575        c_msg_source1_legacy_game_event_list::DescriptorT,
19576    >,
19577}
19578/// Nested message and enum types in `CMsgSource1LegacyGameEventList`.
19579pub mod c_msg_source1_legacy_game_event_list {
19580    #[derive(serde::Serialize, serde::Deserialize)]
19581    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
19582    pub struct KeyT {
19583        #[prost(int32, optional, tag = "1")]
19584        pub r#type: ::core::option::Option<i32>,
19585        #[prost(string, optional, tag = "2")]
19586        pub name: ::core::option::Option<::prost::alloc::string::String>,
19587    }
19588    #[derive(serde::Serialize, serde::Deserialize)]
19589    #[derive(Clone, PartialEq, ::prost::Message)]
19590    pub struct DescriptorT {
19591        #[prost(int32, optional, tag = "1")]
19592        pub eventid: ::core::option::Option<i32>,
19593        #[prost(string, optional, tag = "2")]
19594        pub name: ::core::option::Option<::prost::alloc::string::String>,
19595        #[prost(message, repeated, tag = "3")]
19596        pub keys: ::prost::alloc::vec::Vec<KeyT>,
19597    }
19598}
19599#[derive(serde::Serialize, serde::Deserialize)]
19600#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
19601pub struct CMsgSource1LegacyListenEvents {
19602    #[prost(int32, optional, tag = "1")]
19603    pub playerslot: ::core::option::Option<i32>,
19604    #[prost(uint32, repeated, packed = "false", tag = "2")]
19605    pub eventarraybits: ::prost::alloc::vec::Vec<u32>,
19606}
19607#[derive(serde::Serialize, serde::Deserialize)]
19608#[derive(Clone, PartialEq, ::prost::Message)]
19609pub struct CMsgSource1LegacyGameEvent {
19610    #[prost(string, optional, tag = "1")]
19611    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
19612    #[prost(int32, optional, tag = "2")]
19613    pub eventid: ::core::option::Option<i32>,
19614    #[prost(message, repeated, tag = "3")]
19615    pub keys: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event::KeyT>,
19616    #[prost(int32, optional, tag = "4")]
19617    pub server_tick: ::core::option::Option<i32>,
19618    #[prost(int32, optional, tag = "5")]
19619    pub passthrough: ::core::option::Option<i32>,
19620}
19621/// Nested message and enum types in `CMsgSource1LegacyGameEvent`.
19622pub mod c_msg_source1_legacy_game_event {
19623    #[derive(serde::Serialize, serde::Deserialize)]
19624    #[derive(Clone, PartialEq, ::prost::Message)]
19625    pub struct KeyT {
19626        #[prost(int32, optional, tag = "1")]
19627        pub r#type: ::core::option::Option<i32>,
19628        #[prost(string, optional, tag = "2")]
19629        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
19630        #[prost(float, optional, tag = "3")]
19631        pub val_float: ::core::option::Option<f32>,
19632        #[prost(int32, optional, tag = "4")]
19633        pub val_long: ::core::option::Option<i32>,
19634        #[prost(int32, optional, tag = "5")]
19635        pub val_short: ::core::option::Option<i32>,
19636        #[prost(int32, optional, tag = "6")]
19637        pub val_byte: ::core::option::Option<i32>,
19638        #[prost(bool, optional, tag = "7")]
19639        pub val_bool: ::core::option::Option<bool>,
19640        #[prost(uint64, optional, tag = "8")]
19641        pub val_uint64: ::core::option::Option<u64>,
19642    }
19643}
19644#[derive(serde::Serialize, serde::Deserialize)]
19645#[derive(Clone, PartialEq, ::prost::Message)]
19646pub struct CMsgSosStartSoundEvent {
19647    #[prost(int32, optional, tag = "1")]
19648    pub soundevent_guid: ::core::option::Option<i32>,
19649    #[prost(fixed32, optional, tag = "2")]
19650    pub soundevent_hash: ::core::option::Option<u32>,
19651    #[prost(int32, optional, tag = "3", default = "-1")]
19652    pub source_entity_index: ::core::option::Option<i32>,
19653    #[prost(int32, optional, tag = "4")]
19654    pub seed: ::core::option::Option<i32>,
19655    #[prost(bytes = "vec", optional, tag = "5")]
19656    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
19657    #[prost(float, optional, tag = "6")]
19658    pub start_time: ::core::option::Option<f32>,
19659}
19660#[derive(serde::Serialize, serde::Deserialize)]
19661#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19662pub struct CMsgSosStopSoundEvent {
19663    #[prost(int32, optional, tag = "1")]
19664    pub soundevent_guid: ::core::option::Option<i32>,
19665}
19666#[derive(serde::Serialize, serde::Deserialize)]
19667#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19668pub struct CMsgSosStopSoundEventHash {
19669    #[prost(fixed32, optional, tag = "1")]
19670    pub soundevent_hash: ::core::option::Option<u32>,
19671    #[prost(int32, optional, tag = "2", default = "-1")]
19672    pub source_entity_index: ::core::option::Option<i32>,
19673}
19674#[derive(serde::Serialize, serde::Deserialize)]
19675#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
19676pub struct CMsgSosSetSoundEventParams {
19677    #[prost(int32, optional, tag = "1")]
19678    pub soundevent_guid: ::core::option::Option<i32>,
19679    #[prost(bytes = "vec", optional, tag = "5")]
19680    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
19681}
19682#[derive(serde::Serialize, serde::Deserialize)]
19683#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
19684pub struct CMsgSosSetLibraryStackFields {
19685    #[prost(fixed32, optional, tag = "1")]
19686    pub stack_hash: ::core::option::Option<u32>,
19687    #[prost(bytes = "vec", optional, tag = "5")]
19688    pub packed_fields: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
19689}
19690#[derive(serde::Serialize, serde::Deserialize)]
19691#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
19692#[repr(i32)]
19693pub enum EBaseGameEvents {
19694    GeVDebugGameSessionIdEvent = 200,
19695    GePlaceDecalEvent = 201,
19696    GeClearWorldDecalsEvent = 202,
19697    GeClearEntityDecalsEvent = 203,
19698    GeClearDecalsForEntityEvent = 204,
19699    GeSource1LegacyGameEventList = 205,
19700    GeSource1LegacyListenEvents = 206,
19701    GeSource1LegacyGameEvent = 207,
19702    GeSosStartSoundEvent = 208,
19703    GeSosStopSoundEvent = 209,
19704    GeSosSetSoundEventParams = 210,
19705    GeSosSetLibraryStackFields = 211,
19706    GeSosStopSoundEventHash = 212,
19707}
19708impl EBaseGameEvents {
19709    /// String value of the enum field names used in the ProtoBuf definition.
19710    ///
19711    /// The values are not transformed in any way and thus are considered stable
19712    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
19713    pub fn as_str_name(&self) -> &'static str {
19714        match self {
19715            Self::GeVDebugGameSessionIdEvent => "GE_VDebugGameSessionIDEvent",
19716            Self::GePlaceDecalEvent => "GE_PlaceDecalEvent",
19717            Self::GeClearWorldDecalsEvent => "GE_ClearWorldDecalsEvent",
19718            Self::GeClearEntityDecalsEvent => "GE_ClearEntityDecalsEvent",
19719            Self::GeClearDecalsForEntityEvent => "GE_ClearDecalsForEntityEvent",
19720            Self::GeSource1LegacyGameEventList => "GE_Source1LegacyGameEventList",
19721            Self::GeSource1LegacyListenEvents => "GE_Source1LegacyListenEvents",
19722            Self::GeSource1LegacyGameEvent => "GE_Source1LegacyGameEvent",
19723            Self::GeSosStartSoundEvent => "GE_SosStartSoundEvent",
19724            Self::GeSosStopSoundEvent => "GE_SosStopSoundEvent",
19725            Self::GeSosSetSoundEventParams => "GE_SosSetSoundEventParams",
19726            Self::GeSosSetLibraryStackFields => "GE_SosSetLibraryStackFields",
19727            Self::GeSosStopSoundEventHash => "GE_SosStopSoundEventHash",
19728        }
19729    }
19730    /// Creates an enum from field names used in the ProtoBuf definition.
19731    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
19732        match value {
19733            "GE_VDebugGameSessionIDEvent" => Some(Self::GeVDebugGameSessionIdEvent),
19734            "GE_PlaceDecalEvent" => Some(Self::GePlaceDecalEvent),
19735            "GE_ClearWorldDecalsEvent" => Some(Self::GeClearWorldDecalsEvent),
19736            "GE_ClearEntityDecalsEvent" => Some(Self::GeClearEntityDecalsEvent),
19737            "GE_ClearDecalsForEntityEvent" => Some(Self::GeClearDecalsForEntityEvent),
19738            "GE_Source1LegacyGameEventList" => Some(Self::GeSource1LegacyGameEventList),
19739            "GE_Source1LegacyListenEvents" => Some(Self::GeSource1LegacyListenEvents),
19740            "GE_Source1LegacyGameEvent" => Some(Self::GeSource1LegacyGameEvent),
19741            "GE_SosStartSoundEvent" => Some(Self::GeSosStartSoundEvent),
19742            "GE_SosStopSoundEvent" => Some(Self::GeSosStopSoundEvent),
19743            "GE_SosSetSoundEventParams" => Some(Self::GeSosSetSoundEventParams),
19744            "GE_SosSetLibraryStackFields" => Some(Self::GeSosSetLibraryStackFields),
19745            "GE_SosStopSoundEventHash" => Some(Self::GeSosStopSoundEventHash),
19746            _ => None,
19747        }
19748    }
19749}
19750#[derive(serde::Serialize, serde::Deserialize)]
19751#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19752pub struct CUserMessageEmpty {
19753    #[prost(uint32, optional, tag = "1")]
19754    pub empty: ::core::option::Option<u32>,
19755}
19756#[derive(serde::Serialize, serde::Deserialize)]
19757#[derive(Clone, Copy, PartialEq, ::prost::Message)]
19758pub struct CCitadelUserMessageDamage {
19759    #[prost(int32, optional, tag = "1")]
19760    pub damage: ::core::option::Option<i32>,
19761    #[prost(int32, optional, tag = "2")]
19762    pub pre_damage_deprecated: ::core::option::Option<i32>,
19763    #[prost(float, optional, tag = "27")]
19764    pub pre_damage: ::core::option::Option<f32>,
19765    #[prost(int32, optional, tag = "3")]
19766    pub r#type: ::core::option::Option<i32>,
19767    #[prost(int32, optional, tag = "4")]
19768    pub citadel_type: ::core::option::Option<i32>,
19769    #[prost(message, optional, tag = "5")]
19770    pub origin: ::core::option::Option<CMsgVector>,
19771    #[prost(int32, optional, tag = "6", default = "-1")]
19772    pub entindex_victim: ::core::option::Option<i32>,
19773    #[prost(int32, optional, tag = "7", default = "-1")]
19774    pub entindex_inflictor: ::core::option::Option<i32>,
19775    #[prost(int32, optional, tag = "8", default = "-1")]
19776    pub entindex_attacker: ::core::option::Option<i32>,
19777    #[prost(int32, optional, tag = "9", default = "-1")]
19778    pub entindex_ability: ::core::option::Option<i32>,
19779    #[prost(int32, optional, tag = "10")]
19780    pub damage_absorbed_deprecated: ::core::option::Option<i32>,
19781    #[prost(float, optional, tag = "28")]
19782    pub damage_absorbed: ::core::option::Option<f32>,
19783    #[prost(int32, optional, tag = "11")]
19784    pub victim_health_max: ::core::option::Option<i32>,
19785    #[prost(int32, optional, tag = "12")]
19786    pub victim_health_new: ::core::option::Option<i32>,
19787    #[prost(uint64, optional, tag = "13")]
19788    pub flags: ::core::option::Option<u64>,
19789    #[prost(uint32, optional, tag = "14")]
19790    pub ability_id: ::core::option::Option<u32>,
19791    #[prost(uint32, optional, tag = "15")]
19792    pub attacker_class: ::core::option::Option<u32>,
19793    #[prost(uint32, optional, tag = "16")]
19794    pub victim_class: ::core::option::Option<u32>,
19795    #[prost(int32, optional, tag = "17")]
19796    pub victim_shield_max: ::core::option::Option<i32>,
19797    #[prost(int32, optional, tag = "18")]
19798    pub victim_shield_new: ::core::option::Option<i32>,
19799    #[prost(int32, optional, tag = "19")]
19800    pub hits: ::core::option::Option<i32>,
19801    #[prost(int32, optional, tag = "20")]
19802    pub health_lost: ::core::option::Option<i32>,
19803    #[prost(int32, optional, tag = "21")]
19804    pub hitgroup_id: ::core::option::Option<i32>,
19805    #[prost(int32, optional, tag = "22", default = "-1")]
19806    pub entindex_attacking_object: ::core::option::Option<i32>,
19807    #[prost(message, optional, tag = "23")]
19808    pub damage_direction: ::core::option::Option<CMsgVector>,
19809    #[prost(bool, optional, tag = "24")]
19810    pub is_secondary_stat: ::core::option::Option<bool>,
19811    #[prost(float, optional, tag = "25")]
19812    pub effectiveness: ::core::option::Option<f32>,
19813    #[prost(float, optional, tag = "26")]
19814    pub crit_damage: ::core::option::Option<f32>,
19815    #[prost(int32, optional, tag = "29")]
19816    pub server_tick: ::core::option::Option<i32>,
19817}
19818#[derive(serde::Serialize, serde::Deserialize)]
19819#[derive(Clone, PartialEq, ::prost::Message)]
19820pub struct PingCommonData {
19821    #[prost(uint32, optional, tag = "1")]
19822    pub ping_message_id: ::core::option::Option<u32>,
19823    #[prost(message, optional, tag = "2")]
19824    pub ping_location: ::core::option::Option<CMsgVector>,
19825    #[prost(uint32, optional, tag = "3", default = "16777215")]
19826    pub entity_index: ::core::option::Option<u32>,
19827    #[prost(int32, optional, tag = "4", default = "-1")]
19828    pub sender_player_slot: ::core::option::Option<i32>,
19829    #[prost(int32, optional, tag = "5")]
19830    pub speech_concept: ::core::option::Option<i32>,
19831    #[prost(string, optional, tag = "6")]
19832    pub response_chosen: ::core::option::Option<::prost::alloc::string::String>,
19833    #[prost(float, optional, tag = "7")]
19834    pub cooldown_time: ::core::option::Option<f32>,
19835}
19836#[derive(serde::Serialize, serde::Deserialize)]
19837#[derive(Clone, PartialEq, ::prost::Message)]
19838pub struct CCitadelUserMsgMapPing {
19839    #[prost(message, optional, tag = "1")]
19840    pub ping_data: ::core::option::Option<PingCommonData>,
19841    #[prost(uint32, optional, tag = "2")]
19842    pub event_type: ::core::option::Option<u32>,
19843    #[prost(
19844        enumeration = "ChatMsgPingMarkerInfo",
19845        optional,
19846        tag = "3",
19847        default = "KEPingMarkerInfoShowMarkerAndSound"
19848    )]
19849    pub ping_marker_and_sound_info: ::core::option::Option<i32>,
19850    #[prost(bool, optional, tag = "4")]
19851    pub pinged_enemy_entity: ::core::option::Option<bool>,
19852    #[prost(uint32, optional, tag = "5")]
19853    pub pinged_entity_class: ::core::option::Option<u32>,
19854    #[prost(bool, optional, tag = "6")]
19855    pub is_minimap_ping: ::core::option::Option<bool>,
19856    #[prost(string, optional, tag = "7")]
19857    pub pinged_hero_name: ::core::option::Option<::prost::alloc::string::String>,
19858    #[prost(bool, optional, tag = "8")]
19859    pub is_blind_ping: ::core::option::Option<bool>,
19860}
19861#[derive(serde::Serialize, serde::Deserialize)]
19862#[derive(Clone, PartialEq, ::prost::Message)]
19863pub struct CCitadelUserMsgPingWheel {
19864    #[prost(message, optional, tag = "1")]
19865    pub ping_data: ::core::option::Option<PingCommonData>,
19866    #[prost(uint32, optional, tag = "2")]
19867    pub ping_wheel_option_id: ::core::option::Option<u32>,
19868}
19869#[derive(serde::Serialize, serde::Deserialize)]
19870#[derive(Clone, PartialEq, ::prost::Message)]
19871pub struct CCitadelUserMsgAbilityPing {
19872    #[prost(message, optional, tag = "1")]
19873    pub ping_data: ::core::option::Option<PingCommonData>,
19874    #[prost(uint32, optional, tag = "2")]
19875    pub ability_id: ::core::option::Option<u32>,
19876    #[prost(float, optional, tag = "3")]
19877    pub ability_cooldown: ::core::option::Option<f32>,
19878    #[prost(
19879        enumeration = "ChatMsgPingMarkerInfo",
19880        optional,
19881        tag = "4",
19882        default = "KEPingMarkerInfoShowMarkerAndSound"
19883    )]
19884    pub ping_marker_and_sound_info: ::core::option::Option<i32>,
19885}
19886#[derive(serde::Serialize, serde::Deserialize)]
19887#[derive(Clone, PartialEq, ::prost::Message)]
19888pub struct CCitadelUserMsgQuickResponse {
19889    #[prost(message, optional, tag = "1")]
19890    pub ping_data: ::core::option::Option<PingCommonData>,
19891    #[prost(uint32, optional, tag = "2")]
19892    pub responding_to_ping_message_id: ::core::option::Option<u32>,
19893    #[prost(int32, optional, tag = "3", default = "-1")]
19894    pub responding_to_player_slot: ::core::option::Option<i32>,
19895    #[prost(
19896        enumeration = "CMsgLaneColor",
19897        optional,
19898        tag = "4",
19899        default = "KELaneColorInvalid"
19900    )]
19901    pub lane_color: ::core::option::Option<i32>,
19902}
19903#[derive(serde::Serialize, serde::Deserialize)]
19904#[derive(Clone, PartialEq, ::prost::Message)]
19905pub struct CCitadelUserMsgItemDraftReaction {
19906    #[prost(message, optional, tag = "1")]
19907    pub ping_data: ::core::option::Option<PingCommonData>,
19908    #[prost(bool, optional, tag = "2")]
19909    pub rare: ::core::option::Option<bool>,
19910    #[prost(bool, optional, tag = "3")]
19911    pub legendary: ::core::option::Option<bool>,
19912}
19913#[derive(serde::Serialize, serde::Deserialize)]
19914#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19915pub struct CCitadelUserMsgMapLine {
19916    #[prost(int32, optional, tag = "1", default = "-1")]
19917    pub sender_player_slot: ::core::option::Option<i32>,
19918    #[prost(message, optional, tag = "2")]
19919    pub mapline: ::core::option::Option<CMsgMapLine>,
19920}
19921#[derive(serde::Serialize, serde::Deserialize)]
19922#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19923pub struct CCitadelUserMsgTeamRewards {
19924    #[prost(uint32, optional, tag = "1")]
19925    pub xp: ::core::option::Option<u32>,
19926    #[prost(uint32, optional, tag = "2")]
19927    pub gold: ::core::option::Option<u32>,
19928    #[prost(bool, optional, tag = "3")]
19929    pub winner: ::core::option::Option<bool>,
19930}
19931#[derive(serde::Serialize, serde::Deserialize)]
19932#[derive(Clone, Copy, PartialEq, ::prost::Message)]
19933pub struct CCitadelUserMsgTriggerDamageFlash {
19934    #[prost(int32, optional, tag = "1", default = "-1")]
19935    pub entindex_flash_victim: ::core::option::Option<i32>,
19936    #[prost(int32, optional, tag = "2", default = "-1")]
19937    pub entindex_flash_attacker: ::core::option::Option<i32>,
19938    #[prost(int32, optional, tag = "3")]
19939    pub entindex_flash_hitgroup: ::core::option::Option<i32>,
19940    #[prost(uint32, optional, tag = "4")]
19941    pub flash_value: ::core::option::Option<u32>,
19942    #[prost(uint32, optional, tag = "5")]
19943    pub flash_type: ::core::option::Option<u32>,
19944    #[prost(uint32, optional, tag = "6")]
19945    pub flash_flags: ::core::option::Option<u32>,
19946    #[prost(message, optional, tag = "7")]
19947    pub flash_position: ::core::option::Option<CMsgVector>,
19948}
19949#[derive(serde::Serialize, serde::Deserialize)]
19950#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
19951pub struct CCitadelUserMsgAbilitiesChanged {
19952    #[prost(int32, optional, tag = "1", default = "-1")]
19953    pub purchaser_player_slot: ::core::option::Option<i32>,
19954    #[prost(uint32, optional, tag = "2")]
19955    pub ability_id: ::core::option::Option<u32>,
19956    #[prost(
19957        enumeration = "c_citadel_user_msg_abilities_changed::Change",
19958        optional,
19959        tag = "3",
19960        default = "EInvalid"
19961    )]
19962    pub change: ::core::option::Option<i32>,
19963}
19964/// Nested message and enum types in `CCitadelUserMsg_AbilitiesChanged`.
19965pub mod c_citadel_user_msg_abilities_changed {
19966    #[derive(serde::Serialize, serde::Deserialize)]
19967    #[derive(
19968        Clone,
19969        Copy,
19970        Debug,
19971        PartialEq,
19972        Eq,
19973        Hash,
19974        PartialOrd,
19975        Ord,
19976        ::prost::Enumeration
19977    )]
19978    #[repr(i32)]
19979    pub enum Change {
19980        EInvalid = -1,
19981        EPurchased = 0,
19982        EUpgraded = 1,
19983        ESold = 2,
19984        ESwappedActivatedAbility = 3,
19985        EFailure = 4,
19986    }
19987    impl Change {
19988        /// String value of the enum field names used in the ProtoBuf definition.
19989        ///
19990        /// The values are not transformed in any way and thus are considered stable
19991        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
19992        pub fn as_str_name(&self) -> &'static str {
19993            match self {
19994                Self::EInvalid => "EInvalid",
19995                Self::EPurchased => "EPurchased",
19996                Self::EUpgraded => "EUpgraded",
19997                Self::ESold => "ESold",
19998                Self::ESwappedActivatedAbility => "ESwappedActivatedAbility",
19999                Self::EFailure => "EFailure",
20000            }
20001        }
20002        /// Creates an enum from field names used in the ProtoBuf definition.
20003        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
20004            match value {
20005                "EInvalid" => Some(Self::EInvalid),
20006                "EPurchased" => Some(Self::EPurchased),
20007                "EUpgraded" => Some(Self::EUpgraded),
20008                "ESold" => Some(Self::ESold),
20009                "ESwappedActivatedAbility" => Some(Self::ESwappedActivatedAbility),
20010                "EFailure" => Some(Self::EFailure),
20011                _ => None,
20012            }
20013        }
20014    }
20015}
20016#[derive(serde::Serialize, serde::Deserialize)]
20017#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20018pub struct CCitadelUserMsgAbilityInterrupted {
20019    #[prost(int32, optional, tag = "1", default = "-1")]
20020    pub entindex_victim: ::core::option::Option<i32>,
20021    #[prost(int32, optional, tag = "2", default = "-1")]
20022    pub entindex_interrupter: ::core::option::Option<i32>,
20023    #[prost(uint32, optional, tag = "3")]
20024    pub ability_id_interrupted: ::core::option::Option<u32>,
20025    #[prost(uint32, optional, tag = "4")]
20026    pub ability_id_interrupter: ::core::option::Option<u32>,
20027    #[prost(uint32, optional, tag = "5")]
20028    pub hero_id_interrupter: ::core::option::Option<u32>,
20029}
20030#[derive(serde::Serialize, serde::Deserialize)]
20031#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20032pub struct CCitadelUserMsgAbilityLateFailure {
20033    #[prost(int32, optional, tag = "1", default = "-1")]
20034    pub entindex_caster: ::core::option::Option<i32>,
20035    #[prost(int32, optional, tag = "2", default = "-1")]
20036    pub entindex_ability: ::core::option::Option<i32>,
20037    #[prost(uint32, optional, tag = "3")]
20038    pub failure_type: ::core::option::Option<u32>,
20039}
20040#[derive(serde::Serialize, serde::Deserialize)]
20041#[derive(Clone, PartialEq, ::prost::Message)]
20042pub struct CCitadelUserMsgRecentDamageSummary {
20043    #[prost(int32, optional, tag = "1", default = "-1")]
20044    pub player_slot: ::core::option::Option<i32>,
20045    #[prost(message, repeated, tag = "2")]
20046    pub damage_records: ::prost::alloc::vec::Vec<
20047        c_citadel_user_msg_recent_damage_summary::DamageRecord,
20048    >,
20049    #[prost(float, optional, tag = "3")]
20050    pub start_time: ::core::option::Option<f32>,
20051    #[prost(float, optional, tag = "4")]
20052    pub end_time: ::core::option::Option<f32>,
20053    #[prost(int32, optional, tag = "5")]
20054    pub total_damage: ::core::option::Option<i32>,
20055    #[prost(int32, optional, tag = "6")]
20056    pub lost_gold: ::core::option::Option<i32>,
20057    #[prost(message, repeated, tag = "7")]
20058    pub modifier_records: ::prost::alloc::vec::Vec<
20059        c_citadel_user_msg_recent_damage_summary::ModifierRecord,
20060    >,
20061}
20062/// Nested message and enum types in `CCitadelUserMsg_RecentDamageSummary`.
20063pub mod c_citadel_user_msg_recent_damage_summary {
20064    #[derive(serde::Serialize, serde::Deserialize)]
20065    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
20066    pub struct DamageRecord {
20067        #[prost(int32, optional, tag = "1")]
20068        pub damage: ::core::option::Option<i32>,
20069        #[prost(int32, optional, tag = "2")]
20070        pub hits: ::core::option::Option<i32>,
20071        #[prost(uint32, optional, tag = "3")]
20072        pub damage_type: ::core::option::Option<u32>,
20073        #[prost(uint32, optional, tag = "4")]
20074        pub hero_id: ::core::option::Option<u32>,
20075        #[prost(uint32, optional, tag = "5")]
20076        pub ability_id: ::core::option::Option<u32>,
20077        #[prost(uint32, optional, tag = "6")]
20078        pub attacker_class: ::core::option::Option<u32>,
20079        #[prost(float, optional, tag = "7")]
20080        pub damage_absorbed: ::core::option::Option<f32>,
20081        #[prost(bool, optional, tag = "8")]
20082        pub is_killing_blow: ::core::option::Option<bool>,
20083        #[prost(uint32, optional, tag = "9")]
20084        pub victim_hero_id: ::core::option::Option<u32>,
20085        #[prost(bool, optional, tag = "10")]
20086        pub is_secondary_stat: ::core::option::Option<bool>,
20087        #[prost(float, optional, tag = "11")]
20088        pub pre_damage: ::core::option::Option<f32>,
20089        #[prost(float, optional, tag = "12")]
20090        pub crit_damage: ::core::option::Option<f32>,
20091    }
20092    #[derive(serde::Serialize, serde::Deserialize)]
20093    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
20094    pub struct ModifierRecord {
20095        #[prost(uint32, optional, tag = "1")]
20096        pub ability_id: ::core::option::Option<u32>,
20097        #[prost(uint32, optional, tag = "2")]
20098        pub modifier_type_id: ::core::option::Option<u32>,
20099        #[prost(int32, optional, tag = "3", default = "-1")]
20100        pub entindex_caster: ::core::option::Option<i32>,
20101        #[prost(float, optional, tag = "4")]
20102        pub start_time: ::core::option::Option<f32>,
20103        #[prost(float, optional, tag = "5")]
20104        pub end_time: ::core::option::Option<f32>,
20105        #[prost(bool, optional, tag = "6")]
20106        pub debuff: ::core::option::Option<bool>,
20107    }
20108}
20109#[derive(serde::Serialize, serde::Deserialize)]
20110#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20111pub struct CCitadelUserMsgSpectatorTeamChanged {
20112    #[prost(int32, optional, tag = "1")]
20113    pub teamnumber: ::core::option::Option<i32>,
20114}
20115#[derive(serde::Serialize, serde::Deserialize)]
20116#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20117pub struct CCitadelUserMsgChatWheel {
20118    #[prost(uint32, optional, tag = "1")]
20119    pub chat_message_id: ::core::option::Option<u32>,
20120    #[prost(int32, optional, tag = "2", default = "-1")]
20121    pub player_slot: ::core::option::Option<i32>,
20122    #[prost(int32, optional, tag = "3", default = "-1")]
20123    pub pawn_entindex: ::core::option::Option<i32>,
20124    #[prost(uint32, optional, tag = "4")]
20125    pub account_id: ::core::option::Option<u32>,
20126    #[prost(uint32, optional, tag = "5")]
20127    pub hero_id: ::core::option::Option<u32>,
20128    #[prost(string, optional, tag = "6")]
20129    pub param_1: ::core::option::Option<::prost::alloc::string::String>,
20130    #[prost(
20131        enumeration = "CMsgLaneColor",
20132        optional,
20133        tag = "7",
20134        default = "KELaneColorInvalid"
20135    )]
20136    pub lane_color: ::core::option::Option<i32>,
20137}
20138#[derive(serde::Serialize, serde::Deserialize)]
20139#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20140pub struct CCitadelUserMsgChatMsg {
20141    #[prost(int32, optional, tag = "1", default = "-1")]
20142    pub player_slot: ::core::option::Option<i32>,
20143    #[prost(string, optional, tag = "2")]
20144    pub text: ::core::option::Option<::prost::alloc::string::String>,
20145    #[prost(bool, optional, tag = "3")]
20146    pub all_chat: ::core::option::Option<bool>,
20147    #[prost(
20148        enumeration = "CMsgLaneColor",
20149        optional,
20150        tag = "4",
20151        default = "KELaneColorInvalid"
20152    )]
20153    pub lane_color: ::core::option::Option<i32>,
20154}
20155#[derive(serde::Serialize, serde::Deserialize)]
20156#[derive(Clone, PartialEq, ::prost::Message)]
20157pub struct CCitadelUserMsgGoldHistory {
20158    #[prost(int32, optional, tag = "1", default = "-1")]
20159    pub entindex_player: ::core::option::Option<i32>,
20160    #[prost(message, repeated, tag = "2")]
20161    pub minute_records: ::prost::alloc::vec::Vec<
20162        c_citadel_user_msg_gold_history::MinuteRecord,
20163    >,
20164}
20165/// Nested message and enum types in `CCitadelUserMsg_GoldHistory`.
20166pub mod c_citadel_user_msg_gold_history {
20167    #[derive(serde::Serialize, serde::Deserialize)]
20168    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20169    pub struct GoldRecord {
20170        #[prost(int32, optional, tag = "1")]
20171        pub currency_source: ::core::option::Option<i32>,
20172        #[prost(int32, optional, tag = "2")]
20173        pub gold: ::core::option::Option<i32>,
20174        #[prost(int32, optional, tag = "3")]
20175        pub events: ::core::option::Option<i32>,
20176    }
20177    #[derive(serde::Serialize, serde::Deserialize)]
20178    #[derive(Clone, PartialEq, ::prost::Message)]
20179    pub struct MinuteRecord {
20180        #[prost(int32, optional, tag = "1")]
20181        pub match_minute: ::core::option::Option<i32>,
20182        #[prost(message, repeated, tag = "2")]
20183        pub gold_records: ::prost::alloc::vec::Vec<GoldRecord>,
20184    }
20185}
20186#[derive(serde::Serialize, serde::Deserialize)]
20187#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20188pub struct CCitadelUserMsgCameraController {
20189    #[prost(
20190        enumeration = "CameraAction",
20191        optional,
20192        tag = "1",
20193        default = "KEActionAddOp"
20194    )]
20195    pub action: ::core::option::Option<i32>,
20196    #[prost(
20197        enumeration = "CameraOperation",
20198        optional,
20199        tag = "2",
20200        default = "KECameraOpMaintain"
20201    )]
20202    pub operation: ::core::option::Option<i32>,
20203    #[prost(
20204        enumeration = "CameraParam",
20205        optional,
20206        tag = "3",
20207        default = "KEParamClearAllOps"
20208    )]
20209    pub param: ::core::option::Option<i32>,
20210    #[prost(
20211        enumeration = "CameraParamMode",
20212        optional,
20213        tag = "12",
20214        default = "KEParamModeAllowInOneContext"
20215    )]
20216    pub param_mode: ::core::option::Option<i32>,
20217    #[prost(float, optional, tag = "4")]
20218    pub delay: ::core::option::Option<f32>,
20219    #[prost(bool, optional, tag = "11")]
20220    pub relative_values: ::core::option::Option<bool>,
20221    #[prost(uint32, optional, tag = "5")]
20222    pub context_symbol_id: ::core::option::Option<u32>,
20223    #[prost(uint32, optional, tag = "13", default = "1")]
20224    pub priority: ::core::option::Option<u32>,
20225    #[prost(message, optional, tag = "6")]
20226    pub maintain: ::core::option::Option<c_citadel_user_msg_camera_controller::Maintain>,
20227    #[prost(message, optional, tag = "7")]
20228    pub approach: ::core::option::Option<c_citadel_user_msg_camera_controller::Approach>,
20229    #[prost(message, optional, tag = "8")]
20230    pub spring: ::core::option::Option<c_citadel_user_msg_camera_controller::Spring>,
20231    #[prost(message, optional, tag = "9")]
20232    pub lerp: ::core::option::Option<c_citadel_user_msg_camera_controller::Lerp>,
20233    #[prost(message, optional, tag = "10")]
20234    pub lag: ::core::option::Option<c_citadel_user_msg_camera_controller::Lag>,
20235}
20236/// Nested message and enum types in `CCitadelUserMsg_CameraController`.
20237pub mod c_citadel_user_msg_camera_controller {
20238    #[derive(serde::Serialize, serde::Deserialize)]
20239    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
20240    pub struct Maintain {
20241        #[prost(float, optional, tag = "1", default = "0")]
20242        pub duration: ::core::option::Option<f32>,
20243    }
20244    #[derive(serde::Serialize, serde::Deserialize)]
20245    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
20246    pub struct Approach {
20247        #[prost(float, optional, tag = "1", default = "600")]
20248        pub speed: ::core::option::Option<f32>,
20249        #[prost(float, optional, tag = "2", default = "600")]
20250        pub default_speed: ::core::option::Option<f32>,
20251        #[prost(float, optional, tag = "3", default = "1000")]
20252        pub acceleration: ::core::option::Option<f32>,
20253        #[prost(float, optional, tag = "4", default = "0")]
20254        pub min_duration: ::core::option::Option<f32>,
20255        #[prost(float, optional, tag = "5")]
20256        pub approach_float: ::core::option::Option<f32>,
20257        #[prost(message, optional, tag = "6")]
20258        pub approach_vector: ::core::option::Option<super::CMsgVector>,
20259        #[prost(bool, optional, tag = "7")]
20260        pub chase_default: ::core::option::Option<bool>,
20261    }
20262    #[derive(serde::Serialize, serde::Deserialize)]
20263    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
20264    pub struct Spring {
20265        #[prost(float, optional, tag = "1", default = "10")]
20266        pub spring_strength: ::core::option::Option<f32>,
20267        #[prost(float, optional, tag = "4", default = "0")]
20268        pub min_speed: ::core::option::Option<f32>,
20269        #[prost(float, optional, tag = "5", default = "0")]
20270        pub max_duration: ::core::option::Option<f32>,
20271        #[prost(float, optional, tag = "6")]
20272        pub target_float: ::core::option::Option<f32>,
20273        #[prost(message, optional, tag = "7")]
20274        pub target_vector: ::core::option::Option<super::CMsgVector>,
20275    }
20276    #[derive(serde::Serialize, serde::Deserialize)]
20277    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
20278    pub struct Lerp {
20279        #[prost(float, optional, tag = "1")]
20280        pub start_float: ::core::option::Option<f32>,
20281        #[prost(message, optional, tag = "2")]
20282        pub start_vector: ::core::option::Option<super::CMsgVector>,
20283        #[prost(float, optional, tag = "3")]
20284        pub end_float: ::core::option::Option<f32>,
20285        #[prost(message, optional, tag = "4")]
20286        pub end_vector: ::core::option::Option<super::CMsgVector>,
20287        #[prost(float, optional, tag = "5")]
20288        pub bias: ::core::option::Option<f32>,
20289        #[prost(float, optional, tag = "6")]
20290        pub gain: ::core::option::Option<f32>,
20291        #[prost(float, optional, tag = "7", default = "1")]
20292        pub duration: ::core::option::Option<f32>,
20293    }
20294    #[derive(serde::Serialize, serde::Deserialize)]
20295    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
20296    pub struct Lag {
20297        #[prost(float, optional, tag = "1")]
20298        pub min_duration: ::core::option::Option<f32>,
20299        #[prost(float, optional, tag = "2")]
20300        pub lag_time: ::core::option::Option<f32>,
20301        #[prost(float, optional, tag = "3")]
20302        pub max_speed: ::core::option::Option<f32>,
20303        #[prost(float, optional, tag = "4")]
20304        pub spring_strength: ::core::option::Option<f32>,
20305        #[prost(bool, optional, tag = "5", default = "true")]
20306        pub increase_spring_strength_to_keep_target_on_screen: ::core::option::Option<
20307            bool,
20308        >,
20309    }
20310}
20311#[derive(serde::Serialize, serde::Deserialize)]
20312#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20313pub struct CCitadelUserMsgPostMatchDetails {
20314    #[prost(bytes = "vec", optional, tag = "1")]
20315    pub match_details: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
20316}
20317#[derive(serde::Serialize, serde::Deserialize)]
20318#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20319pub struct CCitadelUserMsgChatEvent {
20320    #[prost(
20321        enumeration = "ECitadelChatMessage",
20322        optional,
20323        tag = "1",
20324        default = "CitadelChatMessageUnpauseCountdown"
20325    )]
20326    pub r#type: ::core::option::Option<i32>,
20327    #[prost(uint32, repeated, packed = "false", tag = "2")]
20328    pub values: ::prost::alloc::vec::Vec<u32>,
20329    #[prost(int32, repeated, packed = "false", tag = "3")]
20330    pub player_slots: ::prost::alloc::vec::Vec<i32>,
20331}
20332#[derive(serde::Serialize, serde::Deserialize)]
20333#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20334pub struct CCitadelUserMsgHeroKilled {
20335    #[prost(int32, optional, tag = "1", default = "-1")]
20336    pub entindex_victim: ::core::option::Option<i32>,
20337    #[prost(int32, optional, tag = "2", default = "-1")]
20338    pub entindex_inflictor: ::core::option::Option<i32>,
20339    #[prost(int32, optional, tag = "3", default = "-1")]
20340    pub entindex_attacker: ::core::option::Option<i32>,
20341    #[prost(int32, repeated, packed = "false", tag = "4")]
20342    pub entindex_assisters: ::prost::alloc::vec::Vec<i32>,
20343    #[prost(int32, optional, tag = "5", default = "-1")]
20344    pub entindex_scorer: ::core::option::Option<i32>,
20345    #[prost(int32, optional, tag = "6")]
20346    pub respawn_reason: ::core::option::Option<i32>,
20347    #[prost(int32, optional, tag = "7")]
20348    pub victim_team_number: ::core::option::Option<i32>,
20349}
20350#[derive(serde::Serialize, serde::Deserialize)]
20351#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20352pub struct CCitadelEntityMsgBreakablePropSpawnDebris {
20353    #[prost(message, optional, tag = "1")]
20354    pub entity_msg: ::core::option::Option<CEntityMsg>,
20355    #[prost(message, optional, tag = "2")]
20356    pub damage_pos: ::core::option::Option<CMsgVector>,
20357    #[prost(float, optional, tag = "3")]
20358    pub damage: ::core::option::Option<f32>,
20359    #[prost(message, optional, tag = "4")]
20360    pub damage_force: ::core::option::Option<CMsgVector>,
20361}
20362#[derive(serde::Serialize, serde::Deserialize)]
20363#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20364pub struct CCitadelUserMsgReturnIdol {
20365    #[prost(int32, optional, tag = "1")]
20366    pub location_index: ::core::option::Option<i32>,
20367    #[prost(message, optional, tag = "2")]
20368    pub return_location: ::core::option::Option<CMsgVector>,
20369    #[prost(bool, optional, tag = "3")]
20370    pub location_enabled: ::core::option::Option<bool>,
20371}
20372#[derive(serde::Serialize, serde::Deserialize)]
20373#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20374pub struct CCitadelUserMsgSetClientCameraAngles {
20375    #[prost(int32, optional, tag = "1", default = "-1")]
20376    pub player_slot: ::core::option::Option<i32>,
20377    #[prost(message, optional, tag = "2")]
20378    pub camera_angles: ::core::option::Option<CMsgQAngle>,
20379}
20380#[derive(serde::Serialize, serde::Deserialize)]
20381#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20382pub struct CCitadelUserMessageBulletHit {
20383    #[prost(int32, optional, tag = "1")]
20384    pub shotid: ::core::option::Option<i32>,
20385    #[prost(int32, optional, tag = "2")]
20386    pub pellet: ::core::option::Option<i32>,
20387    #[prost(int32, optional, tag = "3", default = "-1")]
20388    pub hit_entindex: ::core::option::Option<i32>,
20389    #[prost(int32, optional, tag = "4", default = "-1")]
20390    pub weapon_entindex: ::core::option::Option<i32>,
20391    #[prost(bool, optional, tag = "5")]
20392    pub is_predicted: ::core::option::Option<bool>,
20393}
20394#[derive(serde::Serialize, serde::Deserialize)]
20395#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20396pub struct CCitadelUserMessageObjectiveMask {
20397    #[prost(uint64, optional, tag = "2")]
20398    pub objective_mask_team0: ::core::option::Option<u64>,
20399    #[prost(uint64, optional, tag = "3")]
20400    pub objective_mask_team1: ::core::option::Option<u64>,
20401}
20402#[derive(serde::Serialize, serde::Deserialize)]
20403#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20404pub struct CCitadelUserMessageModifierApplied {
20405    #[prost(int32, optional, tag = "1", default = "-1")]
20406    pub entindex_caster: ::core::option::Option<i32>,
20407    #[prost(int32, optional, tag = "2", default = "-1")]
20408    pub entindex_parent: ::core::option::Option<i32>,
20409    #[prost(int32, optional, tag = "3")]
20410    pub serial_number: ::core::option::Option<i32>,
20411}
20412#[derive(serde::Serialize, serde::Deserialize)]
20413#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20414pub struct CCitadelUserMessageAuraModifierApplied {
20415    #[prost(int32, optional, tag = "1", default = "-1")]
20416    pub entindex_caster: ::core::option::Option<i32>,
20417    #[prost(int32, optional, tag = "2", default = "-1")]
20418    pub entindex_target: ::core::option::Option<i32>,
20419    #[prost(uint32, optional, tag = "3")]
20420    pub modifier_type_id: ::core::option::Option<u32>,
20421    #[prost(int32, optional, tag = "4")]
20422    pub modifier_serial_number: ::core::option::Option<i32>,
20423    #[prost(float, optional, tag = "5")]
20424    pub aura_start_time: ::core::option::Option<f32>,
20425    #[prost(float, optional, tag = "6")]
20426    pub aura_end_time: ::core::option::Option<f32>,
20427}
20428#[derive(serde::Serialize, serde::Deserialize)]
20429#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20430pub struct CCitadelUserMsgObstructedShotFired {}
20431#[derive(serde::Serialize, serde::Deserialize)]
20432#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20433pub struct CCitadelUserMsgPostProcessingAnim {
20434    #[prost(int32, optional, tag = "1", default = "-1")]
20435    pub entindex_owner: ::core::option::Option<i32>,
20436    #[prost(bool, optional, tag = "2")]
20437    pub clear_all_states: ::core::option::Option<bool>,
20438    #[prost(
20439        enumeration = "PostProcessingGameStates",
20440        optional,
20441        tag = "3",
20442        default = "PostProcStateKilled"
20443    )]
20444    pub state: ::core::option::Option<i32>,
20445    #[prost(float, optional, tag = "4")]
20446    pub delay: ::core::option::Option<f32>,
20447    #[prost(float, optional, tag = "5")]
20448    pub fade_in_time: ::core::option::Option<f32>,
20449    #[prost(float, optional, tag = "6")]
20450    pub hold_time: ::core::option::Option<f32>,
20451    #[prost(float, optional, tag = "7")]
20452    pub fade_out_time: ::core::option::Option<f32>,
20453    #[prost(float, optional, tag = "8")]
20454    pub scale: ::core::option::Option<f32>,
20455}
20456#[derive(serde::Serialize, serde::Deserialize)]
20457#[derive(Clone, PartialEq, ::prost::Message)]
20458pub struct CCitadelUserMsgDeathReplayData {
20459    #[prost(int32, optional, tag = "1", default = "-1")]
20460    pub killer_scorer: ::core::option::Option<i32>,
20461    #[prost(int32, optional, tag = "2", default = "-1")]
20462    pub killer_inflictor: ::core::option::Option<i32>,
20463    #[prost(message, optional, tag = "3")]
20464    pub damage_summary: ::core::option::Option<CCitadelUserMsgRecentDamageSummary>,
20465}
20466#[derive(serde::Serialize, serde::Deserialize)]
20467#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20468pub struct CCitadelUserMsgForceShopClosed {}
20469#[derive(serde::Serialize, serde::Deserialize)]
20470#[derive(Clone, PartialEq, ::prost::Message)]
20471pub struct CCitadelUserMsgPlayerLifetimeStatInfo {
20472    #[prost(message, repeated, tag = "1")]
20473    pub stats: ::prost::alloc::vec::Vec<
20474        c_citadel_user_msg_player_lifetime_stat_info::Stat,
20475    >,
20476    #[prost(uint64, optional, tag = "2")]
20477    pub match_id: ::core::option::Option<u64>,
20478    #[prost(bool, optional, tag = "3")]
20479    pub end_of_match: ::core::option::Option<bool>,
20480    #[prost(bool, optional, tag = "4")]
20481    pub is_official_match: ::core::option::Option<bool>,
20482}
20483/// Nested message and enum types in `CCitadelUserMsg_PlayerLifetimeStatInfo`.
20484pub mod c_citadel_user_msg_player_lifetime_stat_info {
20485    #[derive(serde::Serialize, serde::Deserialize)]
20486    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20487    pub struct Stat {
20488        #[prost(string, optional, tag = "1")]
20489        pub stat_name: ::core::option::Option<::prost::alloc::string::String>,
20490        #[prost(uint32, optional, tag = "2")]
20491        pub match_total: ::core::option::Option<u32>,
20492        #[prost(uint32, optional, tag = "3")]
20493        pub lifetime_value: ::core::option::Option<u32>,
20494        #[prost(uint32, optional, tag = "4")]
20495        pub priority: ::core::option::Option<u32>,
20496        #[prost(uint32, optional, tag = "5")]
20497        pub prev_lifetime_max: ::core::option::Option<u32>,
20498        #[prost(uint32, optional, tag = "6")]
20499        pub stat_type: ::core::option::Option<u32>,
20500        #[prost(uint32, optional, tag = "7")]
20501        pub stat_type_id: ::core::option::Option<u32>,
20502    }
20503}
20504#[derive(serde::Serialize, serde::Deserialize)]
20505#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20506pub struct CCitadelUserMsgStaminaConsumed {
20507    #[prost(int32, optional, tag = "1", default = "-1")]
20508    pub entindex_target: ::core::option::Option<i32>,
20509    #[prost(float, optional, tag = "3")]
20510    pub stamina_before: ::core::option::Option<f32>,
20511    #[prost(float, optional, tag = "4")]
20512    pub stamina_after: ::core::option::Option<f32>,
20513    #[prost(bool, optional, tag = "5")]
20514    pub drained: ::core::option::Option<bool>,
20515    #[prost(float, optional, tag = "6")]
20516    pub stamina_max: ::core::option::Option<f32>,
20517    #[prost(float, optional, tag = "7")]
20518    pub gametime: ::core::option::Option<f32>,
20519}
20520#[derive(serde::Serialize, serde::Deserialize)]
20521#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20522pub struct CCitadelUserMessageAbilityNotify {
20523    #[prost(int32, optional, tag = "1", default = "-1")]
20524    pub entindex_victim: ::core::option::Option<i32>,
20525    #[prost(int32, optional, tag = "2", default = "-1")]
20526    pub entindex_attacker: ::core::option::Option<i32>,
20527    #[prost(uint32, optional, tag = "3")]
20528    pub ability_id: ::core::option::Option<u32>,
20529    #[prost(uint32, optional, tag = "4")]
20530    pub status_impact: ::core::option::Option<u32>,
20531}
20532#[derive(serde::Serialize, serde::Deserialize)]
20533#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20534pub struct CCitadelUserMessageCurrencyChanged {
20535    #[prost(int32, optional, tag = "1", default = "-1")]
20536    pub userid: ::core::option::Option<i32>,
20537    #[prost(int32, optional, tag = "2")]
20538    pub currency_type: ::core::option::Option<i32>,
20539    #[prost(int32, optional, tag = "3")]
20540    pub currency_source: ::core::option::Option<i32>,
20541    #[prost(int32, optional, tag = "4")]
20542    pub delta: ::core::option::Option<i32>,
20543    #[prost(bool, optional, tag = "5")]
20544    pub notification: ::core::option::Option<bool>,
20545    #[prost(int32, optional, tag = "6", default = "-1")]
20546    pub entindex_victim: ::core::option::Option<i32>,
20547    #[prost(message, optional, tag = "7")]
20548    pub victim_pos: ::core::option::Option<CMsgVector>,
20549    #[prost(int32, optional, tag = "8")]
20550    pub playsound: ::core::option::Option<i32>,
20551    #[prost(uint32, optional, tag = "9")]
20552    pub ability_id: ::core::option::Option<u32>,
20553    #[prost(uint32, optional, tag = "10")]
20554    pub new_value: ::core::option::Option<u32>,
20555}
20556#[derive(serde::Serialize, serde::Deserialize)]
20557#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20558pub struct CCitadelUserMessageGameOver {
20559    #[prost(int32, optional, tag = "1")]
20560    pub winning_team: ::core::option::Option<i32>,
20561    #[prost(bool, optional, tag = "2")]
20562    pub just_a_test: ::core::option::Option<bool>,
20563}
20564#[derive(serde::Serialize, serde::Deserialize)]
20565#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20566pub struct CCitadelUserMsgGetDamageStatsResponse {
20567    #[prost(uint32, optional, tag = "1")]
20568    pub player_slot: ::core::option::Option<u32>,
20569    #[prost(string, optional, tag = "2")]
20570    pub ability_name: ::core::option::Option<::prost::alloc::string::String>,
20571    #[prost(message, optional, tag = "3")]
20572    pub damage: ::core::option::Option<
20573        c_citadel_user_msg_get_damage_stats_response::StatType,
20574    >,
20575    #[prost(message, optional, tag = "4")]
20576    pub healing: ::core::option::Option<
20577        c_citadel_user_msg_get_damage_stats_response::StatType,
20578    >,
20579}
20580/// Nested message and enum types in `CCitadelUserMsg_GetDamageStatsResponse`.
20581pub mod c_citadel_user_msg_get_damage_stats_response {
20582    #[derive(serde::Serialize, serde::Deserialize)]
20583    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20584    pub struct StatType {
20585        #[prost(uint32, repeated, tag = "1")]
20586        pub target_player_slot: ::prost::alloc::vec::Vec<u32>,
20587        #[prost(uint32, repeated, tag = "2")]
20588        pub value: ::prost::alloc::vec::Vec<u32>,
20589    }
20590}
20591#[derive(serde::Serialize, serde::Deserialize)]
20592#[derive(Clone, PartialEq, ::prost::Message)]
20593pub struct CCitadelUserMsgParticipantStartSoundEvent {
20594    #[prost(message, optional, tag = "1")]
20595    pub event: ::core::option::Option<CMsgSosStartSoundEvent>,
20596    #[prost(int32, repeated, packed = "false", tag = "2")]
20597    pub player_slots: ::prost::alloc::vec::Vec<i32>,
20598}
20599#[derive(serde::Serialize, serde::Deserialize)]
20600#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20601pub struct CCitadelUserMsgParticipantStopSoundEvent {
20602    #[prost(message, optional, tag = "1")]
20603    pub event: ::core::option::Option<CMsgSosStopSoundEvent>,
20604    #[prost(int32, repeated, packed = "false", tag = "2")]
20605    pub player_slots: ::prost::alloc::vec::Vec<i32>,
20606}
20607#[derive(serde::Serialize, serde::Deserialize)]
20608#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20609pub struct CCitadelUserMsgParticipantStopSoundEventHash {
20610    #[prost(message, optional, tag = "1")]
20611    pub event: ::core::option::Option<CMsgSosStopSoundEventHash>,
20612    #[prost(int32, repeated, packed = "false", tag = "2")]
20613    pub player_slots: ::prost::alloc::vec::Vec<i32>,
20614}
20615#[derive(serde::Serialize, serde::Deserialize)]
20616#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20617pub struct CCitadelUserMsgParticipantSetSoundEventParams {
20618    #[prost(message, optional, tag = "1")]
20619    pub event: ::core::option::Option<CMsgSosSetSoundEventParams>,
20620    #[prost(int32, repeated, packed = "false", tag = "2")]
20621    pub player_slots: ::prost::alloc::vec::Vec<i32>,
20622}
20623#[derive(serde::Serialize, serde::Deserialize)]
20624#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20625pub struct CCitadelUserMsgParticipantSetLibraryStackFields {
20626    #[prost(message, optional, tag = "1")]
20627    pub event: ::core::option::Option<CMsgSosSetLibraryStackFields>,
20628    #[prost(int32, repeated, packed = "false", tag = "2")]
20629    pub player_slots: ::prost::alloc::vec::Vec<i32>,
20630}
20631#[derive(serde::Serialize, serde::Deserialize)]
20632#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20633pub struct CCitadelUserMsgBossKilled {
20634    #[prost(int32, optional, tag = "1")]
20635    pub objective_team: ::core::option::Option<i32>,
20636    #[prost(int32, optional, tag = "2")]
20637    pub objective_mask_change: ::core::option::Option<i32>,
20638    #[prost(uint32, optional, tag = "3", default = "16777215")]
20639    pub entity_killed: ::core::option::Option<u32>,
20640    #[prost(int32, optional, tag = "4")]
20641    pub entity_killed_class: ::core::option::Option<i32>,
20642    #[prost(uint32, optional, tag = "5", default = "16777215")]
20643    pub entity_killer: ::core::option::Option<u32>,
20644    #[prost(float, optional, tag = "6")]
20645    pub gametime: ::core::option::Option<f32>,
20646    #[prost(int32, optional, tag = "7")]
20647    pub bosses_remaining: ::core::option::Option<i32>,
20648    #[prost(message, optional, tag = "8")]
20649    pub entity_position: ::core::option::Option<CMsgVector>,
20650}
20651#[derive(serde::Serialize, serde::Deserialize)]
20652#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20653pub struct CCitadelUserMsgBossDamaged {
20654    #[prost(int32, optional, tag = "1")]
20655    pub objective_team: ::core::option::Option<i32>,
20656    #[prost(int32, optional, tag = "2")]
20657    pub objective_id: ::core::option::Option<i32>,
20658    #[prost(uint32, optional, tag = "3", default = "16777215")]
20659    pub entity_damaged: ::core::option::Option<u32>,
20660}
20661#[derive(serde::Serialize, serde::Deserialize)]
20662#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20663pub struct CCitadelUserMsgMidBossSpawned {}
20664#[derive(serde::Serialize, serde::Deserialize)]
20665#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20666pub struct CCitadelUserMsgRejuvStatus {
20667    #[prost(int32, optional, tag = "1")]
20668    pub killing_team: ::core::option::Option<i32>,
20669    #[prost(uint32, optional, tag = "2", default = "16777215")]
20670    pub player_pawn: ::core::option::Option<u32>,
20671    #[prost(int32, optional, tag = "3")]
20672    pub user_team: ::core::option::Option<i32>,
20673    #[prost(int32, optional, tag = "4")]
20674    pub event_type: ::core::option::Option<i32>,
20675}
20676#[derive(serde::Serialize, serde::Deserialize)]
20677#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20678pub struct CCitadelUserMsgKillStreak {
20679    #[prost(uint32, optional, tag = "1", default = "16777215")]
20680    pub player_pawn: ::core::option::Option<u32>,
20681    #[prost(int32, optional, tag = "2")]
20682    pub num_kills: ::core::option::Option<i32>,
20683    #[prost(bool, optional, tag = "3")]
20684    pub is_first_blood: ::core::option::Option<bool>,
20685    #[prost(bool, optional, tag = "4")]
20686    pub streak_ended: ::core::option::Option<bool>,
20687    #[prost(float, optional, tag = "5", default = "5")]
20688    pub duration: ::core::option::Option<f32>,
20689}
20690#[derive(serde::Serialize, serde::Deserialize)]
20691#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20692pub struct CCitadelUserMsgTeamMsg {
20693    #[prost(int32, optional, tag = "1")]
20694    pub event_type: ::core::option::Option<i32>,
20695    #[prost(int32, optional, tag = "2")]
20696    pub team_number: ::core::option::Option<i32>,
20697    #[prost(int32, optional, tag = "3")]
20698    pub lane_color: ::core::option::Option<i32>,
20699    #[prost(uint32, optional, tag = "4", default = "16777215")]
20700    pub player_controller: ::core::option::Option<u32>,
20701}
20702#[derive(serde::Serialize, serde::Deserialize)]
20703#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20704pub struct CCitadelUserMsgPlayerRespawned {
20705    #[prost(uint32, optional, tag = "1", default = "16777215")]
20706    pub player_pawn: ::core::option::Option<u32>,
20707    #[prost(float, optional, tag = "2")]
20708    pub facing_yaw: ::core::option::Option<f32>,
20709}
20710#[derive(serde::Serialize, serde::Deserialize)]
20711#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20712pub struct CCitadelUserMsgCallCheaterVote {
20713    #[prost(int32, optional, tag = "1", default = "-1")]
20714    pub player_slot: ::core::option::Option<i32>,
20715}
20716#[derive(serde::Serialize, serde::Deserialize)]
20717#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20718pub struct CCitadelUserMessageMeleeHit {
20719    #[prost(int32, optional, tag = "1", default = "-1")]
20720    pub hit_entindex: ::core::option::Option<i32>,
20721    #[prost(bool, optional, tag = "2")]
20722    pub heavy: ::core::option::Option<bool>,
20723}
20724#[derive(serde::Serialize, serde::Deserialize)]
20725#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20726pub struct CCitadelUserMsgFlexSlotUnlocked {
20727    #[prost(int32, optional, tag = "1")]
20728    pub team_number: ::core::option::Option<i32>,
20729    #[prost(int32, optional, tag = "2")]
20730    pub flexslot_unlocked: ::core::option::Option<i32>,
20731}
20732#[derive(serde::Serialize, serde::Deserialize)]
20733#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20734pub struct CCitadelUserMessageItemPurchaseNotification {
20735    #[prost(int32, optional, tag = "1", default = "-1")]
20736    pub userid: ::core::option::Option<i32>,
20737    #[prost(uint32, optional, tag = "2")]
20738    pub ability_id: ::core::option::Option<u32>,
20739    #[prost(bool, optional, tag = "3")]
20740    pub sell: ::core::option::Option<bool>,
20741    #[prost(bool, optional, tag = "4")]
20742    pub quickbuy: ::core::option::Option<bool>,
20743}
20744#[derive(serde::Serialize, serde::Deserialize)]
20745#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20746pub struct CCitadelUserMsgSeasonalKill {
20747    #[prost(uint32, optional, tag = "1", default = "16777215")]
20748    pub killer: ::core::option::Option<u32>,
20749    #[prost(uint32, optional, tag = "2", default = "16777215")]
20750    pub victim: ::core::option::Option<u32>,
20751}
20752#[derive(serde::Serialize, serde::Deserialize)]
20753#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20754pub struct CCitadelUserMsgAg2ParamTrigger {
20755    #[prost(string, optional, tag = "1")]
20756    pub param_id: ::core::option::Option<::prost::alloc::string::String>,
20757    #[prost(string, optional, tag = "2")]
20758    pub param_value: ::core::option::Option<::prost::alloc::string::String>,
20759}
20760#[derive(serde::Serialize, serde::Deserialize)]
20761#[derive(Clone, Copy, PartialEq, ::prost::Message)]
20762pub struct CCitadelUserMsgEntityPortalled {
20763    #[prost(uint32, optional, tag = "1", default = "16777215")]
20764    pub entity_portalled: ::core::option::Option<u32>,
20765    #[prost(message, optional, tag = "2")]
20766    pub portal_transform: ::core::option::Option<CMsgTransform>,
20767}
20768#[derive(serde::Serialize, serde::Deserialize)]
20769#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
20770pub struct CCitadelUserMsgStreetBrawlScoring {
20771    #[prost(int32, optional, tag = "1")]
20772    pub scoring_team: ::core::option::Option<i32>,
20773    #[prost(bool, optional, tag = "2")]
20774    pub just_a_test: ::core::option::Option<bool>,
20775    #[prost(int32, optional, tag = "3")]
20776    pub sapphire_score: ::core::option::Option<i32>,
20777    #[prost(int32, optional, tag = "4")]
20778    pub amber_score: ::core::option::Option<i32>,
20779}
20780#[derive(serde::Serialize, serde::Deserialize)]
20781#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20782pub struct CCitadelUserMsgHudGameAnnouncement {
20783    #[prost(string, optional, tag = "1")]
20784    pub title_locstring: ::core::option::Option<::prost::alloc::string::String>,
20785    #[prost(string, optional, tag = "2")]
20786    pub description_locstring: ::core::option::Option<::prost::alloc::string::String>,
20787    #[prost(string, repeated, tag = "3")]
20788    pub classname: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
20789    #[prost(string, repeated, tag = "4")]
20790    pub dialog_variable_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
20791    #[prost(string, repeated, tag = "5")]
20792    pub dialog_variable_locstring: ::prost::alloc::vec::Vec<
20793        ::prost::alloc::string::String,
20794    >,
20795}
20796#[derive(serde::Serialize, serde::Deserialize)]
20797#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20798pub struct CCitadelUserMessageImportantAbilityUsed {
20799    #[prost(uint32, optional, tag = "1", default = "16777215")]
20800    pub player: ::core::option::Option<u32>,
20801    #[prost(uint32, optional, tag = "2", default = "16777215")]
20802    pub caster: ::core::option::Option<u32>,
20803    #[prost(string, optional, tag = "3")]
20804    pub ability_name: ::core::option::Option<::prost::alloc::string::String>,
20805}
20806#[derive(serde::Serialize, serde::Deserialize)]
20807#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20808pub struct CCitadelUserMsgBannedHeroes {
20809    #[prost(uint32, repeated, packed = "false", tag = "1")]
20810    pub banned_hero_ids: ::prost::alloc::vec::Vec<u32>,
20811}
20812#[derive(serde::Serialize, serde::Deserialize)]
20813#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
20814#[repr(i32)]
20815pub enum CitadelUserMessageIds {
20816    KEUserMsgDamage = 300,
20817    KEUserMsgMapPing = 303,
20818    KEUserMsgTeamRewards = 304,
20819    KEUserMsgAbilityFailed = 306,
20820    KEUserMsgTriggerDamageFlash = 308,
20821    KEUserMsgAbilitiesChanged = 309,
20822    KEUserMsgRecentDamageSummary = 310,
20823    KEUserMsgSpectatorTeamChanged = 311,
20824    KEUserMsgChatWheel = 312,
20825    KEUserMsgGoldHistory = 313,
20826    KEUserMsgChatMsg = 314,
20827    KEUserMsgQuickResponse = 315,
20828    KEUserMsgPostMatchDetails = 316,
20829    KEUserMsgChatEvent = 317,
20830    KEUserMsgAbilityInterrupted = 318,
20831    KEUserMsgHeroKilled = 319,
20832    KEUserMsgReturnIdol = 320,
20833    KEUserMsgSetClientCameraAngles = 321,
20834    KEUserMsgMapLine = 322,
20835    KEUserMsgBulletHit = 323,
20836    KEUserMsgObjectiveMask = 324,
20837    KEUserMsgModifierApplied = 325,
20838    KEUserMsgCameraController = 326,
20839    KEUserMsgAuraModifierApplied = 327,
20840    KEUserMsgObstructedShotFired = 329,
20841    KEUserMsgAbilityLateFailure = 330,
20842    KEUserMsgAbilityPing = 331,
20843    KEUserMsgPostProcessingAnim = 332,
20844    KEUserMsgDeathReplayData = 333,
20845    KEUserMsgPlayerLifetimeStatInfo = 334,
20846    KEUserMsgForceShopClosed = 336,
20847    KEUserMsgStaminaConsumed = 337,
20848    KEUserMsgAbilityNotify = 338,
20849    KEUserMsgGetDamageStatsResponse = 339,
20850    KEUserMsgParticipantStartSoundEvent = 340,
20851    KEUserMsgParticipantStopSoundEvent = 341,
20852    KEUserMsgParticipantStopSoundEventHash = 342,
20853    KEUserMsgParticipantSetSoundEventParams = 343,
20854    KEUserMsgParticipantSetLibraryStackFields = 344,
20855    KEUserMsgCurrencyChanged = 345,
20856    KEUserMsgGameOver = 346,
20857    KEUserMsgBossKilled = 347,
20858    KEUserMsgBossDamaged = 348,
20859    KEUserMsgMidBossSpawned = 349,
20860    KEUserMsgRejuvStatus = 350,
20861    KEUserMsgKillStreak = 351,
20862    KEUserMsgTeamMsg = 352,
20863    KEUserMsgPlayerRespawned = 353,
20864    KEUserMsgCallCheaterVote = 354,
20865    KEUserMsgMeleeHit = 355,
20866    KEUserMsgFlexSlotUnlocked = 356,
20867    KEUserMsgSeasonalKill = 357,
20868    KEUserMsgAg2ParamTrigger = 359,
20869    KEUserMsgItemPurchaseNotification = 360,
20870    KEUserMsgEntityPortalled = 361,
20871    KEUserMsgStreetBrawlScoring = 362,
20872    KEUserMsgHudGameAnnouncement = 363,
20873    KEUserMsgItemDraftReaction = 364,
20874    KEUserMsgImportantAbilityUsed = 365,
20875    KEUserMsgBannedHeroes = 366,
20876}
20877impl CitadelUserMessageIds {
20878    /// String value of the enum field names used in the ProtoBuf definition.
20879    ///
20880    /// The values are not transformed in any way and thus are considered stable
20881    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
20882    pub fn as_str_name(&self) -> &'static str {
20883        match self {
20884            Self::KEUserMsgDamage => "k_EUserMsg_Damage",
20885            Self::KEUserMsgMapPing => "k_EUserMsg_MapPing",
20886            Self::KEUserMsgTeamRewards => "k_EUserMsg_TeamRewards",
20887            Self::KEUserMsgAbilityFailed => "k_EUserMsg_AbilityFailed",
20888            Self::KEUserMsgTriggerDamageFlash => "k_EUserMsg_TriggerDamageFlash",
20889            Self::KEUserMsgAbilitiesChanged => "k_EUserMsg_AbilitiesChanged",
20890            Self::KEUserMsgRecentDamageSummary => "k_EUserMsg_RecentDamageSummary",
20891            Self::KEUserMsgSpectatorTeamChanged => "k_EUserMsg_SpectatorTeamChanged",
20892            Self::KEUserMsgChatWheel => "k_EUserMsg_ChatWheel",
20893            Self::KEUserMsgGoldHistory => "k_EUserMsg_GoldHistory",
20894            Self::KEUserMsgChatMsg => "k_EUserMsg_ChatMsg",
20895            Self::KEUserMsgQuickResponse => "k_EUserMsg_QuickResponse",
20896            Self::KEUserMsgPostMatchDetails => "k_EUserMsg_PostMatchDetails",
20897            Self::KEUserMsgChatEvent => "k_EUserMsg_ChatEvent",
20898            Self::KEUserMsgAbilityInterrupted => "k_EUserMsg_AbilityInterrupted",
20899            Self::KEUserMsgHeroKilled => "k_EUserMsg_HeroKilled",
20900            Self::KEUserMsgReturnIdol => "k_EUserMsg_ReturnIdol",
20901            Self::KEUserMsgSetClientCameraAngles => "k_EUserMsg_SetClientCameraAngles",
20902            Self::KEUserMsgMapLine => "k_EUserMsg_MapLine",
20903            Self::KEUserMsgBulletHit => "k_EUserMsg_BulletHit",
20904            Self::KEUserMsgObjectiveMask => "k_EUserMsg_ObjectiveMask",
20905            Self::KEUserMsgModifierApplied => "k_EUserMsg_ModifierApplied",
20906            Self::KEUserMsgCameraController => "k_EUserMsg_CameraController",
20907            Self::KEUserMsgAuraModifierApplied => "k_EUserMsg_AuraModifierApplied",
20908            Self::KEUserMsgObstructedShotFired => "k_EUserMsg_ObstructedShotFired",
20909            Self::KEUserMsgAbilityLateFailure => "k_EUserMsg_AbilityLateFailure",
20910            Self::KEUserMsgAbilityPing => "k_EUserMsg_AbilityPing",
20911            Self::KEUserMsgPostProcessingAnim => "k_EUserMsg_PostProcessingAnim",
20912            Self::KEUserMsgDeathReplayData => "k_EUserMsg_DeathReplayData",
20913            Self::KEUserMsgPlayerLifetimeStatInfo => "k_EUserMsg_PlayerLifetimeStatInfo",
20914            Self::KEUserMsgForceShopClosed => "k_EUserMsg_ForceShopClosed",
20915            Self::KEUserMsgStaminaConsumed => "k_EUserMsg_StaminaConsumed",
20916            Self::KEUserMsgAbilityNotify => "k_EUserMsg_AbilityNotify",
20917            Self::KEUserMsgGetDamageStatsResponse => "k_EUserMsg_GetDamageStatsResponse",
20918            Self::KEUserMsgParticipantStartSoundEvent => {
20919                "k_EUserMsg_ParticipantStartSoundEvent"
20920            }
20921            Self::KEUserMsgParticipantStopSoundEvent => {
20922                "k_EUserMsg_ParticipantStopSoundEvent"
20923            }
20924            Self::KEUserMsgParticipantStopSoundEventHash => {
20925                "k_EUserMsg_ParticipantStopSoundEventHash"
20926            }
20927            Self::KEUserMsgParticipantSetSoundEventParams => {
20928                "k_EUserMsg_ParticipantSetSoundEventParams"
20929            }
20930            Self::KEUserMsgParticipantSetLibraryStackFields => {
20931                "k_EUserMsg_ParticipantSetLibraryStackFields"
20932            }
20933            Self::KEUserMsgCurrencyChanged => "k_EUserMsg_CurrencyChanged",
20934            Self::KEUserMsgGameOver => "k_EUserMsg_GameOver",
20935            Self::KEUserMsgBossKilled => "k_EUserMsg_BossKilled",
20936            Self::KEUserMsgBossDamaged => "k_EUserMsg_BossDamaged",
20937            Self::KEUserMsgMidBossSpawned => "k_EUserMsg_MidBossSpawned",
20938            Self::KEUserMsgRejuvStatus => "k_EUserMsg_RejuvStatus",
20939            Self::KEUserMsgKillStreak => "k_EUserMsg_KillStreak",
20940            Self::KEUserMsgTeamMsg => "k_EUserMsg_TeamMsg",
20941            Self::KEUserMsgPlayerRespawned => "k_EUserMsg_PlayerRespawned",
20942            Self::KEUserMsgCallCheaterVote => "k_EUserMsg_CallCheaterVote",
20943            Self::KEUserMsgMeleeHit => "k_EUserMsg_MeleeHit",
20944            Self::KEUserMsgFlexSlotUnlocked => "k_EUserMsg_FlexSlotUnlocked",
20945            Self::KEUserMsgSeasonalKill => "k_EUserMsg_SeasonalKill",
20946            Self::KEUserMsgAg2ParamTrigger => "k_EUserMsg_AG2ParamTrigger",
20947            Self::KEUserMsgItemPurchaseNotification => {
20948                "k_EUserMsg_ItemPurchaseNotification"
20949            }
20950            Self::KEUserMsgEntityPortalled => "k_EUserMsg_EntityPortalled",
20951            Self::KEUserMsgStreetBrawlScoring => "k_EUserMsg_StreetBrawlScoring",
20952            Self::KEUserMsgHudGameAnnouncement => "k_EUserMsg_HudGameAnnouncement",
20953            Self::KEUserMsgItemDraftReaction => "k_EUserMsg_ItemDraftReaction",
20954            Self::KEUserMsgImportantAbilityUsed => "k_EUserMsg_ImportantAbilityUsed",
20955            Self::KEUserMsgBannedHeroes => "k_EUserMsg_BannedHeroes",
20956        }
20957    }
20958    /// Creates an enum from field names used in the ProtoBuf definition.
20959    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
20960        match value {
20961            "k_EUserMsg_Damage" => Some(Self::KEUserMsgDamage),
20962            "k_EUserMsg_MapPing" => Some(Self::KEUserMsgMapPing),
20963            "k_EUserMsg_TeamRewards" => Some(Self::KEUserMsgTeamRewards),
20964            "k_EUserMsg_AbilityFailed" => Some(Self::KEUserMsgAbilityFailed),
20965            "k_EUserMsg_TriggerDamageFlash" => Some(Self::KEUserMsgTriggerDamageFlash),
20966            "k_EUserMsg_AbilitiesChanged" => Some(Self::KEUserMsgAbilitiesChanged),
20967            "k_EUserMsg_RecentDamageSummary" => Some(Self::KEUserMsgRecentDamageSummary),
20968            "k_EUserMsg_SpectatorTeamChanged" => {
20969                Some(Self::KEUserMsgSpectatorTeamChanged)
20970            }
20971            "k_EUserMsg_ChatWheel" => Some(Self::KEUserMsgChatWheel),
20972            "k_EUserMsg_GoldHistory" => Some(Self::KEUserMsgGoldHistory),
20973            "k_EUserMsg_ChatMsg" => Some(Self::KEUserMsgChatMsg),
20974            "k_EUserMsg_QuickResponse" => Some(Self::KEUserMsgQuickResponse),
20975            "k_EUserMsg_PostMatchDetails" => Some(Self::KEUserMsgPostMatchDetails),
20976            "k_EUserMsg_ChatEvent" => Some(Self::KEUserMsgChatEvent),
20977            "k_EUserMsg_AbilityInterrupted" => Some(Self::KEUserMsgAbilityInterrupted),
20978            "k_EUserMsg_HeroKilled" => Some(Self::KEUserMsgHeroKilled),
20979            "k_EUserMsg_ReturnIdol" => Some(Self::KEUserMsgReturnIdol),
20980            "k_EUserMsg_SetClientCameraAngles" => {
20981                Some(Self::KEUserMsgSetClientCameraAngles)
20982            }
20983            "k_EUserMsg_MapLine" => Some(Self::KEUserMsgMapLine),
20984            "k_EUserMsg_BulletHit" => Some(Self::KEUserMsgBulletHit),
20985            "k_EUserMsg_ObjectiveMask" => Some(Self::KEUserMsgObjectiveMask),
20986            "k_EUserMsg_ModifierApplied" => Some(Self::KEUserMsgModifierApplied),
20987            "k_EUserMsg_CameraController" => Some(Self::KEUserMsgCameraController),
20988            "k_EUserMsg_AuraModifierApplied" => Some(Self::KEUserMsgAuraModifierApplied),
20989            "k_EUserMsg_ObstructedShotFired" => Some(Self::KEUserMsgObstructedShotFired),
20990            "k_EUserMsg_AbilityLateFailure" => Some(Self::KEUserMsgAbilityLateFailure),
20991            "k_EUserMsg_AbilityPing" => Some(Self::KEUserMsgAbilityPing),
20992            "k_EUserMsg_PostProcessingAnim" => Some(Self::KEUserMsgPostProcessingAnim),
20993            "k_EUserMsg_DeathReplayData" => Some(Self::KEUserMsgDeathReplayData),
20994            "k_EUserMsg_PlayerLifetimeStatInfo" => {
20995                Some(Self::KEUserMsgPlayerLifetimeStatInfo)
20996            }
20997            "k_EUserMsg_ForceShopClosed" => Some(Self::KEUserMsgForceShopClosed),
20998            "k_EUserMsg_StaminaConsumed" => Some(Self::KEUserMsgStaminaConsumed),
20999            "k_EUserMsg_AbilityNotify" => Some(Self::KEUserMsgAbilityNotify),
21000            "k_EUserMsg_GetDamageStatsResponse" => {
21001                Some(Self::KEUserMsgGetDamageStatsResponse)
21002            }
21003            "k_EUserMsg_ParticipantStartSoundEvent" => {
21004                Some(Self::KEUserMsgParticipantStartSoundEvent)
21005            }
21006            "k_EUserMsg_ParticipantStopSoundEvent" => {
21007                Some(Self::KEUserMsgParticipantStopSoundEvent)
21008            }
21009            "k_EUserMsg_ParticipantStopSoundEventHash" => {
21010                Some(Self::KEUserMsgParticipantStopSoundEventHash)
21011            }
21012            "k_EUserMsg_ParticipantSetSoundEventParams" => {
21013                Some(Self::KEUserMsgParticipantSetSoundEventParams)
21014            }
21015            "k_EUserMsg_ParticipantSetLibraryStackFields" => {
21016                Some(Self::KEUserMsgParticipantSetLibraryStackFields)
21017            }
21018            "k_EUserMsg_CurrencyChanged" => Some(Self::KEUserMsgCurrencyChanged),
21019            "k_EUserMsg_GameOver" => Some(Self::KEUserMsgGameOver),
21020            "k_EUserMsg_BossKilled" => Some(Self::KEUserMsgBossKilled),
21021            "k_EUserMsg_BossDamaged" => Some(Self::KEUserMsgBossDamaged),
21022            "k_EUserMsg_MidBossSpawned" => Some(Self::KEUserMsgMidBossSpawned),
21023            "k_EUserMsg_RejuvStatus" => Some(Self::KEUserMsgRejuvStatus),
21024            "k_EUserMsg_KillStreak" => Some(Self::KEUserMsgKillStreak),
21025            "k_EUserMsg_TeamMsg" => Some(Self::KEUserMsgTeamMsg),
21026            "k_EUserMsg_PlayerRespawned" => Some(Self::KEUserMsgPlayerRespawned),
21027            "k_EUserMsg_CallCheaterVote" => Some(Self::KEUserMsgCallCheaterVote),
21028            "k_EUserMsg_MeleeHit" => Some(Self::KEUserMsgMeleeHit),
21029            "k_EUserMsg_FlexSlotUnlocked" => Some(Self::KEUserMsgFlexSlotUnlocked),
21030            "k_EUserMsg_SeasonalKill" => Some(Self::KEUserMsgSeasonalKill),
21031            "k_EUserMsg_AG2ParamTrigger" => Some(Self::KEUserMsgAg2ParamTrigger),
21032            "k_EUserMsg_ItemPurchaseNotification" => {
21033                Some(Self::KEUserMsgItemPurchaseNotification)
21034            }
21035            "k_EUserMsg_EntityPortalled" => Some(Self::KEUserMsgEntityPortalled),
21036            "k_EUserMsg_StreetBrawlScoring" => Some(Self::KEUserMsgStreetBrawlScoring),
21037            "k_EUserMsg_HudGameAnnouncement" => Some(Self::KEUserMsgHudGameAnnouncement),
21038            "k_EUserMsg_ItemDraftReaction" => Some(Self::KEUserMsgItemDraftReaction),
21039            "k_EUserMsg_ImportantAbilityUsed" => {
21040                Some(Self::KEUserMsgImportantAbilityUsed)
21041            }
21042            "k_EUserMsg_BannedHeroes" => Some(Self::KEUserMsgBannedHeroes),
21043            _ => None,
21044        }
21045    }
21046}
21047#[derive(serde::Serialize, serde::Deserialize)]
21048#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21049#[repr(i32)]
21050pub enum CitadelEntityMessageIds {
21051    KEEntityMsgBreakablePropSpawnDebris = 500,
21052}
21053impl CitadelEntityMessageIds {
21054    /// String value of the enum field names used in the ProtoBuf definition.
21055    ///
21056    /// The values are not transformed in any way and thus are considered stable
21057    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21058    pub fn as_str_name(&self) -> &'static str {
21059        match self {
21060            Self::KEEntityMsgBreakablePropSpawnDebris => {
21061                "k_EEntityMsg_BreakablePropSpawnDebris"
21062            }
21063        }
21064    }
21065    /// Creates an enum from field names used in the ProtoBuf definition.
21066    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21067        match value {
21068            "k_EEntityMsg_BreakablePropSpawnDebris" => {
21069                Some(Self::KEEntityMsgBreakablePropSpawnDebris)
21070            }
21071            _ => None,
21072        }
21073    }
21074}
21075#[derive(serde::Serialize, serde::Deserialize)]
21076#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21077#[repr(i32)]
21078pub enum ChatMsgPingMarkerInfo {
21079    KEPingMarkerInfoShowMarkerAndSound = 0,
21080    KEPingMarkerInfoShowMarkerOnSender = 1,
21081    KEPingMarkerInfoHideMarkerAndSound = 2,
21082    KEPingMarkerInfoOnlyShowMarker = 3,
21083    KEPingMarkerInfoOnlyPlaySound = 4,
21084    KEPingMarkerInfoOnlyMiniMap = 5,
21085}
21086impl ChatMsgPingMarkerInfo {
21087    /// String value of the enum field names used in the ProtoBuf definition.
21088    ///
21089    /// The values are not transformed in any way and thus are considered stable
21090    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21091    pub fn as_str_name(&self) -> &'static str {
21092        match self {
21093            Self::KEPingMarkerInfoShowMarkerAndSound => {
21094                "k_EPingMarkerInfo_ShowMarkerAndSound"
21095            }
21096            Self::KEPingMarkerInfoShowMarkerOnSender => {
21097                "k_EPingMarkerInfo_ShowMarkerOnSender"
21098            }
21099            Self::KEPingMarkerInfoHideMarkerAndSound => {
21100                "k_EPingMarkerInfo_HideMarkerAndSound"
21101            }
21102            Self::KEPingMarkerInfoOnlyShowMarker => "k_EPingMarkerInfo_OnlyShowMarker",
21103            Self::KEPingMarkerInfoOnlyPlaySound => "k_EPingMarkerInfo_OnlyPlaySound",
21104            Self::KEPingMarkerInfoOnlyMiniMap => "k_EPingMarkerInfo_OnlyMiniMap",
21105        }
21106    }
21107    /// Creates an enum from field names used in the ProtoBuf definition.
21108    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21109        match value {
21110            "k_EPingMarkerInfo_ShowMarkerAndSound" => {
21111                Some(Self::KEPingMarkerInfoShowMarkerAndSound)
21112            }
21113            "k_EPingMarkerInfo_ShowMarkerOnSender" => {
21114                Some(Self::KEPingMarkerInfoShowMarkerOnSender)
21115            }
21116            "k_EPingMarkerInfo_HideMarkerAndSound" => {
21117                Some(Self::KEPingMarkerInfoHideMarkerAndSound)
21118            }
21119            "k_EPingMarkerInfo_OnlyShowMarker" => {
21120                Some(Self::KEPingMarkerInfoOnlyShowMarker)
21121            }
21122            "k_EPingMarkerInfo_OnlyPlaySound" => {
21123                Some(Self::KEPingMarkerInfoOnlyPlaySound)
21124            }
21125            "k_EPingMarkerInfo_OnlyMiniMap" => Some(Self::KEPingMarkerInfoOnlyMiniMap),
21126            _ => None,
21127        }
21128    }
21129}
21130#[derive(serde::Serialize, serde::Deserialize)]
21131#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21132#[repr(i32)]
21133pub enum CameraOperation {
21134    KECameraOpMaintain = 2,
21135    KECameraOpApproach = 3,
21136    KECameraOpSpring = 4,
21137    KECameraOpLerp = 5,
21138    KECameraOpLag = 6,
21139}
21140impl CameraOperation {
21141    /// String value of the enum field names used in the ProtoBuf definition.
21142    ///
21143    /// The values are not transformed in any way and thus are considered stable
21144    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21145    pub fn as_str_name(&self) -> &'static str {
21146        match self {
21147            Self::KECameraOpMaintain => "k_ECameraOp_Maintain",
21148            Self::KECameraOpApproach => "k_ECameraOp_Approach",
21149            Self::KECameraOpSpring => "k_ECameraOp_Spring",
21150            Self::KECameraOpLerp => "k_ECameraOp_Lerp",
21151            Self::KECameraOpLag => "k_ECameraOp_Lag",
21152        }
21153    }
21154    /// Creates an enum from field names used in the ProtoBuf definition.
21155    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21156        match value {
21157            "k_ECameraOp_Maintain" => Some(Self::KECameraOpMaintain),
21158            "k_ECameraOp_Approach" => Some(Self::KECameraOpApproach),
21159            "k_ECameraOp_Spring" => Some(Self::KECameraOpSpring),
21160            "k_ECameraOp_Lerp" => Some(Self::KECameraOpLerp),
21161            "k_ECameraOp_Lag" => Some(Self::KECameraOpLag),
21162            _ => None,
21163        }
21164    }
21165}
21166#[derive(serde::Serialize, serde::Deserialize)]
21167#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21168#[repr(i32)]
21169pub enum CameraParam {
21170    KEParamClearAllOps = 0,
21171    KEParamClearAllOpsForContext = 1,
21172    KEParamDistance = 2,
21173    KEParamFov = 3,
21174    KEParamTargetPosition = 4,
21175    KEParamVertOffset = 5,
21176    KEParamHorizOffset = 6,
21177}
21178impl CameraParam {
21179    /// String value of the enum field names used in the ProtoBuf definition.
21180    ///
21181    /// The values are not transformed in any way and thus are considered stable
21182    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21183    pub fn as_str_name(&self) -> &'static str {
21184        match self {
21185            Self::KEParamClearAllOps => "k_EParam_ClearAllOps",
21186            Self::KEParamClearAllOpsForContext => "k_EParam_ClearAllOpsForContext",
21187            Self::KEParamDistance => "k_EParam_Distance",
21188            Self::KEParamFov => "k_EParam_FOV",
21189            Self::KEParamTargetPosition => "k_EParam_TargetPosition",
21190            Self::KEParamVertOffset => "k_EParam_VertOffset",
21191            Self::KEParamHorizOffset => "k_EParam_HorizOffset",
21192        }
21193    }
21194    /// Creates an enum from field names used in the ProtoBuf definition.
21195    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21196        match value {
21197            "k_EParam_ClearAllOps" => Some(Self::KEParamClearAllOps),
21198            "k_EParam_ClearAllOpsForContext" => Some(Self::KEParamClearAllOpsForContext),
21199            "k_EParam_Distance" => Some(Self::KEParamDistance),
21200            "k_EParam_FOV" => Some(Self::KEParamFov),
21201            "k_EParam_TargetPosition" => Some(Self::KEParamTargetPosition),
21202            "k_EParam_VertOffset" => Some(Self::KEParamVertOffset),
21203            "k_EParam_HorizOffset" => Some(Self::KEParamHorizOffset),
21204            _ => None,
21205        }
21206    }
21207}
21208#[derive(serde::Serialize, serde::Deserialize)]
21209#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21210#[repr(i32)]
21211pub enum CameraParamMode {
21212    KEParamModeAllowInOneContext = 0,
21213    KEParamModeAllowInMultipleContexts = 1,
21214}
21215impl CameraParamMode {
21216    /// String value of the enum field names used in the ProtoBuf definition.
21217    ///
21218    /// The values are not transformed in any way and thus are considered stable
21219    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21220    pub fn as_str_name(&self) -> &'static str {
21221        match self {
21222            Self::KEParamModeAllowInOneContext => "k_EParamMode_AllowInOneContext",
21223            Self::KEParamModeAllowInMultipleContexts => {
21224                "k_EParamMode_AllowInMultipleContexts"
21225            }
21226        }
21227    }
21228    /// Creates an enum from field names used in the ProtoBuf definition.
21229    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21230        match value {
21231            "k_EParamMode_AllowInOneContext" => Some(Self::KEParamModeAllowInOneContext),
21232            "k_EParamMode_AllowInMultipleContexts" => {
21233                Some(Self::KEParamModeAllowInMultipleContexts)
21234            }
21235            _ => None,
21236        }
21237    }
21238}
21239#[derive(serde::Serialize, serde::Deserialize)]
21240#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21241#[repr(i32)]
21242pub enum CameraAction {
21243    KEActionAddOp = 0,
21244    KEActionClearAllOps = 1,
21245    KEActionClearOpsForContext = 2,
21246}
21247impl CameraAction {
21248    /// String value of the enum field names used in the ProtoBuf definition.
21249    ///
21250    /// The values are not transformed in any way and thus are considered stable
21251    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21252    pub fn as_str_name(&self) -> &'static str {
21253        match self {
21254            Self::KEActionAddOp => "k_EAction_AddOp",
21255            Self::KEActionClearAllOps => "k_EAction_ClearAllOps",
21256            Self::KEActionClearOpsForContext => "k_EAction_ClearOpsForContext",
21257        }
21258    }
21259    /// Creates an enum from field names used in the ProtoBuf definition.
21260    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21261        match value {
21262            "k_EAction_AddOp" => Some(Self::KEActionAddOp),
21263            "k_EAction_ClearAllOps" => Some(Self::KEActionClearAllOps),
21264            "k_EAction_ClearOpsForContext" => Some(Self::KEActionClearOpsForContext),
21265            _ => None,
21266        }
21267    }
21268}
21269#[derive(serde::Serialize, serde::Deserialize)]
21270#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21271#[repr(i32)]
21272pub enum ECitadelChatMessage {
21273    CitadelChatMessageUnpauseCountdown = 1,
21274    CitadelChatMessageUnpaused = 2,
21275    CitadelChatMessageAutoUnpaused = 3,
21276    CitadelChatMessagePauseCountdown = 4,
21277    CitadelChatMessagePaused = 5,
21278    CitadelChatMessageYoupaused = 6,
21279    CitadelChatMessageCantpause = 7,
21280    CitadelChatMessageCantunpauseteam = 8,
21281    CitadelChatMessageNopausesleft = 9,
21282    CitadelChatMessageCantpauseyet = 10,
21283    CitadelChatMessagePregameCountdown = 11,
21284    CitadelChatMessageNoteampausesleft = 12,
21285    CitadelChatMessageCommsRestricted = 13,
21286}
21287impl ECitadelChatMessage {
21288    /// String value of the enum field names used in the ProtoBuf definition.
21289    ///
21290    /// The values are not transformed in any way and thus are considered stable
21291    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21292    pub fn as_str_name(&self) -> &'static str {
21293        match self {
21294            Self::CitadelChatMessageUnpauseCountdown => {
21295                "CITADEL_CHAT_MESSAGE_UNPAUSE_COUNTDOWN"
21296            }
21297            Self::CitadelChatMessageUnpaused => "CITADEL_CHAT_MESSAGE_UNPAUSED",
21298            Self::CitadelChatMessageAutoUnpaused => "CITADEL_CHAT_MESSAGE_AUTO_UNPAUSED",
21299            Self::CitadelChatMessagePauseCountdown => {
21300                "CITADEL_CHAT_MESSAGE_PAUSE_COUNTDOWN"
21301            }
21302            Self::CitadelChatMessagePaused => "CITADEL_CHAT_MESSAGE_PAUSED",
21303            Self::CitadelChatMessageYoupaused => "CITADEL_CHAT_MESSAGE_YOUPAUSED",
21304            Self::CitadelChatMessageCantpause => "CITADEL_CHAT_MESSAGE_CANTPAUSE",
21305            Self::CitadelChatMessageCantunpauseteam => {
21306                "CITADEL_CHAT_MESSAGE_CANTUNPAUSETEAM"
21307            }
21308            Self::CitadelChatMessageNopausesleft => "CITADEL_CHAT_MESSAGE_NOPAUSESLEFT",
21309            Self::CitadelChatMessageCantpauseyet => "CITADEL_CHAT_MESSAGE_CANTPAUSEYET",
21310            Self::CitadelChatMessagePregameCountdown => {
21311                "CITADEL_CHAT_MESSAGE_PREGAME_COUNTDOWN"
21312            }
21313            Self::CitadelChatMessageNoteampausesleft => {
21314                "CITADEL_CHAT_MESSAGE_NOTEAMPAUSESLEFT"
21315            }
21316            Self::CitadelChatMessageCommsRestricted => {
21317                "CITADEL_CHAT_MESSAGE_COMMS_RESTRICTED"
21318            }
21319        }
21320    }
21321    /// Creates an enum from field names used in the ProtoBuf definition.
21322    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21323        match value {
21324            "CITADEL_CHAT_MESSAGE_UNPAUSE_COUNTDOWN" => {
21325                Some(Self::CitadelChatMessageUnpauseCountdown)
21326            }
21327            "CITADEL_CHAT_MESSAGE_UNPAUSED" => Some(Self::CitadelChatMessageUnpaused),
21328            "CITADEL_CHAT_MESSAGE_AUTO_UNPAUSED" => {
21329                Some(Self::CitadelChatMessageAutoUnpaused)
21330            }
21331            "CITADEL_CHAT_MESSAGE_PAUSE_COUNTDOWN" => {
21332                Some(Self::CitadelChatMessagePauseCountdown)
21333            }
21334            "CITADEL_CHAT_MESSAGE_PAUSED" => Some(Self::CitadelChatMessagePaused),
21335            "CITADEL_CHAT_MESSAGE_YOUPAUSED" => Some(Self::CitadelChatMessageYoupaused),
21336            "CITADEL_CHAT_MESSAGE_CANTPAUSE" => Some(Self::CitadelChatMessageCantpause),
21337            "CITADEL_CHAT_MESSAGE_CANTUNPAUSETEAM" => {
21338                Some(Self::CitadelChatMessageCantunpauseteam)
21339            }
21340            "CITADEL_CHAT_MESSAGE_NOPAUSESLEFT" => {
21341                Some(Self::CitadelChatMessageNopausesleft)
21342            }
21343            "CITADEL_CHAT_MESSAGE_CANTPAUSEYET" => {
21344                Some(Self::CitadelChatMessageCantpauseyet)
21345            }
21346            "CITADEL_CHAT_MESSAGE_PREGAME_COUNTDOWN" => {
21347                Some(Self::CitadelChatMessagePregameCountdown)
21348            }
21349            "CITADEL_CHAT_MESSAGE_NOTEAMPAUSESLEFT" => {
21350                Some(Self::CitadelChatMessageNoteampausesleft)
21351            }
21352            "CITADEL_CHAT_MESSAGE_COMMS_RESTRICTED" => {
21353                Some(Self::CitadelChatMessageCommsRestricted)
21354            }
21355            _ => None,
21356        }
21357    }
21358}
21359#[derive(serde::Serialize, serde::Deserialize)]
21360#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21361#[repr(i32)]
21362pub enum PostProcessingGameStates {
21363    PostProcStateKilled = 0,
21364    PostProcStateBlack = 1,
21365    PostProcStateDoormanHotelVictim = 2,
21366    PostProcStateBlinded = 3,
21367    PostProcStateDrifterDarknessCaster = 4,
21368    PostProcStateMatchIntro = 5,
21369}
21370impl PostProcessingGameStates {
21371    /// String value of the enum field names used in the ProtoBuf definition.
21372    ///
21373    /// The values are not transformed in any way and thus are considered stable
21374    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21375    pub fn as_str_name(&self) -> &'static str {
21376        match self {
21377            Self::PostProcStateKilled => "PostProcState_Killed",
21378            Self::PostProcStateBlack => "PostProcState_Black",
21379            Self::PostProcStateDoormanHotelVictim => "PostProcState_DoormanHotelVictim",
21380            Self::PostProcStateBlinded => "PostProcState_Blinded",
21381            Self::PostProcStateDrifterDarknessCaster => {
21382                "PostProcState_DrifterDarknessCaster"
21383            }
21384            Self::PostProcStateMatchIntro => "PostProcState_MatchIntro",
21385        }
21386    }
21387    /// Creates an enum from field names used in the ProtoBuf definition.
21388    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21389        match value {
21390            "PostProcState_Killed" => Some(Self::PostProcStateKilled),
21391            "PostProcState_Black" => Some(Self::PostProcStateBlack),
21392            "PostProcState_DoormanHotelVictim" => {
21393                Some(Self::PostProcStateDoormanHotelVictim)
21394            }
21395            "PostProcState_Blinded" => Some(Self::PostProcStateBlinded),
21396            "PostProcState_DrifterDarknessCaster" => {
21397                Some(Self::PostProcStateDrifterDarknessCaster)
21398            }
21399            "PostProcState_MatchIntro" => Some(Self::PostProcStateMatchIntro),
21400            _ => None,
21401        }
21402    }
21403}
21404#[derive(serde::Serialize, serde::Deserialize)]
21405#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21406pub struct CClientMsgCustomGameEvent {
21407    #[prost(string, optional, tag = "1")]
21408    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
21409    #[prost(bytes = "vec", optional, tag = "2")]
21410    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21411}
21412#[derive(serde::Serialize, serde::Deserialize)]
21413#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21414pub struct CClientMsgCustomGameEventBounce {
21415    #[prost(string, optional, tag = "1")]
21416    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
21417    #[prost(bytes = "vec", optional, tag = "2")]
21418    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21419    #[prost(int32, optional, tag = "3", default = "-1")]
21420    pub player_slot: ::core::option::Option<i32>,
21421}
21422#[derive(serde::Serialize, serde::Deserialize)]
21423#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21424pub struct CClientMsgClientUiEvent {
21425    #[prost(enumeration = "EClientUiEvent", optional, tag = "1", default = "Invalid")]
21426    pub event: ::core::option::Option<i32>,
21427    #[prost(uint32, optional, tag = "2")]
21428    pub ent_ehandle: ::core::option::Option<u32>,
21429    #[prost(uint32, optional, tag = "3")]
21430    pub client_ehandle: ::core::option::Option<u32>,
21431    #[prost(string, optional, tag = "4")]
21432    pub data1: ::core::option::Option<::prost::alloc::string::String>,
21433    #[prost(string, optional, tag = "5")]
21434    pub data2: ::core::option::Option<::prost::alloc::string::String>,
21435}
21436#[derive(serde::Serialize, serde::Deserialize)]
21437#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
21438pub struct CClientMsgDevPaletteVisibilityChangedEvent {
21439    #[prost(bool, optional, tag = "1")]
21440    pub visible: ::core::option::Option<bool>,
21441}
21442#[derive(serde::Serialize, serde::Deserialize)]
21443#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
21444pub struct CClientMsgWorldUiControllerHasPanelChangedEvent {
21445    #[prost(bool, optional, tag = "1")]
21446    pub has_panel: ::core::option::Option<bool>,
21447    #[prost(uint32, optional, tag = "2")]
21448    pub client_ehandle: ::core::option::Option<u32>,
21449    #[prost(uint32, optional, tag = "3")]
21450    pub literal_hand_type: ::core::option::Option<u32>,
21451}
21452#[derive(serde::Serialize, serde::Deserialize)]
21453#[derive(Clone, Copy, PartialEq, ::prost::Message)]
21454pub struct CClientMsgRotateAnchor {
21455    #[prost(float, optional, tag = "1")]
21456    pub angle: ::core::option::Option<f32>,
21457}
21458#[derive(serde::Serialize, serde::Deserialize)]
21459#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
21460pub struct CClientMsgListenForResponseFound {
21461    #[prost(int32, optional, tag = "1", default = "-1")]
21462    pub player_slot: ::core::option::Option<i32>,
21463}
21464#[derive(serde::Serialize, serde::Deserialize)]
21465#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21466#[repr(i32)]
21467pub enum EBaseClientMessages {
21468    CmCustomGameEvent = 280,
21469    CmCustomGameEventBounce = 281,
21470    CmClientUiEvent = 282,
21471    CmDevPaletteVisibilityChanged = 283,
21472    CmWorldUiControllerHasPanelChanged = 284,
21473    CmRotateAnchor = 285,
21474    CmListenForResponseFound = 286,
21475    CmMaxBase = 300,
21476}
21477impl EBaseClientMessages {
21478    /// String value of the enum field names used in the ProtoBuf definition.
21479    ///
21480    /// The values are not transformed in any way and thus are considered stable
21481    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21482    pub fn as_str_name(&self) -> &'static str {
21483        match self {
21484            Self::CmCustomGameEvent => "CM_CustomGameEvent",
21485            Self::CmCustomGameEventBounce => "CM_CustomGameEventBounce",
21486            Self::CmClientUiEvent => "CM_ClientUIEvent",
21487            Self::CmDevPaletteVisibilityChanged => "CM_DevPaletteVisibilityChanged",
21488            Self::CmWorldUiControllerHasPanelChanged => {
21489                "CM_WorldUIControllerHasPanelChanged"
21490            }
21491            Self::CmRotateAnchor => "CM_RotateAnchor",
21492            Self::CmListenForResponseFound => "CM_ListenForResponseFound",
21493            Self::CmMaxBase => "CM_MAX_BASE",
21494        }
21495    }
21496    /// Creates an enum from field names used in the ProtoBuf definition.
21497    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21498        match value {
21499            "CM_CustomGameEvent" => Some(Self::CmCustomGameEvent),
21500            "CM_CustomGameEventBounce" => Some(Self::CmCustomGameEventBounce),
21501            "CM_ClientUIEvent" => Some(Self::CmClientUiEvent),
21502            "CM_DevPaletteVisibilityChanged" => Some(Self::CmDevPaletteVisibilityChanged),
21503            "CM_WorldUIControllerHasPanelChanged" => {
21504                Some(Self::CmWorldUiControllerHasPanelChanged)
21505            }
21506            "CM_RotateAnchor" => Some(Self::CmRotateAnchor),
21507            "CM_ListenForResponseFound" => Some(Self::CmListenForResponseFound),
21508            "CM_MAX_BASE" => Some(Self::CmMaxBase),
21509            _ => None,
21510        }
21511    }
21512}
21513#[derive(serde::Serialize, serde::Deserialize)]
21514#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21515#[repr(i32)]
21516pub enum EClientUiEvent {
21517    Invalid = 0,
21518    DialogFinished = 1,
21519    FireOutput = 2,
21520}
21521impl EClientUiEvent {
21522    /// String value of the enum field names used in the ProtoBuf definition.
21523    ///
21524    /// The values are not transformed in any way and thus are considered stable
21525    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21526    pub fn as_str_name(&self) -> &'static str {
21527        match self {
21528            Self::Invalid => "EClientUIEvent_Invalid",
21529            Self::DialogFinished => "EClientUIEvent_DialogFinished",
21530            Self::FireOutput => "EClientUIEvent_FireOutput",
21531        }
21532    }
21533    /// Creates an enum from field names used in the ProtoBuf definition.
21534    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21535        match value {
21536            "EClientUIEvent_Invalid" => Some(Self::Invalid),
21537            "EClientUIEvent_DialogFinished" => Some(Self::DialogFinished),
21538            "EClientUIEvent_FireOutput" => Some(Self::FireOutput),
21539            _ => None,
21540        }
21541    }
21542}
21543#[derive(serde::Serialize, serde::Deserialize)]
21544#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21545pub struct CDemoFileHeader {
21546    #[prost(string, required, tag = "1")]
21547    pub demo_file_stamp: ::prost::alloc::string::String,
21548    #[prost(int32, optional, tag = "2")]
21549    pub patch_version: ::core::option::Option<i32>,
21550    #[prost(string, optional, tag = "3")]
21551    pub server_name: ::core::option::Option<::prost::alloc::string::String>,
21552    #[prost(string, optional, tag = "4")]
21553    pub client_name: ::core::option::Option<::prost::alloc::string::String>,
21554    #[prost(string, optional, tag = "5")]
21555    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
21556    #[prost(string, optional, tag = "6")]
21557    pub game_directory: ::core::option::Option<::prost::alloc::string::String>,
21558    #[prost(int32, optional, tag = "7")]
21559    pub fullpackets_version: ::core::option::Option<i32>,
21560    #[prost(bool, optional, tag = "8")]
21561    pub allow_clientside_entities: ::core::option::Option<bool>,
21562    #[prost(bool, optional, tag = "9")]
21563    pub allow_clientside_particles: ::core::option::Option<bool>,
21564    #[prost(string, optional, tag = "10")]
21565    pub addons: ::core::option::Option<::prost::alloc::string::String>,
21566    #[prost(string, optional, tag = "11")]
21567    pub demo_version_name: ::core::option::Option<::prost::alloc::string::String>,
21568    #[prost(string, optional, tag = "12")]
21569    pub demo_version_guid: ::core::option::Option<::prost::alloc::string::String>,
21570    #[prost(int32, optional, tag = "13")]
21571    pub build_num: ::core::option::Option<i32>,
21572    #[prost(string, optional, tag = "14")]
21573    pub game: ::core::option::Option<::prost::alloc::string::String>,
21574    #[prost(int32, optional, tag = "15")]
21575    pub server_start_tick: ::core::option::Option<i32>,
21576}
21577#[derive(serde::Serialize, serde::Deserialize)]
21578#[derive(Clone, PartialEq, ::prost::Message)]
21579pub struct CGameInfo {
21580    #[prost(message, optional, tag = "4")]
21581    pub dota: ::core::option::Option<c_game_info::CDotaGameInfo>,
21582    #[prost(message, optional, tag = "5")]
21583    pub cs: ::core::option::Option<c_game_info::CcsGameInfo>,
21584}
21585/// Nested message and enum types in `CGameInfo`.
21586pub mod c_game_info {
21587    #[derive(serde::Serialize, serde::Deserialize)]
21588    #[derive(Clone, PartialEq, ::prost::Message)]
21589    pub struct CDotaGameInfo {
21590        #[prost(uint64, optional, tag = "1")]
21591        pub match_id: ::core::option::Option<u64>,
21592        #[prost(int32, optional, tag = "2")]
21593        pub game_mode: ::core::option::Option<i32>,
21594        #[prost(int32, optional, tag = "3")]
21595        pub game_winner: ::core::option::Option<i32>,
21596        #[prost(message, repeated, tag = "4")]
21597        pub player_info: ::prost::alloc::vec::Vec<c_dota_game_info::CPlayerInfo>,
21598        #[prost(uint32, optional, tag = "5")]
21599        pub leagueid: ::core::option::Option<u32>,
21600        #[prost(message, repeated, tag = "6")]
21601        pub picks_bans: ::prost::alloc::vec::Vec<c_dota_game_info::CHeroSelectEvent>,
21602        #[prost(uint32, optional, tag = "7")]
21603        pub radiant_team_id: ::core::option::Option<u32>,
21604        #[prost(uint32, optional, tag = "8")]
21605        pub dire_team_id: ::core::option::Option<u32>,
21606        #[prost(string, optional, tag = "9")]
21607        pub radiant_team_tag: ::core::option::Option<::prost::alloc::string::String>,
21608        #[prost(string, optional, tag = "10")]
21609        pub dire_team_tag: ::core::option::Option<::prost::alloc::string::String>,
21610        #[prost(uint32, optional, tag = "11")]
21611        pub end_time: ::core::option::Option<u32>,
21612    }
21613    /// Nested message and enum types in `CDotaGameInfo`.
21614    pub mod c_dota_game_info {
21615        #[derive(serde::Serialize, serde::Deserialize)]
21616        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21617        pub struct CPlayerInfo {
21618            #[prost(string, optional, tag = "1")]
21619            pub hero_name: ::core::option::Option<::prost::alloc::string::String>,
21620            #[prost(string, optional, tag = "2")]
21621            pub player_name: ::core::option::Option<::prost::alloc::string::String>,
21622            #[prost(bool, optional, tag = "3")]
21623            pub is_fake_client: ::core::option::Option<bool>,
21624            #[prost(uint64, optional, tag = "4")]
21625            pub steamid: ::core::option::Option<u64>,
21626            #[prost(int32, optional, tag = "5")]
21627            pub game_team: ::core::option::Option<i32>,
21628        }
21629        #[derive(serde::Serialize, serde::Deserialize)]
21630        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
21631        pub struct CHeroSelectEvent {
21632            #[prost(bool, optional, tag = "1")]
21633            pub is_pick: ::core::option::Option<bool>,
21634            #[prost(uint32, optional, tag = "2")]
21635            pub team: ::core::option::Option<u32>,
21636            #[prost(int32, optional, tag = "3")]
21637            pub hero_id: ::core::option::Option<i32>,
21638        }
21639    }
21640    #[derive(serde::Serialize, serde::Deserialize)]
21641    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21642    pub struct CcsGameInfo {
21643        #[prost(int32, repeated, packed = "false", tag = "1")]
21644        pub round_start_ticks: ::prost::alloc::vec::Vec<i32>,
21645    }
21646}
21647#[derive(serde::Serialize, serde::Deserialize)]
21648#[derive(Clone, PartialEq, ::prost::Message)]
21649pub struct CDemoFileInfo {
21650    #[prost(float, optional, tag = "1")]
21651    pub playback_time: ::core::option::Option<f32>,
21652    #[prost(int32, optional, tag = "2")]
21653    pub playback_ticks: ::core::option::Option<i32>,
21654    #[prost(int32, optional, tag = "3")]
21655    pub playback_frames: ::core::option::Option<i32>,
21656    #[prost(message, optional, tag = "4")]
21657    pub game_info: ::core::option::Option<CGameInfo>,
21658}
21659#[derive(serde::Serialize, serde::Deserialize)]
21660#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21661pub struct CDemoPacket {
21662    #[prost(bytes = "vec", optional, tag = "3")]
21663    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21664}
21665#[derive(serde::Serialize, serde::Deserialize)]
21666#[derive(Clone, PartialEq, ::prost::Message)]
21667pub struct CDemoFullPacket {
21668    #[prost(message, optional, tag = "1")]
21669    pub string_table: ::core::option::Option<CDemoStringTables>,
21670    #[prost(message, optional, tag = "2")]
21671    pub packet: ::core::option::Option<CDemoPacket>,
21672}
21673#[derive(serde::Serialize, serde::Deserialize)]
21674#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21675pub struct CDemoSaveGame {
21676    #[prost(bytes = "vec", optional, tag = "1")]
21677    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21678    #[prost(fixed64, optional, tag = "2")]
21679    pub steam_id: ::core::option::Option<u64>,
21680    #[prost(fixed64, optional, tag = "3")]
21681    pub signature: ::core::option::Option<u64>,
21682    #[prost(int32, optional, tag = "4")]
21683    pub version: ::core::option::Option<i32>,
21684}
21685#[derive(serde::Serialize, serde::Deserialize)]
21686#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
21687pub struct CDemoSyncTick {}
21688#[derive(serde::Serialize, serde::Deserialize)]
21689#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21690pub struct CDemoConsoleCmd {
21691    #[prost(string, optional, tag = "1")]
21692    pub cmdstring: ::core::option::Option<::prost::alloc::string::String>,
21693}
21694#[derive(serde::Serialize, serde::Deserialize)]
21695#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21696pub struct CDemoSendTables {
21697    #[prost(bytes = "vec", optional, tag = "1")]
21698    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21699}
21700#[derive(serde::Serialize, serde::Deserialize)]
21701#[derive(Clone, PartialEq, ::prost::Message)]
21702pub struct CDemoClassInfo {
21703    #[prost(message, repeated, tag = "1")]
21704    pub classes: ::prost::alloc::vec::Vec<c_demo_class_info::ClassT>,
21705}
21706/// Nested message and enum types in `CDemoClassInfo`.
21707pub mod c_demo_class_info {
21708    #[derive(serde::Serialize, serde::Deserialize)]
21709    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21710    pub struct ClassT {
21711        #[prost(int32, optional, tag = "1")]
21712        pub class_id: ::core::option::Option<i32>,
21713        #[prost(string, optional, tag = "2")]
21714        pub network_name: ::core::option::Option<::prost::alloc::string::String>,
21715        #[prost(string, optional, tag = "3")]
21716        pub table_name: ::core::option::Option<::prost::alloc::string::String>,
21717    }
21718}
21719#[derive(serde::Serialize, serde::Deserialize)]
21720#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21721pub struct CDemoCustomData {
21722    #[prost(int32, optional, tag = "1")]
21723    pub callback_index: ::core::option::Option<i32>,
21724    #[prost(bytes = "vec", optional, tag = "2")]
21725    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21726}
21727#[derive(serde::Serialize, serde::Deserialize)]
21728#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21729pub struct CDemoCustomDataCallbacks {
21730    #[prost(string, repeated, tag = "1")]
21731    pub save_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
21732}
21733#[derive(serde::Serialize, serde::Deserialize)]
21734#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21735pub struct CDemoAnimationHeader {
21736    #[prost(sint32, optional, tag = "1")]
21737    pub entity_id: ::core::option::Option<i32>,
21738    #[prost(int32, optional, tag = "2")]
21739    pub tick: ::core::option::Option<i32>,
21740    #[prost(bytes = "vec", optional, tag = "3")]
21741    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21742}
21743#[derive(serde::Serialize, serde::Deserialize)]
21744#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21745pub struct CDemoAnimationData {
21746    #[prost(sint32, optional, tag = "1")]
21747    pub entity_id: ::core::option::Option<i32>,
21748    #[prost(int32, optional, tag = "2")]
21749    pub start_tick: ::core::option::Option<i32>,
21750    #[prost(int32, optional, tag = "3")]
21751    pub end_tick: ::core::option::Option<i32>,
21752    #[prost(bytes = "vec", optional, tag = "4")]
21753    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21754    #[prost(int64, optional, tag = "5")]
21755    pub data_checksum: ::core::option::Option<i64>,
21756}
21757#[derive(serde::Serialize, serde::Deserialize)]
21758#[derive(Clone, PartialEq, ::prost::Message)]
21759pub struct CDemoStringTables {
21760    #[prost(message, repeated, tag = "1")]
21761    pub tables: ::prost::alloc::vec::Vec<c_demo_string_tables::TableT>,
21762}
21763/// Nested message and enum types in `CDemoStringTables`.
21764pub mod c_demo_string_tables {
21765    #[derive(serde::Serialize, serde::Deserialize)]
21766    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21767    pub struct ItemsT {
21768        #[prost(string, optional, tag = "1")]
21769        pub str: ::core::option::Option<::prost::alloc::string::String>,
21770        #[prost(bytes = "vec", optional, tag = "2")]
21771        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21772    }
21773    #[derive(serde::Serialize, serde::Deserialize)]
21774    #[derive(Clone, PartialEq, ::prost::Message)]
21775    pub struct TableT {
21776        #[prost(string, optional, tag = "1")]
21777        pub table_name: ::core::option::Option<::prost::alloc::string::String>,
21778        #[prost(message, repeated, tag = "2")]
21779        pub items: ::prost::alloc::vec::Vec<ItemsT>,
21780        #[prost(message, repeated, tag = "3")]
21781        pub items_clientside: ::prost::alloc::vec::Vec<ItemsT>,
21782        #[prost(int32, optional, tag = "4")]
21783        pub table_flags: ::core::option::Option<i32>,
21784    }
21785}
21786#[derive(serde::Serialize, serde::Deserialize)]
21787#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
21788pub struct CDemoStop {}
21789#[derive(serde::Serialize, serde::Deserialize)]
21790#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21791pub struct CDemoUserCmd {
21792    #[prost(int32, optional, tag = "1")]
21793    pub cmd_number: ::core::option::Option<i32>,
21794    #[prost(bytes = "vec", optional, tag = "2")]
21795    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21796}
21797#[derive(serde::Serialize, serde::Deserialize)]
21798#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21799pub struct CDemoSpawnGroups {
21800    #[prost(bytes = "vec", repeated, tag = "3")]
21801    pub msgs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
21802}
21803#[derive(serde::Serialize, serde::Deserialize)]
21804#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21805pub struct CDemoSpawnGroupsHltvBroadcast {
21806    #[prost(bytes = "vec", optional, tag = "1")]
21807    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21808}
21809#[derive(serde::Serialize, serde::Deserialize)]
21810#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21811pub struct CDemoRecovery {
21812    #[prost(message, optional, tag = "1")]
21813    pub initial_spawn_group: ::core::option::Option<
21814        c_demo_recovery::DemoInitialSpawnGroupEntry,
21815    >,
21816    #[prost(bytes = "vec", optional, tag = "2")]
21817    pub spawn_group_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
21818}
21819/// Nested message and enum types in `CDemoRecovery`.
21820pub mod c_demo_recovery {
21821    #[derive(serde::Serialize, serde::Deserialize)]
21822    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
21823    pub struct DemoInitialSpawnGroupEntry {
21824        #[prost(uint32, optional, tag = "1")]
21825        pub spawngrouphandle: ::core::option::Option<u32>,
21826        #[prost(bool, optional, tag = "2")]
21827        pub was_created: ::core::option::Option<bool>,
21828    }
21829}
21830#[derive(serde::Serialize, serde::Deserialize)]
21831#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21832#[repr(i32)]
21833pub enum EDemoCommands {
21834    DemError = -1,
21835    DemStop = 0,
21836    DemFileHeader = 1,
21837    DemFileInfo = 2,
21838    DemSyncTick = 3,
21839    DemSendTables = 4,
21840    DemClassInfo = 5,
21841    DemStringTables = 6,
21842    DemPacket = 7,
21843    DemSignonPacket = 8,
21844    DemConsoleCmd = 9,
21845    DemCustomData = 10,
21846    DemCustomDataCallbacks = 11,
21847    DemUserCmd = 12,
21848    DemFullPacket = 13,
21849    DemSaveGame = 14,
21850    DemSpawnGroups = 15,
21851    DemAnimationData = 16,
21852    DemAnimationHeader = 17,
21853    DemRecovery = 18,
21854    DemMax = 19,
21855    DemIsCompressed = 64,
21856}
21857impl EDemoCommands {
21858    /// String value of the enum field names used in the ProtoBuf definition.
21859    ///
21860    /// The values are not transformed in any way and thus are considered stable
21861    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21862    pub fn as_str_name(&self) -> &'static str {
21863        match self {
21864            Self::DemError => "DEM_Error",
21865            Self::DemStop => "DEM_Stop",
21866            Self::DemFileHeader => "DEM_FileHeader",
21867            Self::DemFileInfo => "DEM_FileInfo",
21868            Self::DemSyncTick => "DEM_SyncTick",
21869            Self::DemSendTables => "DEM_SendTables",
21870            Self::DemClassInfo => "DEM_ClassInfo",
21871            Self::DemStringTables => "DEM_StringTables",
21872            Self::DemPacket => "DEM_Packet",
21873            Self::DemSignonPacket => "DEM_SignonPacket",
21874            Self::DemConsoleCmd => "DEM_ConsoleCmd",
21875            Self::DemCustomData => "DEM_CustomData",
21876            Self::DemCustomDataCallbacks => "DEM_CustomDataCallbacks",
21877            Self::DemUserCmd => "DEM_UserCmd",
21878            Self::DemFullPacket => "DEM_FullPacket",
21879            Self::DemSaveGame => "DEM_SaveGame",
21880            Self::DemSpawnGroups => "DEM_SpawnGroups",
21881            Self::DemAnimationData => "DEM_AnimationData",
21882            Self::DemAnimationHeader => "DEM_AnimationHeader",
21883            Self::DemRecovery => "DEM_Recovery",
21884            Self::DemMax => "DEM_Max",
21885            Self::DemIsCompressed => "DEM_IsCompressed",
21886        }
21887    }
21888    /// Creates an enum from field names used in the ProtoBuf definition.
21889    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21890        match value {
21891            "DEM_Error" => Some(Self::DemError),
21892            "DEM_Stop" => Some(Self::DemStop),
21893            "DEM_FileHeader" => Some(Self::DemFileHeader),
21894            "DEM_FileInfo" => Some(Self::DemFileInfo),
21895            "DEM_SyncTick" => Some(Self::DemSyncTick),
21896            "DEM_SendTables" => Some(Self::DemSendTables),
21897            "DEM_ClassInfo" => Some(Self::DemClassInfo),
21898            "DEM_StringTables" => Some(Self::DemStringTables),
21899            "DEM_Packet" => Some(Self::DemPacket),
21900            "DEM_SignonPacket" => Some(Self::DemSignonPacket),
21901            "DEM_ConsoleCmd" => Some(Self::DemConsoleCmd),
21902            "DEM_CustomData" => Some(Self::DemCustomData),
21903            "DEM_CustomDataCallbacks" => Some(Self::DemCustomDataCallbacks),
21904            "DEM_UserCmd" => Some(Self::DemUserCmd),
21905            "DEM_FullPacket" => Some(Self::DemFullPacket),
21906            "DEM_SaveGame" => Some(Self::DemSaveGame),
21907            "DEM_SpawnGroups" => Some(Self::DemSpawnGroups),
21908            "DEM_AnimationData" => Some(Self::DemAnimationData),
21909            "DEM_AnimationHeader" => Some(Self::DemAnimationHeader),
21910            "DEM_Recovery" => Some(Self::DemRecovery),
21911            "DEM_Max" => Some(Self::DemMax),
21912            "DEM_IsCompressed" => Some(Self::DemIsCompressed),
21913            _ => None,
21914        }
21915    }
21916}
21917#[derive(serde::Serialize, serde::Deserialize)]
21918#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
21919pub struct CMsgGenericResult {
21920    #[prost(uint32, optional, tag = "1", default = "2")]
21921    pub eresult: ::core::option::Option<u32>,
21922    #[prost(string, optional, tag = "2")]
21923    pub debug_message: ::core::option::Option<::prost::alloc::string::String>,
21924}
21925#[derive(serde::Serialize, serde::Deserialize)]
21926#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21927#[repr(i32)]
21928pub enum EgcEconBaseMsg {
21929    KEMsgGcGenericResult = 2579,
21930}
21931impl EgcEconBaseMsg {
21932    /// String value of the enum field names used in the ProtoBuf definition.
21933    ///
21934    /// The values are not transformed in any way and thus are considered stable
21935    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21936    pub fn as_str_name(&self) -> &'static str {
21937        match self {
21938            Self::KEMsgGcGenericResult => "k_EMsgGCGenericResult",
21939        }
21940    }
21941    /// Creates an enum from field names used in the ProtoBuf definition.
21942    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21943        match value {
21944            "k_EMsgGCGenericResult" => Some(Self::KEMsgGcGenericResult),
21945            _ => None,
21946        }
21947    }
21948}
21949#[derive(serde::Serialize, serde::Deserialize)]
21950#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21951#[repr(i32)]
21952pub enum EgcMsgResponse {
21953    KEgcMsgResponseOk = 0,
21954    KEgcMsgResponseDenied = 1,
21955    KEgcMsgResponseServerError = 2,
21956    KEgcMsgResponseTimeout = 3,
21957    KEgcMsgResponseInvalid = 4,
21958    KEgcMsgResponseNoMatch = 5,
21959    KEgcMsgResponseUnknownError = 6,
21960    KEgcMsgResponseNotLoggedOn = 7,
21961    KEgcMsgFailedToCreate = 8,
21962}
21963impl EgcMsgResponse {
21964    /// String value of the enum field names used in the ProtoBuf definition.
21965    ///
21966    /// The values are not transformed in any way and thus are considered stable
21967    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
21968    pub fn as_str_name(&self) -> &'static str {
21969        match self {
21970            Self::KEgcMsgResponseOk => "k_EGCMsgResponseOK",
21971            Self::KEgcMsgResponseDenied => "k_EGCMsgResponseDenied",
21972            Self::KEgcMsgResponseServerError => "k_EGCMsgResponseServerError",
21973            Self::KEgcMsgResponseTimeout => "k_EGCMsgResponseTimeout",
21974            Self::KEgcMsgResponseInvalid => "k_EGCMsgResponseInvalid",
21975            Self::KEgcMsgResponseNoMatch => "k_EGCMsgResponseNoMatch",
21976            Self::KEgcMsgResponseUnknownError => "k_EGCMsgResponseUnknownError",
21977            Self::KEgcMsgResponseNotLoggedOn => "k_EGCMsgResponseNotLoggedOn",
21978            Self::KEgcMsgFailedToCreate => "k_EGCMsgFailedToCreate",
21979        }
21980    }
21981    /// Creates an enum from field names used in the ProtoBuf definition.
21982    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
21983        match value {
21984            "k_EGCMsgResponseOK" => Some(Self::KEgcMsgResponseOk),
21985            "k_EGCMsgResponseDenied" => Some(Self::KEgcMsgResponseDenied),
21986            "k_EGCMsgResponseServerError" => Some(Self::KEgcMsgResponseServerError),
21987            "k_EGCMsgResponseTimeout" => Some(Self::KEgcMsgResponseTimeout),
21988            "k_EGCMsgResponseInvalid" => Some(Self::KEgcMsgResponseInvalid),
21989            "k_EGCMsgResponseNoMatch" => Some(Self::KEgcMsgResponseNoMatch),
21990            "k_EGCMsgResponseUnknownError" => Some(Self::KEgcMsgResponseUnknownError),
21991            "k_EGCMsgResponseNotLoggedOn" => Some(Self::KEgcMsgResponseNotLoggedOn),
21992            "k_EGCMsgFailedToCreate" => Some(Self::KEgcMsgFailedToCreate),
21993            _ => None,
21994        }
21995    }
21996}
21997#[derive(serde::Serialize, serde::Deserialize)]
21998#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21999#[repr(i32)]
22000pub enum EgcMsgUseItemResponse {
22001    KEgcMsgUseItemResponseItemUsed = 0,
22002    KEgcMsgUseItemResponseGiftNoOtherPlayers = 1,
22003    KEgcMsgUseItemResponseServerError = 2,
22004    KEgcMsgUseItemResponseMiniGameAlreadyStarted = 3,
22005    KEgcMsgUseItemResponseItemUsedItemsGranted = 4,
22006    KEgcMsgUseItemResponseDropRateBonusAlreadyGranted = 5,
22007    KEgcMsgUseItemResponseNotInLowPriorityPool = 6,
22008    KEgcMsgUseItemResponseNotHighEnoughLevel = 7,
22009    KEgcMsgUseItemResponseEventNotActive = 8,
22010    KEgcMsgUseItemResponseItemUsedEventPointsGranted = 9,
22011    KEgcMsgUseItemResponseMissingRequirement = 10,
22012    KEgcMsgUseItemResponseEmoticonUnlockNoNew = 11,
22013    KEgcMsgUseItemResponseEmoticonUnlockComplete = 12,
22014    KEgcMsgUseItemResponseItemUsedCompendium = 13,
22015    KEgcMsgUseItemResponseCannotUseWhileUntradable = 14,
22016    KEgcMsgUseItemResponseCannotBeUsedByAccount = 15,
22017    KEgcMsgUseItemResponseRecipientCannotRecieve = 16,
22018}
22019impl EgcMsgUseItemResponse {
22020    /// String value of the enum field names used in the ProtoBuf definition.
22021    ///
22022    /// The values are not transformed in any way and thus are considered stable
22023    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
22024    pub fn as_str_name(&self) -> &'static str {
22025        match self {
22026            Self::KEgcMsgUseItemResponseItemUsed => "k_EGCMsgUseItemResponse_ItemUsed",
22027            Self::KEgcMsgUseItemResponseGiftNoOtherPlayers => {
22028                "k_EGCMsgUseItemResponse_GiftNoOtherPlayers"
22029            }
22030            Self::KEgcMsgUseItemResponseServerError => {
22031                "k_EGCMsgUseItemResponse_ServerError"
22032            }
22033            Self::KEgcMsgUseItemResponseMiniGameAlreadyStarted => {
22034                "k_EGCMsgUseItemResponse_MiniGameAlreadyStarted"
22035            }
22036            Self::KEgcMsgUseItemResponseItemUsedItemsGranted => {
22037                "k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted"
22038            }
22039            Self::KEgcMsgUseItemResponseDropRateBonusAlreadyGranted => {
22040                "k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted"
22041            }
22042            Self::KEgcMsgUseItemResponseNotInLowPriorityPool => {
22043                "k_EGCMsgUseItemResponse_NotInLowPriorityPool"
22044            }
22045            Self::KEgcMsgUseItemResponseNotHighEnoughLevel => {
22046                "k_EGCMsgUseItemResponse_NotHighEnoughLevel"
22047            }
22048            Self::KEgcMsgUseItemResponseEventNotActive => {
22049                "k_EGCMsgUseItemResponse_EventNotActive"
22050            }
22051            Self::KEgcMsgUseItemResponseItemUsedEventPointsGranted => {
22052                "k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted"
22053            }
22054            Self::KEgcMsgUseItemResponseMissingRequirement => {
22055                "k_EGCMsgUseItemResponse_MissingRequirement"
22056            }
22057            Self::KEgcMsgUseItemResponseEmoticonUnlockNoNew => {
22058                "k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew"
22059            }
22060            Self::KEgcMsgUseItemResponseEmoticonUnlockComplete => {
22061                "k_EGCMsgUseItemResponse_EmoticonUnlock_Complete"
22062            }
22063            Self::KEgcMsgUseItemResponseItemUsedCompendium => {
22064                "k_EGCMsgUseItemResponse_ItemUsed_Compendium"
22065            }
22066            Self::KEgcMsgUseItemResponseCannotUseWhileUntradable => {
22067                "k_EGCMsgUseItemResponse_CannotUseWhileUntradable"
22068            }
22069            Self::KEgcMsgUseItemResponseCannotBeUsedByAccount => {
22070                "k_EGCMsgUseItemResponse_CannotBeUsedByAccount"
22071            }
22072            Self::KEgcMsgUseItemResponseRecipientCannotRecieve => {
22073                "k_EGCMsgUseItemResponse_RecipientCannotRecieve"
22074            }
22075        }
22076    }
22077    /// Creates an enum from field names used in the ProtoBuf definition.
22078    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
22079        match value {
22080            "k_EGCMsgUseItemResponse_ItemUsed" => {
22081                Some(Self::KEgcMsgUseItemResponseItemUsed)
22082            }
22083            "k_EGCMsgUseItemResponse_GiftNoOtherPlayers" => {
22084                Some(Self::KEgcMsgUseItemResponseGiftNoOtherPlayers)
22085            }
22086            "k_EGCMsgUseItemResponse_ServerError" => {
22087                Some(Self::KEgcMsgUseItemResponseServerError)
22088            }
22089            "k_EGCMsgUseItemResponse_MiniGameAlreadyStarted" => {
22090                Some(Self::KEgcMsgUseItemResponseMiniGameAlreadyStarted)
22091            }
22092            "k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted" => {
22093                Some(Self::KEgcMsgUseItemResponseItemUsedItemsGranted)
22094            }
22095            "k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted" => {
22096                Some(Self::KEgcMsgUseItemResponseDropRateBonusAlreadyGranted)
22097            }
22098            "k_EGCMsgUseItemResponse_NotInLowPriorityPool" => {
22099                Some(Self::KEgcMsgUseItemResponseNotInLowPriorityPool)
22100            }
22101            "k_EGCMsgUseItemResponse_NotHighEnoughLevel" => {
22102                Some(Self::KEgcMsgUseItemResponseNotHighEnoughLevel)
22103            }
22104            "k_EGCMsgUseItemResponse_EventNotActive" => {
22105                Some(Self::KEgcMsgUseItemResponseEventNotActive)
22106            }
22107            "k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted" => {
22108                Some(Self::KEgcMsgUseItemResponseItemUsedEventPointsGranted)
22109            }
22110            "k_EGCMsgUseItemResponse_MissingRequirement" => {
22111                Some(Self::KEgcMsgUseItemResponseMissingRequirement)
22112            }
22113            "k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew" => {
22114                Some(Self::KEgcMsgUseItemResponseEmoticonUnlockNoNew)
22115            }
22116            "k_EGCMsgUseItemResponse_EmoticonUnlock_Complete" => {
22117                Some(Self::KEgcMsgUseItemResponseEmoticonUnlockComplete)
22118            }
22119            "k_EGCMsgUseItemResponse_ItemUsed_Compendium" => {
22120                Some(Self::KEgcMsgUseItemResponseItemUsedCompendium)
22121            }
22122            "k_EGCMsgUseItemResponse_CannotUseWhileUntradable" => {
22123                Some(Self::KEgcMsgUseItemResponseCannotUseWhileUntradable)
22124            }
22125            "k_EGCMsgUseItemResponse_CannotBeUsedByAccount" => {
22126                Some(Self::KEgcMsgUseItemResponseCannotBeUsedByAccount)
22127            }
22128            "k_EGCMsgUseItemResponse_RecipientCannotRecieve" => {
22129                Some(Self::KEgcMsgUseItemResponseRecipientCannotRecieve)
22130            }
22131            _ => None,
22132        }
22133    }
22134}
22135#[derive(serde::Serialize, serde::Deserialize)]
22136#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22137pub struct CMsgApplyAutograph {
22138    #[prost(uint64, optional, tag = "1")]
22139    pub autograph_item_id: ::core::option::Option<u64>,
22140    #[prost(uint64, optional, tag = "2")]
22141    pub item_item_id: ::core::option::Option<u64>,
22142}
22143#[derive(serde::Serialize, serde::Deserialize)]
22144#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22145pub struct CMsgAdjustItemEquippedState {
22146    #[prost(uint64, optional, tag = "1")]
22147    pub item_id: ::core::option::Option<u64>,
22148    #[prost(uint32, optional, tag = "2")]
22149    pub new_class: ::core::option::Option<u32>,
22150    #[prost(uint32, optional, tag = "3")]
22151    pub new_slot: ::core::option::Option<u32>,
22152    #[prost(uint32, optional, tag = "4", default = "255")]
22153    pub style_index: ::core::option::Option<u32>,
22154}
22155#[derive(serde::Serialize, serde::Deserialize)]
22156#[derive(Clone, PartialEq, ::prost::Message)]
22157pub struct CMsgEconPlayerStrangeCountAdjustment {
22158    #[prost(uint32, optional, tag = "1")]
22159    pub account_id: ::core::option::Option<u32>,
22160    #[prost(message, repeated, tag = "2")]
22161    pub strange_count_adjustments: ::prost::alloc::vec::Vec<
22162        c_msg_econ_player_strange_count_adjustment::CStrangeCountAdjustment,
22163    >,
22164    #[prost(bool, optional, tag = "3")]
22165    pub turbo_mode: ::core::option::Option<bool>,
22166}
22167/// Nested message and enum types in `CMsgEconPlayerStrangeCountAdjustment`.
22168pub mod c_msg_econ_player_strange_count_adjustment {
22169    #[derive(serde::Serialize, serde::Deserialize)]
22170    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22171    pub struct CStrangeCountAdjustment {
22172        #[prost(uint32, optional, tag = "1")]
22173        pub event_type: ::core::option::Option<u32>,
22174        #[prost(uint64, optional, tag = "2")]
22175        pub item_id: ::core::option::Option<u64>,
22176        #[prost(uint32, optional, tag = "3")]
22177        pub adjustment: ::core::option::Option<u32>,
22178    }
22179}
22180#[derive(serde::Serialize, serde::Deserialize)]
22181#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22182pub struct CMsgCraftingResponse {
22183    #[prost(uint64, repeated, packed = "false", tag = "1")]
22184    pub item_ids: ::prost::alloc::vec::Vec<u64>,
22185}
22186#[derive(serde::Serialize, serde::Deserialize)]
22187#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22188pub struct CMsgGcRequestStoreSalesData {
22189    #[prost(uint32, optional, tag = "1")]
22190    pub version: ::core::option::Option<u32>,
22191    #[prost(uint32, optional, tag = "2")]
22192    pub currency: ::core::option::Option<u32>,
22193}
22194#[derive(serde::Serialize, serde::Deserialize)]
22195#[derive(Clone, PartialEq, ::prost::Message)]
22196pub struct CMsgGcRequestStoreSalesDataResponse {
22197    #[prost(message, repeated, tag = "1")]
22198    pub sale_price: ::prost::alloc::vec::Vec<
22199        c_msg_gc_request_store_sales_data_response::Price,
22200    >,
22201    #[prost(uint32, optional, tag = "2")]
22202    pub version: ::core::option::Option<u32>,
22203    #[prost(uint32, optional, tag = "3")]
22204    pub expiration_time: ::core::option::Option<u32>,
22205}
22206/// Nested message and enum types in `CMsgGCRequestStoreSalesDataResponse`.
22207pub mod c_msg_gc_request_store_sales_data_response {
22208    #[derive(serde::Serialize, serde::Deserialize)]
22209    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22210    pub struct Price {
22211        #[prost(uint32, optional, tag = "1")]
22212        pub item_def: ::core::option::Option<u32>,
22213        #[prost(uint32, optional, tag = "2")]
22214        pub price: ::core::option::Option<u32>,
22215    }
22216}
22217#[derive(serde::Serialize, serde::Deserialize)]
22218#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22219pub struct CMsgGcRequestStoreSalesDataUpToDateResponse {
22220    #[prost(uint32, optional, tag = "1")]
22221    pub version: ::core::option::Option<u32>,
22222    #[prost(uint32, optional, tag = "2")]
22223    pub expiration_time: ::core::option::Option<u32>,
22224}
22225#[derive(serde::Serialize, serde::Deserialize)]
22226#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22227pub struct CMsgGcToGcPingRequest {}
22228#[derive(serde::Serialize, serde::Deserialize)]
22229#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22230pub struct CMsgGcToGcPingResponse {}
22231#[derive(serde::Serialize, serde::Deserialize)]
22232#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22233pub struct CMsgGcToGcGetUserSessionServer {
22234    #[prost(uint32, optional, tag = "1")]
22235    pub account_id: ::core::option::Option<u32>,
22236}
22237#[derive(serde::Serialize, serde::Deserialize)]
22238#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22239pub struct CMsgGcToGcGetUserSessionServerResponse {
22240    #[prost(fixed64, optional, tag = "1")]
22241    pub server_steam_id: ::core::option::Option<u64>,
22242    #[prost(bool, optional, tag = "2")]
22243    pub is_online: ::core::option::Option<bool>,
22244}
22245#[derive(serde::Serialize, serde::Deserialize)]
22246#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22247pub struct CMsgGcToGcGetUserServerMembers {
22248    #[prost(uint32, optional, tag = "1")]
22249    pub account_id: ::core::option::Option<u32>,
22250    #[prost(uint32, optional, tag = "2")]
22251    pub max_spectators: ::core::option::Option<u32>,
22252}
22253#[derive(serde::Serialize, serde::Deserialize)]
22254#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22255pub struct CMsgGcToGcGetUserServerMembersResponse {
22256    #[prost(uint32, repeated, packed = "false", tag = "1")]
22257    pub member_account_id: ::prost::alloc::vec::Vec<u32>,
22258}
22259#[derive(serde::Serialize, serde::Deserialize)]
22260#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22261pub struct CMsgLookupMultipleAccountNames {
22262    #[prost(uint32, repeated, tag = "1")]
22263    pub accountids: ::prost::alloc::vec::Vec<u32>,
22264}
22265#[derive(serde::Serialize, serde::Deserialize)]
22266#[derive(Clone, PartialEq, ::prost::Message)]
22267pub struct CMsgLookupMultipleAccountNamesResponse {
22268    #[prost(message, repeated, tag = "1")]
22269    pub accounts: ::prost::alloc::vec::Vec<
22270        c_msg_lookup_multiple_account_names_response::Account,
22271    >,
22272}
22273/// Nested message and enum types in `CMsgLookupMultipleAccountNamesResponse`.
22274pub mod c_msg_lookup_multiple_account_names_response {
22275    #[derive(serde::Serialize, serde::Deserialize)]
22276    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22277    pub struct Account {
22278        #[prost(uint32, optional, tag = "1")]
22279        pub accountid: ::core::option::Option<u32>,
22280        #[prost(string, optional, tag = "2")]
22281        pub persona: ::core::option::Option<::prost::alloc::string::String>,
22282    }
22283}
22284#[derive(serde::Serialize, serde::Deserialize)]
22285#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22286pub struct CMsgRequestCrateItems {
22287    #[prost(uint32, optional, tag = "1")]
22288    pub crate_item_def: ::core::option::Option<u32>,
22289}
22290#[derive(serde::Serialize, serde::Deserialize)]
22291#[derive(Clone, PartialEq, ::prost::Message)]
22292pub struct CMsgRequestCrateItemsResponse {
22293    #[prost(uint32, optional, tag = "1")]
22294    pub response: ::core::option::Option<u32>,
22295    #[prost(uint32, repeated, packed = "false", tag = "2")]
22296    pub item_defs: ::prost::alloc::vec::Vec<u32>,
22297    #[prost(uint32, repeated, packed = "false", tag = "3")]
22298    pub peek_item_defs: ::prost::alloc::vec::Vec<u32>,
22299    #[prost(message, repeated, tag = "4")]
22300    pub peek_items: ::prost::alloc::vec::Vec<CsoEconItem>,
22301}
22302/// Nested message and enum types in `CMsgRequestCrateItemsResponse`.
22303pub mod c_msg_request_crate_items_response {
22304    #[derive(serde::Serialize, serde::Deserialize)]
22305    #[derive(
22306        Clone,
22307        Copy,
22308        Debug,
22309        PartialEq,
22310        Eq,
22311        Hash,
22312        PartialOrd,
22313        Ord,
22314        ::prost::Enumeration
22315    )]
22316    #[repr(i32)]
22317    pub enum EResult {
22318        KSucceeded = 0,
22319        KFailed = 1,
22320    }
22321    impl EResult {
22322        /// String value of the enum field names used in the ProtoBuf definition.
22323        ///
22324        /// The values are not transformed in any way and thus are considered stable
22325        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
22326        pub fn as_str_name(&self) -> &'static str {
22327            match self {
22328                Self::KSucceeded => "k_Succeeded",
22329                Self::KFailed => "k_Failed",
22330            }
22331        }
22332        /// Creates an enum from field names used in the ProtoBuf definition.
22333        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
22334            match value {
22335                "k_Succeeded" => Some(Self::KSucceeded),
22336                "k_Failed" => Some(Self::KFailed),
22337                _ => None,
22338            }
22339        }
22340    }
22341}
22342#[derive(serde::Serialize, serde::Deserialize)]
22343#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22344pub struct CMsgRequestCrateEscalationLevel {
22345    #[prost(uint32, optional, tag = "1")]
22346    pub crate_item_def: ::core::option::Option<u32>,
22347}
22348#[derive(serde::Serialize, serde::Deserialize)]
22349#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22350pub struct CMsgRequestCrateEscalationLevelResponse {
22351    #[prost(uint32, optional, tag = "1")]
22352    pub response: ::core::option::Option<u32>,
22353    #[prost(uint32, optional, tag = "2")]
22354    pub escalation_level0: ::core::option::Option<u32>,
22355    #[prost(uint32, optional, tag = "3")]
22356    pub escalation_level1: ::core::option::Option<u32>,
22357    #[prost(uint32, optional, tag = "4")]
22358    pub escalation_level2: ::core::option::Option<u32>,
22359    #[prost(uint32, optional, tag = "5")]
22360    pub escalation_level3: ::core::option::Option<u32>,
22361}
22362/// Nested message and enum types in `CMsgRequestCrateEscalationLevelResponse`.
22363pub mod c_msg_request_crate_escalation_level_response {
22364    #[derive(serde::Serialize, serde::Deserialize)]
22365    #[derive(
22366        Clone,
22367        Copy,
22368        Debug,
22369        PartialEq,
22370        Eq,
22371        Hash,
22372        PartialOrd,
22373        Ord,
22374        ::prost::Enumeration
22375    )]
22376    #[repr(i32)]
22377    pub enum EResult {
22378        KSucceeded = 0,
22379        KFailed = 1,
22380    }
22381    impl EResult {
22382        /// String value of the enum field names used in the ProtoBuf definition.
22383        ///
22384        /// The values are not transformed in any way and thus are considered stable
22385        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
22386        pub fn as_str_name(&self) -> &'static str {
22387            match self {
22388                Self::KSucceeded => "k_Succeeded",
22389                Self::KFailed => "k_Failed",
22390            }
22391        }
22392        /// Creates an enum from field names used in the ProtoBuf definition.
22393        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
22394            match value {
22395                "k_Succeeded" => Some(Self::KSucceeded),
22396                "k_Failed" => Some(Self::KFailed),
22397                _ => None,
22398            }
22399        }
22400    }
22401}
22402#[derive(serde::Serialize, serde::Deserialize)]
22403#[derive(Clone, Copy, PartialEq, ::prost::Message)]
22404pub struct CMsgGcToGcCanUseDropRateBonus {
22405    #[prost(uint32, optional, tag = "1")]
22406    pub account_id: ::core::option::Option<u32>,
22407    #[prost(float, optional, tag = "2")]
22408    pub drop_rate_bonus: ::core::option::Option<f32>,
22409    #[prost(uint32, optional, tag = "3")]
22410    pub booster_type: ::core::option::Option<u32>,
22411    #[prost(uint32, optional, tag = "4")]
22412    pub exclusive_item_def: ::core::option::Option<u32>,
22413    #[prost(bool, optional, tag = "5")]
22414    pub allow_equal_rate: ::core::option::Option<bool>,
22415}
22416#[derive(serde::Serialize, serde::Deserialize)]
22417#[derive(Clone, Copy, PartialEq, ::prost::Message)]
22418pub struct CMsgSqlAddDropRateBonus {
22419    #[prost(uint32, optional, tag = "1")]
22420    pub account_id: ::core::option::Option<u32>,
22421    #[prost(uint64, optional, tag = "2")]
22422    pub item_id: ::core::option::Option<u64>,
22423    #[prost(uint32, optional, tag = "3")]
22424    pub item_def: ::core::option::Option<u32>,
22425    #[prost(float, optional, tag = "4")]
22426    pub drop_rate_bonus: ::core::option::Option<f32>,
22427    #[prost(uint32, optional, tag = "5")]
22428    pub booster_type: ::core::option::Option<u32>,
22429    #[prost(uint32, optional, tag = "6")]
22430    pub seconds_duration: ::core::option::Option<u32>,
22431    #[prost(uint32, optional, tag = "7")]
22432    pub end_time_stamp: ::core::option::Option<u32>,
22433}
22434#[derive(serde::Serialize, serde::Deserialize)]
22435#[derive(Clone, Copy, PartialEq, ::prost::Message)]
22436pub struct CMsgSqlUpgradeBattleBooster {
22437    #[prost(uint32, optional, tag = "1")]
22438    pub account_id: ::core::option::Option<u32>,
22439    #[prost(uint32, optional, tag = "2")]
22440    pub item_def: ::core::option::Option<u32>,
22441    #[prost(float, optional, tag = "3")]
22442    pub bonus_to_add: ::core::option::Option<f32>,
22443    #[prost(uint32, optional, tag = "4")]
22444    pub booster_type: ::core::option::Option<u32>,
22445}
22446#[derive(serde::Serialize, serde::Deserialize)]
22447#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22448pub struct CMsgGcToGcRefreshSoCache {
22449    #[prost(uint32, optional, tag = "1")]
22450    pub account_id: ::core::option::Option<u32>,
22451    #[prost(bool, optional, tag = "2")]
22452    pub reload: ::core::option::Option<bool>,
22453}
22454#[derive(serde::Serialize, serde::Deserialize)]
22455#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22456pub struct CMsgGcToGcAddSubscriptionTime {
22457    #[prost(uint32, optional, tag = "1")]
22458    pub account_id: ::core::option::Option<u32>,
22459    #[prost(uint32, repeated, packed = "false", tag = "2")]
22460    pub matching_subscription_def_indexes: ::prost::alloc::vec::Vec<u32>,
22461    #[prost(uint32, optional, tag = "3")]
22462    pub additional_seconds: ::core::option::Option<u32>,
22463}
22464#[derive(serde::Serialize, serde::Deserialize)]
22465#[derive(Clone, PartialEq, ::prost::Message)]
22466pub struct CMsgGcToGcGrantAccountRolledItems {
22467    #[prost(uint32, optional, tag = "1")]
22468    pub account_id: ::core::option::Option<u32>,
22469    #[prost(message, repeated, tag = "2")]
22470    pub items: ::prost::alloc::vec::Vec<c_msg_gc_to_gc_grant_account_rolled_items::Item>,
22471    #[prost(uint32, optional, tag = "3")]
22472    pub audit_action: ::core::option::Option<u32>,
22473    #[prost(uint64, optional, tag = "4")]
22474    pub audit_data: ::core::option::Option<u64>,
22475}
22476/// Nested message and enum types in `CMsgGCToGCGrantAccountRolledItems`.
22477pub mod c_msg_gc_to_gc_grant_account_rolled_items {
22478    #[derive(serde::Serialize, serde::Deserialize)]
22479    #[derive(Clone, PartialEq, ::prost::Message)]
22480    pub struct Item {
22481        #[prost(uint32, optional, tag = "1")]
22482        pub item_def: ::core::option::Option<u32>,
22483        #[prost(string, repeated, tag = "2")]
22484        pub loot_lists: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
22485        #[prost(bool, optional, tag = "3")]
22486        pub ignore_limit: ::core::option::Option<bool>,
22487        #[prost(uint32, optional, tag = "4")]
22488        pub origin: ::core::option::Option<u32>,
22489        #[prost(message, repeated, tag = "5")]
22490        pub dynamic_attributes: ::prost::alloc::vec::Vec<item::DynamicAttribute>,
22491        #[prost(message, repeated, tag = "6")]
22492        pub additional_audit_entries: ::prost::alloc::vec::Vec<
22493            item::AdditionalAuditEntry,
22494        >,
22495        #[prost(uint32, optional, tag = "7")]
22496        pub inventory_token: ::core::option::Option<u32>,
22497        #[prost(int32, optional, tag = "8", default = "-1")]
22498        pub quality: ::core::option::Option<i32>,
22499    }
22500    /// Nested message and enum types in `Item`.
22501    pub mod item {
22502        #[derive(serde::Serialize, serde::Deserialize)]
22503        #[derive(Clone, PartialEq, ::prost::Message)]
22504        pub struct DynamicAttribute {
22505            #[prost(string, optional, tag = "1")]
22506            pub name: ::core::option::Option<::prost::alloc::string::String>,
22507            #[prost(uint32, optional, tag = "2")]
22508            pub value_uint32: ::core::option::Option<u32>,
22509            #[prost(float, optional, tag = "3")]
22510            pub value_float: ::core::option::Option<f32>,
22511            #[prost(string, optional, tag = "4")]
22512            pub value_string: ::core::option::Option<::prost::alloc::string::String>,
22513        }
22514        #[derive(serde::Serialize, serde::Deserialize)]
22515        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22516        pub struct AdditionalAuditEntry {
22517            #[prost(uint32, optional, tag = "1")]
22518            pub owner_account_id: ::core::option::Option<u32>,
22519            #[prost(uint32, optional, tag = "2")]
22520            pub audit_action: ::core::option::Option<u32>,
22521            #[prost(uint64, optional, tag = "3")]
22522            pub audit_data: ::core::option::Option<u64>,
22523        }
22524    }
22525}
22526#[derive(serde::Serialize, serde::Deserialize)]
22527#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22528pub struct CMsgGcToGcBetaDeleteItems {
22529    #[prost(uint32, optional, tag = "1")]
22530    pub account_id: ::core::option::Option<u32>,
22531    #[prost(uint64, repeated, packed = "false", tag = "2")]
22532    pub item_ids: ::prost::alloc::vec::Vec<u64>,
22533    #[prost(uint32, repeated, packed = "false", tag = "3")]
22534    pub item_defs: ::prost::alloc::vec::Vec<u32>,
22535}
22536#[derive(serde::Serialize, serde::Deserialize)]
22537#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22538pub struct CMsgGcToGcGrantSelfMadeItemToAccount {
22539    #[prost(uint32, optional, tag = "1")]
22540    pub item_def_index: ::core::option::Option<u32>,
22541    #[prost(uint32, optional, tag = "2")]
22542    pub accountid: ::core::option::Option<u32>,
22543}
22544#[derive(serde::Serialize, serde::Deserialize)]
22545#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22546pub struct CMsgGcToGcUnlockCrate {
22547    #[prost(uint32, optional, tag = "1")]
22548    pub account_id: ::core::option::Option<u32>,
22549    #[prost(uint64, optional, tag = "2")]
22550    pub crate_item_id: ::core::option::Option<u64>,
22551    #[prost(uint64, optional, tag = "3")]
22552    pub key_item_id: ::core::option::Option<u64>,
22553}
22554#[derive(serde::Serialize, serde::Deserialize)]
22555#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22556pub struct CMsgUseItem {
22557    #[prost(uint64, optional, tag = "1")]
22558    pub item_id: ::core::option::Option<u64>,
22559    #[prost(fixed64, optional, tag = "2")]
22560    pub target_steam_id: ::core::option::Option<u64>,
22561    #[prost(uint32, repeated, packed = "false", tag = "3")]
22562    pub gift_potential_targets: ::prost::alloc::vec::Vec<u32>,
22563    #[prost(uint32, optional, tag = "4")]
22564    pub duel_class_lock: ::core::option::Option<u32>,
22565    #[prost(uint64, optional, tag = "5")]
22566    pub initiator_steam_id: ::core::option::Option<u64>,
22567    #[prost(bool, optional, tag = "6")]
22568    pub itempack_ack_immediately: ::core::option::Option<bool>,
22569}
22570#[derive(serde::Serialize, serde::Deserialize)]
22571#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22572pub struct CMsgServerUseItem {
22573    #[prost(uint32, optional, tag = "1")]
22574    pub initiator_account_id: ::core::option::Option<u32>,
22575    #[prost(message, optional, tag = "2")]
22576    pub use_item_msg: ::core::option::Option<CMsgUseItem>,
22577}
22578#[derive(serde::Serialize, serde::Deserialize)]
22579#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22580pub struct CMsgUseMultipleItems {
22581    #[prost(uint64, repeated, packed = "false", tag = "1")]
22582    pub item_ids: ::prost::alloc::vec::Vec<u64>,
22583}
22584#[derive(serde::Serialize, serde::Deserialize)]
22585#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22586pub struct CgcStoreRechargeRedirectLineItem {
22587    #[prost(uint32, optional, tag = "1")]
22588    pub item_def_id: ::core::option::Option<u32>,
22589    #[prost(uint32, optional, tag = "2")]
22590    pub quantity: ::core::option::Option<u32>,
22591}
22592#[derive(serde::Serialize, serde::Deserialize)]
22593#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22594pub struct CMsgGcEconSqlWorkItemEmbeddedRollbackData {
22595    #[prost(uint32, optional, tag = "1")]
22596    pub account_id: ::core::option::Option<u32>,
22597    #[prost(uint64, optional, tag = "2")]
22598    pub deleted_item_id: ::core::option::Option<u64>,
22599    #[prost(uint32, optional, tag = "3")]
22600    pub old_audit_action: ::core::option::Option<u32>,
22601    #[prost(uint32, optional, tag = "4")]
22602    pub new_audit_action: ::core::option::Option<u32>,
22603    #[prost(uint32, optional, tag = "5")]
22604    pub expected_audit_action: ::core::option::Option<u32>,
22605}
22606#[derive(serde::Serialize, serde::Deserialize)]
22607#[derive(Clone, PartialEq, ::prost::Message)]
22608pub struct CMsgCraftStatue {
22609    #[prost(uint32, optional, tag = "1")]
22610    pub heroid: ::core::option::Option<u32>,
22611    #[prost(string, optional, tag = "2")]
22612    pub sequencename: ::core::option::Option<::prost::alloc::string::String>,
22613    #[prost(float, optional, tag = "3")]
22614    pub cycle: ::core::option::Option<f32>,
22615    #[prost(string, optional, tag = "4")]
22616    pub description: ::core::option::Option<::prost::alloc::string::String>,
22617    #[prost(uint32, optional, tag = "5")]
22618    pub pedestal_itemdef: ::core::option::Option<u32>,
22619    #[prost(uint64, optional, tag = "6")]
22620    pub toolid: ::core::option::Option<u64>,
22621}
22622#[derive(serde::Serialize, serde::Deserialize)]
22623#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22624pub struct CMsgRedeemCode {
22625    #[prost(string, optional, tag = "1")]
22626    pub code: ::core::option::Option<::prost::alloc::string::String>,
22627}
22628#[derive(serde::Serialize, serde::Deserialize)]
22629#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22630pub struct CMsgRedeemCodeResponse {
22631    #[prost(uint32, optional, tag = "1")]
22632    pub response: ::core::option::Option<u32>,
22633    #[prost(uint64, optional, tag = "2")]
22634    pub item_id: ::core::option::Option<u64>,
22635}
22636/// Nested message and enum types in `CMsgRedeemCodeResponse`.
22637pub mod c_msg_redeem_code_response {
22638    #[derive(serde::Serialize, serde::Deserialize)]
22639    #[derive(
22640        Clone,
22641        Copy,
22642        Debug,
22643        PartialEq,
22644        Eq,
22645        Hash,
22646        PartialOrd,
22647        Ord,
22648        ::prost::Enumeration
22649    )]
22650    #[repr(i32)]
22651    pub enum EResultCode {
22652        KSucceeded = 0,
22653        KFailedCodeNotFound = 1,
22654        KFailedCodeAlreadyUsed = 2,
22655        KFailedOtherError = 3,
22656    }
22657    impl EResultCode {
22658        /// String value of the enum field names used in the ProtoBuf definition.
22659        ///
22660        /// The values are not transformed in any way and thus are considered stable
22661        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
22662        pub fn as_str_name(&self) -> &'static str {
22663            match self {
22664                Self::KSucceeded => "k_Succeeded",
22665                Self::KFailedCodeNotFound => "k_Failed_CodeNotFound",
22666                Self::KFailedCodeAlreadyUsed => "k_Failed_CodeAlreadyUsed",
22667                Self::KFailedOtherError => "k_Failed_OtherError",
22668            }
22669        }
22670        /// Creates an enum from field names used in the ProtoBuf definition.
22671        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
22672            match value {
22673                "k_Succeeded" => Some(Self::KSucceeded),
22674                "k_Failed_CodeNotFound" => Some(Self::KFailedCodeNotFound),
22675                "k_Failed_CodeAlreadyUsed" => Some(Self::KFailedCodeAlreadyUsed),
22676                "k_Failed_OtherError" => Some(Self::KFailedOtherError),
22677                _ => None,
22678            }
22679        }
22680    }
22681}
22682#[derive(serde::Serialize, serde::Deserialize)]
22683#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22684pub struct CMsgDevNewItemRequest {
22685    #[prost(string, optional, tag = "3")]
22686    pub item_def_name: ::core::option::Option<::prost::alloc::string::String>,
22687    #[prost(string, optional, tag = "4")]
22688    pub loot_list_name: ::core::option::Option<::prost::alloc::string::String>,
22689    #[prost(string, repeated, tag = "5")]
22690    pub attr_def_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
22691    #[prost(string, repeated, tag = "6")]
22692    pub attr_value: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
22693    #[prost(uint32, optional, tag = "7")]
22694    pub item_quality: ::core::option::Option<u32>,
22695}
22696#[derive(serde::Serialize, serde::Deserialize)]
22697#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22698pub struct CMsgDevNewItemRequestResponse {
22699    #[prost(bool, optional, tag = "1")]
22700    pub success: ::core::option::Option<bool>,
22701}
22702#[derive(serde::Serialize, serde::Deserialize)]
22703#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22704pub struct CMsgDevUnlockAllItemStyles {
22705    #[prost(uint64, optional, tag = "1")]
22706    pub item_id: ::core::option::Option<u64>,
22707}
22708#[derive(serde::Serialize, serde::Deserialize)]
22709#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22710pub struct CMsgDevUnlockAllItemStylesResponse {
22711    #[prost(bool, optional, tag = "1")]
22712    pub success: ::core::option::Option<bool>,
22713}
22714#[derive(serde::Serialize, serde::Deserialize)]
22715#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22716pub struct CMsgGcGetAccountSubscriptionItem {
22717    #[prost(uint32, optional, tag = "1")]
22718    pub account_id: ::core::option::Option<u32>,
22719}
22720#[derive(serde::Serialize, serde::Deserialize)]
22721#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22722pub struct CMsgGcGetAccountSubscriptionItemResponse {
22723    #[prost(uint32, optional, tag = "1")]
22724    pub def_index: ::core::option::Option<u32>,
22725}
22726#[derive(serde::Serialize, serde::Deserialize)]
22727#[derive(Clone, PartialEq, ::prost::Message)]
22728pub struct CMsgGcAddGiftItem {
22729    #[prost(uint32, optional, tag = "1")]
22730    pub gifter_account_id: ::core::option::Option<u32>,
22731    #[prost(uint32, optional, tag = "2")]
22732    pub receiver_account_id: ::core::option::Option<u32>,
22733    #[prost(message, optional, tag = "3")]
22734    pub wrapped_item: ::core::option::Option<CsoEconItem>,
22735    #[prost(string, optional, tag = "4")]
22736    pub gift_message: ::core::option::Option<::prost::alloc::string::String>,
22737    #[prost(bool, optional, tag = "5")]
22738    pub is_wallet_cash_trusted: ::core::option::Option<bool>,
22739}
22740#[derive(serde::Serialize, serde::Deserialize)]
22741#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22742pub struct CMsgClientToGcWrapAndDeliverGift {
22743    #[prost(uint64, optional, tag = "1")]
22744    pub item_id: ::core::option::Option<u64>,
22745    #[prost(uint32, optional, tag = "2")]
22746    pub give_to_account_id: ::core::option::Option<u32>,
22747    #[prost(string, optional, tag = "3")]
22748    pub gift_message: ::core::option::Option<::prost::alloc::string::String>,
22749}
22750#[derive(serde::Serialize, serde::Deserialize)]
22751#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22752pub struct CMsgSqlgcToGcRevokeUntrustedGift {
22753    #[prost(uint32, optional, tag = "1")]
22754    pub account_id: ::core::option::Option<u32>,
22755    #[prost(uint64, optional, tag = "4")]
22756    pub sent_item_id: ::core::option::Option<u64>,
22757}
22758#[derive(serde::Serialize, serde::Deserialize)]
22759#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22760pub struct CMsgClientToGcWrapAndDeliverGiftResponse {
22761    #[prost(
22762        enumeration = "EgcMsgResponse",
22763        optional,
22764        tag = "1",
22765        default = "KEgcMsgResponseOk"
22766    )]
22767    pub response: ::core::option::Option<i32>,
22768    #[prost(uint32, optional, tag = "2")]
22769    pub gifting_charge_uses: ::core::option::Option<u32>,
22770    #[prost(int32, optional, tag = "3")]
22771    pub gifting_charge_max: ::core::option::Option<i32>,
22772    #[prost(uint32, optional, tag = "4")]
22773    pub gifting_uses: ::core::option::Option<u32>,
22774    #[prost(int32, optional, tag = "5")]
22775    pub gifting_max: ::core::option::Option<i32>,
22776    #[prost(uint32, optional, tag = "6")]
22777    pub gifting_window_hours: ::core::option::Option<u32>,
22778    #[prost(
22779        enumeration = "EgcMsgInitiateTradeResponse",
22780        optional,
22781        tag = "7",
22782        default = "KEgcMsgInitiateTradeResponseAccepted"
22783    )]
22784    pub trade_restriction: ::core::option::Option<i32>,
22785}
22786#[derive(serde::Serialize, serde::Deserialize)]
22787#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22788pub struct CMsgClientToGcUnwrapGift {
22789    #[prost(uint64, optional, tag = "1")]
22790    pub item_id: ::core::option::Option<u64>,
22791}
22792#[derive(serde::Serialize, serde::Deserialize)]
22793#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22794pub struct CMsgClientToGcGetGiftPermissions {}
22795#[derive(serde::Serialize, serde::Deserialize)]
22796#[derive(Clone, PartialEq, ::prost::Message)]
22797pub struct CMsgClientToGcGetGiftPermissionsResponse {
22798    #[prost(bool, optional, tag = "1")]
22799    pub is_unlimited: ::core::option::Option<bool>,
22800    #[prost(bool, optional, tag = "3")]
22801    pub has_two_factor: ::core::option::Option<bool>,
22802    #[prost(
22803        enumeration = "EgcMsgInitiateTradeResponse",
22804        optional,
22805        tag = "6",
22806        default = "KEgcMsgInitiateTradeResponseAccepted"
22807    )]
22808    pub sender_permission: ::core::option::Option<i32>,
22809    #[prost(uint32, optional, tag = "7")]
22810    pub friendship_age_requirement: ::core::option::Option<u32>,
22811    #[prost(uint32, optional, tag = "8")]
22812    pub friendship_age_requirement_two_factor: ::core::option::Option<u32>,
22813    #[prost(message, repeated, tag = "9")]
22814    pub friend_permissions: ::prost::alloc::vec::Vec<
22815        c_msg_client_to_gc_get_gift_permissions_response::FriendPermission,
22816    >,
22817}
22818/// Nested message and enum types in `CMsgClientToGCGetGiftPermissionsResponse`.
22819pub mod c_msg_client_to_gc_get_gift_permissions_response {
22820    #[derive(serde::Serialize, serde::Deserialize)]
22821    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22822    pub struct FriendPermission {
22823        #[prost(uint32, optional, tag = "1")]
22824        pub account_id: ::core::option::Option<u32>,
22825        #[prost(
22826            enumeration = "super::EgcMsgInitiateTradeResponse",
22827            optional,
22828            tag = "2",
22829            default = "KEgcMsgInitiateTradeResponseAccepted"
22830        )]
22831        pub permission: ::core::option::Option<i32>,
22832    }
22833}
22834#[derive(serde::Serialize, serde::Deserialize)]
22835#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22836pub struct CMsgClientToGcUnpackBundle {
22837    #[prost(uint64, optional, tag = "1")]
22838    pub item_id: ::core::option::Option<u64>,
22839}
22840#[derive(serde::Serialize, serde::Deserialize)]
22841#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22842pub struct CMsgClientToGcUnpackBundleResponse {
22843    #[prost(uint64, repeated, packed = "false", tag = "1")]
22844    pub unpacked_item_ids: ::prost::alloc::vec::Vec<u64>,
22845    #[prost(
22846        enumeration = "c_msg_client_to_gc_unpack_bundle_response::EUnpackBundle",
22847        optional,
22848        tag = "2",
22849        default = "KUnpackBundleSucceeded"
22850    )]
22851    pub response: ::core::option::Option<i32>,
22852    #[prost(uint32, repeated, packed = "false", tag = "3")]
22853    pub unpacked_item_def_indexes: ::prost::alloc::vec::Vec<u32>,
22854}
22855/// Nested message and enum types in `CMsgClientToGCUnpackBundleResponse`.
22856pub mod c_msg_client_to_gc_unpack_bundle_response {
22857    #[derive(serde::Serialize, serde::Deserialize)]
22858    #[derive(
22859        Clone,
22860        Copy,
22861        Debug,
22862        PartialEq,
22863        Eq,
22864        Hash,
22865        PartialOrd,
22866        Ord,
22867        ::prost::Enumeration
22868    )]
22869    #[repr(i32)]
22870    pub enum EUnpackBundle {
22871        KUnpackBundleSucceeded = 0,
22872        KUnpackBundleFailedItemIsNotBundle = 1,
22873        KUnpackBundleFailedUnableToCreateContainedItem = 2,
22874        KUnpackBundleFailedSoCacheError = 3,
22875        KUnpackBundleFailedItemIsInvalid = 4,
22876        KUnpackBundleFailedBadItemQuantity = 5,
22877        KUnpackBundleFailedUnableToDeleteItem = 6,
22878    }
22879    impl EUnpackBundle {
22880        /// String value of the enum field names used in the ProtoBuf definition.
22881        ///
22882        /// The values are not transformed in any way and thus are considered stable
22883        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
22884        pub fn as_str_name(&self) -> &'static str {
22885            match self {
22886                Self::KUnpackBundleSucceeded => "k_UnpackBundle_Succeeded",
22887                Self::KUnpackBundleFailedItemIsNotBundle => {
22888                    "k_UnpackBundle_Failed_ItemIsNotBundle"
22889                }
22890                Self::KUnpackBundleFailedUnableToCreateContainedItem => {
22891                    "k_UnpackBundle_Failed_UnableToCreateContainedItem"
22892                }
22893                Self::KUnpackBundleFailedSoCacheError => {
22894                    "k_UnpackBundle_Failed_SOCacheError"
22895                }
22896                Self::KUnpackBundleFailedItemIsInvalid => {
22897                    "k_UnpackBundle_Failed_ItemIsInvalid"
22898                }
22899                Self::KUnpackBundleFailedBadItemQuantity => {
22900                    "k_UnpackBundle_Failed_BadItemQuantity"
22901                }
22902                Self::KUnpackBundleFailedUnableToDeleteItem => {
22903                    "k_UnpackBundle_Failed_UnableToDeleteItem"
22904                }
22905            }
22906        }
22907        /// Creates an enum from field names used in the ProtoBuf definition.
22908        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
22909            match value {
22910                "k_UnpackBundle_Succeeded" => Some(Self::KUnpackBundleSucceeded),
22911                "k_UnpackBundle_Failed_ItemIsNotBundle" => {
22912                    Some(Self::KUnpackBundleFailedItemIsNotBundle)
22913                }
22914                "k_UnpackBundle_Failed_UnableToCreateContainedItem" => {
22915                    Some(Self::KUnpackBundleFailedUnableToCreateContainedItem)
22916                }
22917                "k_UnpackBundle_Failed_SOCacheError" => {
22918                    Some(Self::KUnpackBundleFailedSoCacheError)
22919                }
22920                "k_UnpackBundle_Failed_ItemIsInvalid" => {
22921                    Some(Self::KUnpackBundleFailedItemIsInvalid)
22922                }
22923                "k_UnpackBundle_Failed_BadItemQuantity" => {
22924                    Some(Self::KUnpackBundleFailedBadItemQuantity)
22925                }
22926                "k_UnpackBundle_Failed_UnableToDeleteItem" => {
22927                    Some(Self::KUnpackBundleFailedUnableToDeleteItem)
22928                }
22929                _ => None,
22930            }
22931        }
22932    }
22933}
22934#[derive(serde::Serialize, serde::Deserialize)]
22935#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
22936pub struct CMsgClientToGcPackBundle {
22937    #[prost(uint64, repeated, packed = "false", tag = "1")]
22938    pub item_ids: ::prost::alloc::vec::Vec<u64>,
22939    #[prost(uint32, optional, tag = "2")]
22940    pub bundle_item_def_index: ::core::option::Option<u32>,
22941}
22942#[derive(serde::Serialize, serde::Deserialize)]
22943#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
22944pub struct CMsgClientToGcPackBundleResponse {
22945    #[prost(uint64, optional, tag = "1")]
22946    pub item_id: ::core::option::Option<u64>,
22947    #[prost(
22948        enumeration = "c_msg_client_to_gc_pack_bundle_response::EPackBundle",
22949        optional,
22950        tag = "2",
22951        default = "KPackBundleSucceeded"
22952    )]
22953    pub response: ::core::option::Option<i32>,
22954}
22955/// Nested message and enum types in `CMsgClientToGCPackBundleResponse`.
22956pub mod c_msg_client_to_gc_pack_bundle_response {
22957    #[derive(serde::Serialize, serde::Deserialize)]
22958    #[derive(
22959        Clone,
22960        Copy,
22961        Debug,
22962        PartialEq,
22963        Eq,
22964        Hash,
22965        PartialOrd,
22966        Ord,
22967        ::prost::Enumeration
22968    )]
22969    #[repr(i32)]
22970    pub enum EPackBundle {
22971        KPackBundleSucceeded = 0,
22972        KPackBundleFailedInternalError = 1,
22973        KPackBundleFailedItemIsNotBundle = 2,
22974        KPackBundleFailedSoCacheError = 3,
22975        KPackBundleFailedItemIsInvalid = 4,
22976        KPackBundleFailedBadItemQuantity = 5,
22977        KPackBundleFailedUnableToDeleteItem = 6,
22978        KPackBundleFailedBundleCannotBePacked = 7,
22979        KPackBundleFailedItemIsUntradeable = 8,
22980        KPackBundleFailedItemIsEquipped = 9,
22981        KPackBundleFailedItemHasGems = 10,
22982        KPackBundleFailedItemMixedQuality = 11,
22983        KPackBundleFailedItemInvalidQuality = 12,
22984        KPackBundleFailedItemIsNonEconomy = 13,
22985        KPackBundleFailedDisabled = 14,
22986    }
22987    impl EPackBundle {
22988        /// String value of the enum field names used in the ProtoBuf definition.
22989        ///
22990        /// The values are not transformed in any way and thus are considered stable
22991        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
22992        pub fn as_str_name(&self) -> &'static str {
22993            match self {
22994                Self::KPackBundleSucceeded => "k_PackBundle_Succeeded",
22995                Self::KPackBundleFailedInternalError => {
22996                    "k_PackBundle_Failed_InternalError"
22997                }
22998                Self::KPackBundleFailedItemIsNotBundle => {
22999                    "k_PackBundle_Failed_ItemIsNotBundle"
23000                }
23001                Self::KPackBundleFailedSoCacheError => "k_PackBundle_Failed_SOCacheError",
23002                Self::KPackBundleFailedItemIsInvalid => {
23003                    "k_PackBundle_Failed_ItemIsInvalid"
23004                }
23005                Self::KPackBundleFailedBadItemQuantity => {
23006                    "k_PackBundle_Failed_BadItemQuantity"
23007                }
23008                Self::KPackBundleFailedUnableToDeleteItem => {
23009                    "k_PackBundle_Failed_UnableToDeleteItem"
23010                }
23011                Self::KPackBundleFailedBundleCannotBePacked => {
23012                    "k_PackBundle_Failed_BundleCannotBePacked"
23013                }
23014                Self::KPackBundleFailedItemIsUntradeable => {
23015                    "k_PackBundle_Failed_ItemIsUntradeable"
23016                }
23017                Self::KPackBundleFailedItemIsEquipped => {
23018                    "k_PackBundle_Failed_ItemIsEquipped"
23019                }
23020                Self::KPackBundleFailedItemHasGems => "k_PackBundle_Failed_ItemHasGems",
23021                Self::KPackBundleFailedItemMixedQuality => {
23022                    "k_PackBundle_Failed_ItemMixedQuality"
23023                }
23024                Self::KPackBundleFailedItemInvalidQuality => {
23025                    "k_PackBundle_Failed_ItemInvalidQuality"
23026                }
23027                Self::KPackBundleFailedItemIsNonEconomy => {
23028                    "k_PackBundle_Failed_ItemIsNonEconomy"
23029                }
23030                Self::KPackBundleFailedDisabled => "k_PackBundle_Failed_Disabled",
23031            }
23032        }
23033        /// Creates an enum from field names used in the ProtoBuf definition.
23034        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
23035            match value {
23036                "k_PackBundle_Succeeded" => Some(Self::KPackBundleSucceeded),
23037                "k_PackBundle_Failed_InternalError" => {
23038                    Some(Self::KPackBundleFailedInternalError)
23039                }
23040                "k_PackBundle_Failed_ItemIsNotBundle" => {
23041                    Some(Self::KPackBundleFailedItemIsNotBundle)
23042                }
23043                "k_PackBundle_Failed_SOCacheError" => {
23044                    Some(Self::KPackBundleFailedSoCacheError)
23045                }
23046                "k_PackBundle_Failed_ItemIsInvalid" => {
23047                    Some(Self::KPackBundleFailedItemIsInvalid)
23048                }
23049                "k_PackBundle_Failed_BadItemQuantity" => {
23050                    Some(Self::KPackBundleFailedBadItemQuantity)
23051                }
23052                "k_PackBundle_Failed_UnableToDeleteItem" => {
23053                    Some(Self::KPackBundleFailedUnableToDeleteItem)
23054                }
23055                "k_PackBundle_Failed_BundleCannotBePacked" => {
23056                    Some(Self::KPackBundleFailedBundleCannotBePacked)
23057                }
23058                "k_PackBundle_Failed_ItemIsUntradeable" => {
23059                    Some(Self::KPackBundleFailedItemIsUntradeable)
23060                }
23061                "k_PackBundle_Failed_ItemIsEquipped" => {
23062                    Some(Self::KPackBundleFailedItemIsEquipped)
23063                }
23064                "k_PackBundle_Failed_ItemHasGems" => {
23065                    Some(Self::KPackBundleFailedItemHasGems)
23066                }
23067                "k_PackBundle_Failed_ItemMixedQuality" => {
23068                    Some(Self::KPackBundleFailedItemMixedQuality)
23069                }
23070                "k_PackBundle_Failed_ItemInvalidQuality" => {
23071                    Some(Self::KPackBundleFailedItemInvalidQuality)
23072                }
23073                "k_PackBundle_Failed_ItemIsNonEconomy" => {
23074                    Some(Self::KPackBundleFailedItemIsNonEconomy)
23075                }
23076                "k_PackBundle_Failed_Disabled" => Some(Self::KPackBundleFailedDisabled),
23077                _ => None,
23078            }
23079        }
23080    }
23081}
23082#[derive(serde::Serialize, serde::Deserialize)]
23083#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23084pub struct CMsgGcToClientStoreTransactionCompleted {
23085    #[prost(uint64, optional, tag = "1")]
23086    pub txn_id: ::core::option::Option<u64>,
23087    #[prost(uint64, repeated, packed = "false", tag = "2")]
23088    pub item_ids: ::prost::alloc::vec::Vec<u64>,
23089}
23090#[derive(serde::Serialize, serde::Deserialize)]
23091#[derive(Clone, PartialEq, ::prost::Message)]
23092pub struct CMsgClientToGcEquipItems {
23093    #[prost(message, repeated, tag = "1")]
23094    pub equips: ::prost::alloc::vec::Vec<CMsgAdjustItemEquippedState>,
23095}
23096#[derive(serde::Serialize, serde::Deserialize)]
23097#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23098pub struct CMsgClientToGcEquipItemsResponse {
23099    #[prost(fixed64, optional, tag = "1")]
23100    pub so_cache_version_id: ::core::option::Option<u64>,
23101}
23102#[derive(serde::Serialize, serde::Deserialize)]
23103#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23104pub struct CMsgClientToGcSetItemStyle {
23105    #[prost(uint64, optional, tag = "1")]
23106    pub item_id: ::core::option::Option<u64>,
23107    #[prost(uint32, optional, tag = "2", default = "255")]
23108    pub style_index: ::core::option::Option<u32>,
23109}
23110#[derive(serde::Serialize, serde::Deserialize)]
23111#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23112pub struct CMsgClientToGcSetItemStyleResponse {
23113    #[prost(
23114        enumeration = "c_msg_client_to_gc_set_item_style_response::ESetStyle",
23115        optional,
23116        tag = "1",
23117        default = "KSetStyleSucceeded"
23118    )]
23119    pub response: ::core::option::Option<i32>,
23120}
23121/// Nested message and enum types in `CMsgClientToGCSetItemStyleResponse`.
23122pub mod c_msg_client_to_gc_set_item_style_response {
23123    #[derive(serde::Serialize, serde::Deserialize)]
23124    #[derive(
23125        Clone,
23126        Copy,
23127        Debug,
23128        PartialEq,
23129        Eq,
23130        Hash,
23131        PartialOrd,
23132        Ord,
23133        ::prost::Enumeration
23134    )]
23135    #[repr(i32)]
23136    pub enum ESetStyle {
23137        KSetStyleSucceeded = 0,
23138        KSetStyleFailed = 1,
23139        KSetStyleFailedStyleIsLocked = 2,
23140    }
23141    impl ESetStyle {
23142        /// String value of the enum field names used in the ProtoBuf definition.
23143        ///
23144        /// The values are not transformed in any way and thus are considered stable
23145        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
23146        pub fn as_str_name(&self) -> &'static str {
23147            match self {
23148                Self::KSetStyleSucceeded => "k_SetStyle_Succeeded",
23149                Self::KSetStyleFailed => "k_SetStyle_Failed",
23150                Self::KSetStyleFailedStyleIsLocked => "k_SetStyle_Failed_StyleIsLocked",
23151            }
23152        }
23153        /// Creates an enum from field names used in the ProtoBuf definition.
23154        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
23155            match value {
23156                "k_SetStyle_Succeeded" => Some(Self::KSetStyleSucceeded),
23157                "k_SetStyle_Failed" => Some(Self::KSetStyleFailed),
23158                "k_SetStyle_Failed_StyleIsLocked" => {
23159                    Some(Self::KSetStyleFailedStyleIsLocked)
23160                }
23161                _ => None,
23162            }
23163        }
23164    }
23165}
23166#[derive(serde::Serialize, serde::Deserialize)]
23167#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23168pub struct CMsgClientToGcUnlockItemStyle {
23169    #[prost(uint64, optional, tag = "1")]
23170    pub item_to_unlock: ::core::option::Option<u64>,
23171    #[prost(uint32, optional, tag = "2", default = "255")]
23172    pub style_index: ::core::option::Option<u32>,
23173    #[prost(uint64, repeated, packed = "false", tag = "3")]
23174    pub consumable_item_ids: ::prost::alloc::vec::Vec<u64>,
23175}
23176#[derive(serde::Serialize, serde::Deserialize)]
23177#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23178pub struct CMsgClientToGcUnlockItemStyleResponse {
23179    #[prost(
23180        enumeration = "c_msg_client_to_gc_unlock_item_style_response::EUnlockStyle",
23181        optional,
23182        tag = "1",
23183        default = "KUnlockStyleSucceeded"
23184    )]
23185    pub response: ::core::option::Option<i32>,
23186    #[prost(uint64, optional, tag = "2")]
23187    pub item_id: ::core::option::Option<u64>,
23188    #[prost(uint32, optional, tag = "3", default = "255")]
23189    pub style_index: ::core::option::Option<u32>,
23190    #[prost(uint32, optional, tag = "4", default = "255")]
23191    pub style_prereq: ::core::option::Option<u32>,
23192}
23193/// Nested message and enum types in `CMsgClientToGCUnlockItemStyleResponse`.
23194pub mod c_msg_client_to_gc_unlock_item_style_response {
23195    #[derive(serde::Serialize, serde::Deserialize)]
23196    #[derive(
23197        Clone,
23198        Copy,
23199        Debug,
23200        PartialEq,
23201        Eq,
23202        Hash,
23203        PartialOrd,
23204        Ord,
23205        ::prost::Enumeration
23206    )]
23207    #[repr(i32)]
23208    pub enum EUnlockStyle {
23209        KUnlockStyleSucceeded = 0,
23210        KUnlockStyleFailedPreReq = 1,
23211        KUnlockStyleFailedCantAfford = 2,
23212        KUnlockStyleFailedCantCommit = 3,
23213        KUnlockStyleFailedCantLockCache = 4,
23214        KUnlockStyleFailedCantAffordAttrib = 5,
23215        KUnlockStyleFailedCantAffordGem = 6,
23216        KUnlockStyleFailedNoCompendiumLevel = 7,
23217        KUnlockStyleFailedAlreadyUnlocked = 8,
23218        KUnlockStyleFailedOtherError = 9,
23219        KUnlockStyleFailedItemIsInvalid = 10,
23220        KUnlockStyleFailedToolIsInvalid = 11,
23221    }
23222    impl EUnlockStyle {
23223        /// String value of the enum field names used in the ProtoBuf definition.
23224        ///
23225        /// The values are not transformed in any way and thus are considered stable
23226        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
23227        pub fn as_str_name(&self) -> &'static str {
23228            match self {
23229                Self::KUnlockStyleSucceeded => "k_UnlockStyle_Succeeded",
23230                Self::KUnlockStyleFailedPreReq => "k_UnlockStyle_Failed_PreReq",
23231                Self::KUnlockStyleFailedCantAfford => "k_UnlockStyle_Failed_CantAfford",
23232                Self::KUnlockStyleFailedCantCommit => "k_UnlockStyle_Failed_CantCommit",
23233                Self::KUnlockStyleFailedCantLockCache => {
23234                    "k_UnlockStyle_Failed_CantLockCache"
23235                }
23236                Self::KUnlockStyleFailedCantAffordAttrib => {
23237                    "k_UnlockStyle_Failed_CantAffordAttrib"
23238                }
23239                Self::KUnlockStyleFailedCantAffordGem => {
23240                    "k_UnlockStyle_Failed_CantAffordGem"
23241                }
23242                Self::KUnlockStyleFailedNoCompendiumLevel => {
23243                    "k_UnlockStyle_Failed_NoCompendiumLevel"
23244                }
23245                Self::KUnlockStyleFailedAlreadyUnlocked => {
23246                    "k_UnlockStyle_Failed_AlreadyUnlocked"
23247                }
23248                Self::KUnlockStyleFailedOtherError => "k_UnlockStyle_Failed_OtherError",
23249                Self::KUnlockStyleFailedItemIsInvalid => {
23250                    "k_UnlockStyle_Failed_ItemIsInvalid"
23251                }
23252                Self::KUnlockStyleFailedToolIsInvalid => {
23253                    "k_UnlockStyle_Failed_ToolIsInvalid"
23254                }
23255            }
23256        }
23257        /// Creates an enum from field names used in the ProtoBuf definition.
23258        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
23259            match value {
23260                "k_UnlockStyle_Succeeded" => Some(Self::KUnlockStyleSucceeded),
23261                "k_UnlockStyle_Failed_PreReq" => Some(Self::KUnlockStyleFailedPreReq),
23262                "k_UnlockStyle_Failed_CantAfford" => {
23263                    Some(Self::KUnlockStyleFailedCantAfford)
23264                }
23265                "k_UnlockStyle_Failed_CantCommit" => {
23266                    Some(Self::KUnlockStyleFailedCantCommit)
23267                }
23268                "k_UnlockStyle_Failed_CantLockCache" => {
23269                    Some(Self::KUnlockStyleFailedCantLockCache)
23270                }
23271                "k_UnlockStyle_Failed_CantAffordAttrib" => {
23272                    Some(Self::KUnlockStyleFailedCantAffordAttrib)
23273                }
23274                "k_UnlockStyle_Failed_CantAffordGem" => {
23275                    Some(Self::KUnlockStyleFailedCantAffordGem)
23276                }
23277                "k_UnlockStyle_Failed_NoCompendiumLevel" => {
23278                    Some(Self::KUnlockStyleFailedNoCompendiumLevel)
23279                }
23280                "k_UnlockStyle_Failed_AlreadyUnlocked" => {
23281                    Some(Self::KUnlockStyleFailedAlreadyUnlocked)
23282                }
23283                "k_UnlockStyle_Failed_OtherError" => {
23284                    Some(Self::KUnlockStyleFailedOtherError)
23285                }
23286                "k_UnlockStyle_Failed_ItemIsInvalid" => {
23287                    Some(Self::KUnlockStyleFailedItemIsInvalid)
23288                }
23289                "k_UnlockStyle_Failed_ToolIsInvalid" => {
23290                    Some(Self::KUnlockStyleFailedToolIsInvalid)
23291                }
23292                _ => None,
23293            }
23294        }
23295    }
23296}
23297#[derive(serde::Serialize, serde::Deserialize)]
23298#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23299pub struct CMsgClientToGcSetItemInventoryCategory {
23300    #[prost(uint64, repeated, packed = "false", tag = "1")]
23301    pub item_ids: ::prost::alloc::vec::Vec<u64>,
23302    #[prost(uint32, optional, tag = "2")]
23303    pub set_to_value: ::core::option::Option<u32>,
23304    #[prost(uint32, optional, tag = "3")]
23305    pub remove_categories: ::core::option::Option<u32>,
23306    #[prost(uint32, optional, tag = "4")]
23307    pub add_categories: ::core::option::Option<u32>,
23308}
23309#[derive(serde::Serialize, serde::Deserialize)]
23310#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23311pub struct CMsgClientToGcUnlockCrate {
23312    #[prost(uint64, optional, tag = "1")]
23313    pub crate_item_id: ::core::option::Option<u64>,
23314    #[prost(uint64, optional, tag = "2")]
23315    pub key_item_id: ::core::option::Option<u64>,
23316}
23317#[derive(serde::Serialize, serde::Deserialize)]
23318#[derive(Clone, PartialEq, ::prost::Message)]
23319pub struct CMsgClientToGcUnlockCrateResponse {
23320    #[prost(
23321        enumeration = "EgcMsgResponse",
23322        optional,
23323        tag = "1",
23324        default = "KEgcMsgResponseOk"
23325    )]
23326    pub result: ::core::option::Option<i32>,
23327    #[prost(message, repeated, tag = "2")]
23328    pub granted_items: ::prost::alloc::vec::Vec<
23329        c_msg_client_to_gc_unlock_crate_response::Item,
23330    >,
23331}
23332/// Nested message and enum types in `CMsgClientToGCUnlockCrateResponse`.
23333pub mod c_msg_client_to_gc_unlock_crate_response {
23334    #[derive(serde::Serialize, serde::Deserialize)]
23335    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23336    pub struct Item {
23337        #[prost(uint64, optional, tag = "1")]
23338        pub item_id: ::core::option::Option<u64>,
23339        #[prost(uint32, optional, tag = "2")]
23340        pub def_index: ::core::option::Option<u32>,
23341    }
23342}
23343#[derive(serde::Serialize, serde::Deserialize)]
23344#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23345pub struct CMsgClientToGcRemoveItemAttribute {
23346    #[prost(uint64, optional, tag = "1")]
23347    pub item_id: ::core::option::Option<u64>,
23348}
23349#[derive(serde::Serialize, serde::Deserialize)]
23350#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23351pub struct CMsgClientToGcRemoveItemAttributeResponse {
23352    #[prost(
23353        enumeration = "c_msg_client_to_gc_remove_item_attribute_response::ERemoveItemAttribute",
23354        optional,
23355        tag = "1",
23356        default = "KRemoveItemAttributeSucceeded"
23357    )]
23358    pub response: ::core::option::Option<i32>,
23359    #[prost(uint64, optional, tag = "2")]
23360    pub item_id: ::core::option::Option<u64>,
23361}
23362/// Nested message and enum types in `CMsgClientToGCRemoveItemAttributeResponse`.
23363pub mod c_msg_client_to_gc_remove_item_attribute_response {
23364    #[derive(serde::Serialize, serde::Deserialize)]
23365    #[derive(
23366        Clone,
23367        Copy,
23368        Debug,
23369        PartialEq,
23370        Eq,
23371        Hash,
23372        PartialOrd,
23373        Ord,
23374        ::prost::Enumeration
23375    )]
23376    #[repr(i32)]
23377    pub enum ERemoveItemAttribute {
23378        KRemoveItemAttributeSucceeded = 0,
23379        KRemoveItemAttributeFailed = 1,
23380        KRemoveItemAttributeFailedItemIsInvalid = 2,
23381        KRemoveItemAttributeFailedAttributeCannotBeRemoved = 3,
23382        KRemoveItemAttributeFailedAttributeDoesntExist = 4,
23383    }
23384    impl ERemoveItemAttribute {
23385        /// String value of the enum field names used in the ProtoBuf definition.
23386        ///
23387        /// The values are not transformed in any way and thus are considered stable
23388        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
23389        pub fn as_str_name(&self) -> &'static str {
23390            match self {
23391                Self::KRemoveItemAttributeSucceeded => "k_RemoveItemAttribute_Succeeded",
23392                Self::KRemoveItemAttributeFailed => "k_RemoveItemAttribute_Failed",
23393                Self::KRemoveItemAttributeFailedItemIsInvalid => {
23394                    "k_RemoveItemAttribute_Failed_ItemIsInvalid"
23395                }
23396                Self::KRemoveItemAttributeFailedAttributeCannotBeRemoved => {
23397                    "k_RemoveItemAttribute_Failed_AttributeCannotBeRemoved"
23398                }
23399                Self::KRemoveItemAttributeFailedAttributeDoesntExist => {
23400                    "k_RemoveItemAttribute_Failed_AttributeDoesntExist"
23401                }
23402            }
23403        }
23404        /// Creates an enum from field names used in the ProtoBuf definition.
23405        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
23406            match value {
23407                "k_RemoveItemAttribute_Succeeded" => {
23408                    Some(Self::KRemoveItemAttributeSucceeded)
23409                }
23410                "k_RemoveItemAttribute_Failed" => Some(Self::KRemoveItemAttributeFailed),
23411                "k_RemoveItemAttribute_Failed_ItemIsInvalid" => {
23412                    Some(Self::KRemoveItemAttributeFailedItemIsInvalid)
23413                }
23414                "k_RemoveItemAttribute_Failed_AttributeCannotBeRemoved" => {
23415                    Some(Self::KRemoveItemAttributeFailedAttributeCannotBeRemoved)
23416                }
23417                "k_RemoveItemAttribute_Failed_AttributeDoesntExist" => {
23418                    Some(Self::KRemoveItemAttributeFailedAttributeDoesntExist)
23419                }
23420                _ => None,
23421            }
23422        }
23423    }
23424}
23425#[derive(serde::Serialize, serde::Deserialize)]
23426#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23427pub struct CMsgClientToGcNameItem {
23428    #[prost(uint64, optional, tag = "1")]
23429    pub subject_item_id: ::core::option::Option<u64>,
23430    #[prost(uint64, optional, tag = "2")]
23431    pub tool_item_id: ::core::option::Option<u64>,
23432    #[prost(string, optional, tag = "3")]
23433    pub name: ::core::option::Option<::prost::alloc::string::String>,
23434}
23435#[derive(serde::Serialize, serde::Deserialize)]
23436#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23437pub struct CMsgClientToGcNameItemResponse {
23438    #[prost(
23439        enumeration = "c_msg_client_to_gc_name_item_response::ENameItem",
23440        optional,
23441        tag = "1",
23442        default = "KNameItemSucceeded"
23443    )]
23444    pub response: ::core::option::Option<i32>,
23445    #[prost(uint64, optional, tag = "2")]
23446    pub item_id: ::core::option::Option<u64>,
23447}
23448/// Nested message and enum types in `CMsgClientToGCNameItemResponse`.
23449pub mod c_msg_client_to_gc_name_item_response {
23450    #[derive(serde::Serialize, serde::Deserialize)]
23451    #[derive(
23452        Clone,
23453        Copy,
23454        Debug,
23455        PartialEq,
23456        Eq,
23457        Hash,
23458        PartialOrd,
23459        Ord,
23460        ::prost::Enumeration
23461    )]
23462    #[repr(i32)]
23463    pub enum ENameItem {
23464        KNameItemSucceeded = 0,
23465        KNameItemFailed = 1,
23466        KNameItemFailedToolIsInvalid = 2,
23467        KNameItemFailedItemIsInvalid = 3,
23468        KNameItemFailedNameIsInvalid = 4,
23469    }
23470    impl ENameItem {
23471        /// String value of the enum field names used in the ProtoBuf definition.
23472        ///
23473        /// The values are not transformed in any way and thus are considered stable
23474        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
23475        pub fn as_str_name(&self) -> &'static str {
23476            match self {
23477                Self::KNameItemSucceeded => "k_NameItem_Succeeded",
23478                Self::KNameItemFailed => "k_NameItem_Failed",
23479                Self::KNameItemFailedToolIsInvalid => "k_NameItem_Failed_ToolIsInvalid",
23480                Self::KNameItemFailedItemIsInvalid => "k_NameItem_Failed_ItemIsInvalid",
23481                Self::KNameItemFailedNameIsInvalid => "k_NameItem_Failed_NameIsInvalid",
23482            }
23483        }
23484        /// Creates an enum from field names used in the ProtoBuf definition.
23485        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
23486            match value {
23487                "k_NameItem_Succeeded" => Some(Self::KNameItemSucceeded),
23488                "k_NameItem_Failed" => Some(Self::KNameItemFailed),
23489                "k_NameItem_Failed_ToolIsInvalid" => {
23490                    Some(Self::KNameItemFailedToolIsInvalid)
23491                }
23492                "k_NameItem_Failed_ItemIsInvalid" => {
23493                    Some(Self::KNameItemFailedItemIsInvalid)
23494                }
23495                "k_NameItem_Failed_NameIsInvalid" => {
23496                    Some(Self::KNameItemFailedNameIsInvalid)
23497                }
23498                _ => None,
23499            }
23500        }
23501    }
23502}
23503#[derive(serde::Serialize, serde::Deserialize)]
23504#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23505pub struct CMsgGcSetItemPosition {
23506    #[prost(uint64, optional, tag = "1")]
23507    pub item_id: ::core::option::Option<u64>,
23508    #[prost(uint32, optional, tag = "2")]
23509    pub new_position: ::core::option::Option<u32>,
23510}
23511#[derive(serde::Serialize, serde::Deserialize)]
23512#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23513pub struct CAttributeItemDynamicRecipeComponent {
23514    #[prost(uint32, optional, tag = "1")]
23515    pub item_def: ::core::option::Option<u32>,
23516    #[prost(uint32, optional, tag = "2")]
23517    pub item_quality: ::core::option::Option<u32>,
23518    #[prost(uint32, optional, tag = "3")]
23519    pub item_flags: ::core::option::Option<u32>,
23520    #[prost(string, optional, tag = "4")]
23521    pub attributes_string: ::core::option::Option<::prost::alloc::string::String>,
23522    #[prost(uint32, optional, tag = "5")]
23523    pub item_count: ::core::option::Option<u32>,
23524    #[prost(uint32, optional, tag = "6")]
23525    pub items_fulfilled: ::core::option::Option<u32>,
23526    #[prost(uint32, optional, tag = "7")]
23527    pub item_rarity: ::core::option::Option<u32>,
23528    #[prost(string, optional, tag = "8")]
23529    pub lootlist: ::core::option::Option<::prost::alloc::string::String>,
23530    #[prost(uint64, optional, tag = "9")]
23531    pub fulfilled_item_id: ::core::option::Option<u64>,
23532    #[prost(uint32, optional, tag = "10")]
23533    pub associated_item_def: ::core::option::Option<u32>,
23534}
23535#[derive(serde::Serialize, serde::Deserialize)]
23536#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23537pub struct CProtoItemSocket {
23538    #[prost(uint64, optional, tag = "1")]
23539    pub item_id: ::core::option::Option<u64>,
23540    #[prost(uint32, optional, tag = "2")]
23541    pub attr_def_index: ::core::option::Option<u32>,
23542    #[prost(uint32, optional, tag = "3")]
23543    pub required_type: ::core::option::Option<u32>,
23544    #[prost(string, optional, tag = "4")]
23545    pub required_hero: ::core::option::Option<::prost::alloc::string::String>,
23546    #[prost(uint32, optional, tag = "5")]
23547    pub gem_def_index: ::core::option::Option<u32>,
23548    #[prost(bool, optional, tag = "6")]
23549    pub not_tradable: ::core::option::Option<bool>,
23550    #[prost(string, optional, tag = "7")]
23551    pub required_item_slot: ::core::option::Option<::prost::alloc::string::String>,
23552}
23553#[derive(serde::Serialize, serde::Deserialize)]
23554#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23555pub struct CProtoItemSocketEmpty {
23556    #[prost(message, optional, tag = "1")]
23557    pub socket: ::core::option::Option<CProtoItemSocket>,
23558}
23559#[derive(serde::Serialize, serde::Deserialize)]
23560#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23561pub struct CProtoItemSocketEffect {
23562    #[prost(message, optional, tag = "1")]
23563    pub socket: ::core::option::Option<CProtoItemSocket>,
23564    #[prost(uint32, optional, tag = "2")]
23565    pub effect: ::core::option::Option<u32>,
23566}
23567#[derive(serde::Serialize, serde::Deserialize)]
23568#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23569pub struct CProtoItemSocketColor {
23570    #[prost(message, optional, tag = "1")]
23571    pub socket: ::core::option::Option<CProtoItemSocket>,
23572    #[prost(uint32, optional, tag = "2")]
23573    pub red: ::core::option::Option<u32>,
23574    #[prost(uint32, optional, tag = "3")]
23575    pub green: ::core::option::Option<u32>,
23576    #[prost(uint32, optional, tag = "4")]
23577    pub blue: ::core::option::Option<u32>,
23578}
23579#[derive(serde::Serialize, serde::Deserialize)]
23580#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23581pub struct CProtoItemSocketStrange {
23582    #[prost(message, optional, tag = "1")]
23583    pub socket: ::core::option::Option<CProtoItemSocket>,
23584    #[prost(uint32, optional, tag = "2")]
23585    pub strange_type: ::core::option::Option<u32>,
23586    #[prost(uint32, optional, tag = "3")]
23587    pub strange_value: ::core::option::Option<u32>,
23588}
23589#[derive(serde::Serialize, serde::Deserialize)]
23590#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23591pub struct CProtoItemSocketStrangeDeserializeFromStringOnly {
23592    #[prost(message, optional, tag = "1")]
23593    pub socket: ::core::option::Option<CProtoItemSocket>,
23594    #[prost(uint32, optional, tag = "2")]
23595    pub strange_type: ::core::option::Option<u32>,
23596    #[prost(uint32, optional, tag = "3")]
23597    pub strange_value: ::core::option::Option<u32>,
23598    #[prost(uint32, optional, tag = "4")]
23599    pub ability_effect: ::core::option::Option<u32>,
23600}
23601#[derive(serde::Serialize, serde::Deserialize)]
23602#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23603pub struct CProtoItemSocketSpectator {
23604    #[prost(message, optional, tag = "1")]
23605    pub socket: ::core::option::Option<CProtoItemSocket>,
23606    #[prost(uint32, optional, tag = "2")]
23607    pub games_viewed: ::core::option::Option<u32>,
23608    #[prost(uint32, optional, tag = "3")]
23609    pub corporation_id: ::core::option::Option<u32>,
23610    #[prost(uint32, optional, tag = "4")]
23611    pub league_id: ::core::option::Option<u32>,
23612    #[prost(uint32, optional, tag = "5")]
23613    pub team_id: ::core::option::Option<u32>,
23614}
23615#[derive(serde::Serialize, serde::Deserialize)]
23616#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23617pub struct CProtoItemSocketAssetModifier {
23618    #[prost(message, optional, tag = "1")]
23619    pub socket: ::core::option::Option<CProtoItemSocket>,
23620    #[prost(uint32, optional, tag = "2")]
23621    pub asset_modifier: ::core::option::Option<u32>,
23622}
23623#[derive(serde::Serialize, serde::Deserialize)]
23624#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23625pub struct CProtoItemSocketAssetModifierDeserializeFromStringOnly {
23626    #[prost(message, optional, tag = "1")]
23627    pub socket: ::core::option::Option<CProtoItemSocket>,
23628    #[prost(uint32, optional, tag = "2")]
23629    pub asset_modifier: ::core::option::Option<u32>,
23630    #[prost(uint32, optional, tag = "3")]
23631    pub anim_modifier: ::core::option::Option<u32>,
23632    #[prost(uint32, optional, tag = "4")]
23633    pub ability_effect: ::core::option::Option<u32>,
23634}
23635#[derive(serde::Serialize, serde::Deserialize)]
23636#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23637pub struct CProtoItemSocketAutograph {
23638    #[prost(message, optional, tag = "1")]
23639    pub socket: ::core::option::Option<CProtoItemSocket>,
23640    #[prost(string, optional, tag = "2")]
23641    pub autograph: ::core::option::Option<::prost::alloc::string::String>,
23642    #[prost(uint32, optional, tag = "3")]
23643    pub autograph_id: ::core::option::Option<u32>,
23644    #[prost(uint32, optional, tag = "4")]
23645    pub autograph_score: ::core::option::Option<u32>,
23646}
23647#[derive(serde::Serialize, serde::Deserialize)]
23648#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23649pub struct CProtoItemSocketStaticVisuals {
23650    #[prost(message, optional, tag = "1")]
23651    pub socket: ::core::option::Option<CProtoItemSocket>,
23652}
23653#[derive(serde::Serialize, serde::Deserialize)]
23654#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23655pub struct CAttributeString {
23656    #[prost(string, optional, tag = "1")]
23657    pub value: ::core::option::Option<::prost::alloc::string::String>,
23658}
23659#[derive(serde::Serialize, serde::Deserialize)]
23660#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23661pub struct CWorkshopGetItemDailyRevenueRequest {
23662    #[prost(uint32, optional, tag = "1")]
23663    pub appid: ::core::option::Option<u32>,
23664    #[prost(uint32, optional, tag = "2")]
23665    pub item_id: ::core::option::Option<u32>,
23666    #[prost(uint32, optional, tag = "3")]
23667    pub date_start: ::core::option::Option<u32>,
23668    #[prost(uint32, optional, tag = "4")]
23669    pub date_end: ::core::option::Option<u32>,
23670}
23671#[derive(serde::Serialize, serde::Deserialize)]
23672#[derive(Clone, PartialEq, ::prost::Message)]
23673pub struct CWorkshopGetItemDailyRevenueResponse {
23674    #[prost(message, repeated, tag = "1")]
23675    pub country_revenue: ::prost::alloc::vec::Vec<
23676        c_workshop_get_item_daily_revenue_response::CountryDailyRevenue,
23677    >,
23678}
23679/// Nested message and enum types in `CWorkshop_GetItemDailyRevenue_Response`.
23680pub mod c_workshop_get_item_daily_revenue_response {
23681    #[derive(serde::Serialize, serde::Deserialize)]
23682    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23683    pub struct CountryDailyRevenue {
23684        #[prost(string, optional, tag = "1")]
23685        pub country_code: ::core::option::Option<::prost::alloc::string::String>,
23686        #[prost(uint32, optional, tag = "2")]
23687        pub date: ::core::option::Option<u32>,
23688        #[prost(int64, optional, tag = "3")]
23689        pub revenue_usd: ::core::option::Option<i64>,
23690        #[prost(int32, optional, tag = "4")]
23691        pub units: ::core::option::Option<i32>,
23692    }
23693}
23694#[derive(serde::Serialize, serde::Deserialize)]
23695#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23696pub struct CWorkshopGetPackageDailyRevenueRequest {
23697    #[prost(uint32, optional, tag = "1")]
23698    pub packageid: ::core::option::Option<u32>,
23699    #[prost(uint32, optional, tag = "2")]
23700    pub date_start: ::core::option::Option<u32>,
23701    #[prost(uint32, optional, tag = "3")]
23702    pub date_end: ::core::option::Option<u32>,
23703}
23704#[derive(serde::Serialize, serde::Deserialize)]
23705#[derive(Clone, PartialEq, ::prost::Message)]
23706pub struct CWorkshopGetPackageDailyRevenueResponse {
23707    #[prost(message, repeated, tag = "1")]
23708    pub country_revenue: ::prost::alloc::vec::Vec<
23709        c_workshop_get_package_daily_revenue_response::CountryDailyRevenue,
23710    >,
23711}
23712/// Nested message and enum types in `CWorkshop_GetPackageDailyRevenue_Response`.
23713pub mod c_workshop_get_package_daily_revenue_response {
23714    #[derive(serde::Serialize, serde::Deserialize)]
23715    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23716    pub struct CountryDailyRevenue {
23717        #[prost(string, optional, tag = "1")]
23718        pub country_code: ::core::option::Option<::prost::alloc::string::String>,
23719        #[prost(uint32, optional, tag = "2")]
23720        pub date: ::core::option::Option<u32>,
23721        #[prost(int64, optional, tag = "3")]
23722        pub revenue_usd: ::core::option::Option<i64>,
23723        #[prost(int32, optional, tag = "4")]
23724        pub units: ::core::option::Option<i32>,
23725    }
23726}
23727#[derive(serde::Serialize, serde::Deserialize)]
23728#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23729pub struct CMsgSqlgcToGcGrantBackpackSlots {
23730    #[prost(uint32, optional, tag = "1")]
23731    pub account_id: ::core::option::Option<u32>,
23732    #[prost(uint32, optional, tag = "2")]
23733    pub add_slots: ::core::option::Option<u32>,
23734}
23735#[derive(serde::Serialize, serde::Deserialize)]
23736#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23737pub struct CMsgClientToGcLookupAccountName {
23738    #[prost(uint32, optional, tag = "1")]
23739    pub account_id: ::core::option::Option<u32>,
23740}
23741#[derive(serde::Serialize, serde::Deserialize)]
23742#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23743pub struct CMsgClientToGcLookupAccountNameResponse {
23744    #[prost(uint32, optional, tag = "1")]
23745    pub account_id: ::core::option::Option<u32>,
23746    #[prost(string, optional, tag = "2")]
23747    pub account_name: ::core::option::Option<::prost::alloc::string::String>,
23748}
23749#[derive(serde::Serialize, serde::Deserialize)]
23750#[derive(Clone, PartialEq, ::prost::Message)]
23751pub struct CMsgClientToGcCreateStaticRecipe {
23752    #[prost(message, repeated, tag = "1")]
23753    pub items: ::prost::alloc::vec::Vec<c_msg_client_to_gc_create_static_recipe::Item>,
23754    #[prost(uint32, optional, tag = "2")]
23755    pub recipe_def_index: ::core::option::Option<u32>,
23756}
23757/// Nested message and enum types in `CMsgClientToGCCreateStaticRecipe`.
23758pub mod c_msg_client_to_gc_create_static_recipe {
23759    #[derive(serde::Serialize, serde::Deserialize)]
23760    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23761    pub struct Item {
23762        #[prost(uint64, optional, tag = "1")]
23763        pub item_id: ::core::option::Option<u64>,
23764        #[prost(uint32, optional, tag = "2")]
23765        pub slot_id: ::core::option::Option<u32>,
23766    }
23767}
23768#[derive(serde::Serialize, serde::Deserialize)]
23769#[derive(Clone, PartialEq, ::prost::Message)]
23770pub struct CMsgClientToGcCreateStaticRecipeResponse {
23771    #[prost(
23772        enumeration = "c_msg_client_to_gc_create_static_recipe_response::EResponse",
23773        optional,
23774        tag = "1",
23775        default = "Success"
23776    )]
23777    pub response: ::core::option::Option<i32>,
23778    #[prost(message, repeated, tag = "2")]
23779    pub output_items: ::prost::alloc::vec::Vec<
23780        c_msg_client_to_gc_create_static_recipe_response::OutputItem,
23781    >,
23782    #[prost(message, repeated, tag = "3")]
23783    pub input_errors: ::prost::alloc::vec::Vec<
23784        c_msg_client_to_gc_create_static_recipe_response::InputError,
23785    >,
23786    #[prost(message, repeated, tag = "4")]
23787    pub additional_outputs: ::prost::alloc::vec::Vec<
23788        c_msg_client_to_gc_create_static_recipe_response::AdditionalOutput,
23789    >,
23790}
23791/// Nested message and enum types in `CMsgClientToGCCreateStaticRecipeResponse`.
23792pub mod c_msg_client_to_gc_create_static_recipe_response {
23793    #[derive(serde::Serialize, serde::Deserialize)]
23794    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23795    pub struct OutputItem {
23796        #[prost(uint32, optional, tag = "1")]
23797        pub def_index: ::core::option::Option<u32>,
23798        #[prost(uint64, optional, tag = "2")]
23799        pub item_id: ::core::option::Option<u64>,
23800        #[prost(uint32, optional, tag = "3")]
23801        pub slot_id: ::core::option::Option<u32>,
23802    }
23803    #[derive(serde::Serialize, serde::Deserialize)]
23804    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23805    pub struct InputError {
23806        #[prost(uint32, optional, tag = "1")]
23807        pub slot_id: ::core::option::Option<u32>,
23808        #[prost(enumeration = "EResponse", optional, tag = "2", default = "Success")]
23809        pub error: ::core::option::Option<i32>,
23810    }
23811    #[derive(serde::Serialize, serde::Deserialize)]
23812    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23813    pub struct AdditionalOutput {
23814        #[prost(uint32, optional, tag = "1")]
23815        pub slot_id: ::core::option::Option<u32>,
23816        #[prost(uint64, optional, tag = "2")]
23817        pub value: ::core::option::Option<u64>,
23818    }
23819    #[derive(serde::Serialize, serde::Deserialize)]
23820    #[derive(
23821        Clone,
23822        Copy,
23823        Debug,
23824        PartialEq,
23825        Eq,
23826        Hash,
23827        PartialOrd,
23828        Ord,
23829        ::prost::Enumeration
23830    )]
23831    #[repr(i32)]
23832    pub enum EResponse {
23833        Success = 0,
23834        OfferingDisabled = 1,
23835        InvalidItems = 2,
23836        InternalError = 3,
23837        MissingLeague = 4,
23838        MissingEvent = 5,
23839    }
23840    impl EResponse {
23841        /// String value of the enum field names used in the ProtoBuf definition.
23842        ///
23843        /// The values are not transformed in any way and thus are considered stable
23844        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
23845        pub fn as_str_name(&self) -> &'static str {
23846            match self {
23847                Self::Success => "eResponse_Success",
23848                Self::OfferingDisabled => "eResponse_OfferingDisabled",
23849                Self::InvalidItems => "eResponse_InvalidItems",
23850                Self::InternalError => "eResponse_InternalError",
23851                Self::MissingLeague => "eResponse_MissingLeague",
23852                Self::MissingEvent => "eResponse_MissingEvent",
23853            }
23854        }
23855        /// Creates an enum from field names used in the ProtoBuf definition.
23856        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
23857            match value {
23858                "eResponse_Success" => Some(Self::Success),
23859                "eResponse_OfferingDisabled" => Some(Self::OfferingDisabled),
23860                "eResponse_InvalidItems" => Some(Self::InvalidItems),
23861                "eResponse_InternalError" => Some(Self::InternalError),
23862                "eResponse_MissingLeague" => Some(Self::MissingLeague),
23863                "eResponse_MissingEvent" => Some(Self::MissingEvent),
23864                _ => None,
23865            }
23866        }
23867    }
23868}
23869#[derive(serde::Serialize, serde::Deserialize)]
23870#[derive(Clone, PartialEq, ::prost::Message)]
23871pub struct CMsgProcessTransactionOrder {
23872    #[prost(uint64, optional, tag = "1")]
23873    pub txn_id: ::core::option::Option<u64>,
23874    #[prost(uint64, optional, tag = "2")]
23875    pub steam_txn_id: ::core::option::Option<u64>,
23876    #[prost(uint64, optional, tag = "3")]
23877    pub partner_txn_id: ::core::option::Option<u64>,
23878    #[prost(fixed64, optional, tag = "4")]
23879    pub steam_id: ::core::option::Option<u64>,
23880    #[prost(uint32, optional, tag = "5")]
23881    pub time_stamp: ::core::option::Option<u32>,
23882    #[prost(uint64, optional, tag = "6")]
23883    pub watermark: ::core::option::Option<u64>,
23884    #[prost(int32, optional, tag = "7")]
23885    pub purchase_report_status: ::core::option::Option<i32>,
23886    #[prost(uint32, optional, tag = "8")]
23887    pub currency: ::core::option::Option<u32>,
23888    #[prost(message, repeated, tag = "9")]
23889    pub items: ::prost::alloc::vec::Vec<c_msg_process_transaction_order::Item>,
23890}
23891/// Nested message and enum types in `CMsgProcessTransactionOrder`.
23892pub mod c_msg_process_transaction_order {
23893    #[derive(serde::Serialize, serde::Deserialize)]
23894    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23895    pub struct Item {
23896        #[prost(uint32, optional, tag = "1")]
23897        pub item_def_index: ::core::option::Option<u32>,
23898        #[prost(uint32, optional, tag = "2")]
23899        pub item_price: ::core::option::Option<u32>,
23900        #[prost(uint32, optional, tag = "3")]
23901        pub quantity: ::core::option::Option<u32>,
23902        #[prost(string, optional, tag = "4")]
23903        pub category_desc: ::core::option::Option<::prost::alloc::string::String>,
23904        #[prost(uint32, optional, tag = "5")]
23905        pub store_purchase_type: ::core::option::Option<u32>,
23906        #[prost(uint64, optional, tag = "6")]
23907        pub source_reference_id: ::core::option::Option<u64>,
23908        #[prost(int32, optional, tag = "7")]
23909        pub parent_stack_index: ::core::option::Option<i32>,
23910        #[prost(bool, optional, tag = "8")]
23911        pub default_price: ::core::option::Option<bool>,
23912        #[prost(bool, optional, tag = "9")]
23913        pub is_user_facing: ::core::option::Option<bool>,
23914        #[prost(int32, optional, tag = "11")]
23915        pub price_index: ::core::option::Option<i32>,
23916    }
23917}
23918#[derive(serde::Serialize, serde::Deserialize)]
23919#[derive(Clone, PartialEq, ::prost::Message)]
23920pub struct CMsgGcToGcStoreProcessCdKeyTransaction {
23921    #[prost(message, optional, tag = "1")]
23922    pub order: ::core::option::Option<CMsgProcessTransactionOrder>,
23923    #[prost(uint32, optional, tag = "2")]
23924    pub reason_code: ::core::option::Option<u32>,
23925    #[prost(uint32, optional, tag = "3")]
23926    pub partner: ::core::option::Option<u32>,
23927}
23928#[derive(serde::Serialize, serde::Deserialize)]
23929#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23930pub struct CMsgGcToGcStoreProcessCdKeyTransactionResponse {
23931    #[prost(bool, optional, tag = "1")]
23932    pub success: ::core::option::Option<bool>,
23933}
23934#[derive(serde::Serialize, serde::Deserialize)]
23935#[derive(Clone, PartialEq, ::prost::Message)]
23936pub struct CMsgGcToGcStoreProcessSettlement {
23937    #[prost(message, optional, tag = "1")]
23938    pub order: ::core::option::Option<CMsgProcessTransactionOrder>,
23939}
23940#[derive(serde::Serialize, serde::Deserialize)]
23941#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23942pub struct CMsgGcToGcStoreProcessSettlementResponse {
23943    #[prost(bool, optional, tag = "1")]
23944    pub success: ::core::option::Option<bool>,
23945}
23946#[derive(serde::Serialize, serde::Deserialize)]
23947#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23948pub struct CMsgGcToGcBroadcastConsoleCommand {
23949    #[prost(string, optional, tag = "1")]
23950    pub con_command: ::core::option::Option<::prost::alloc::string::String>,
23951    #[prost(bool, optional, tag = "2")]
23952    pub report_output: ::core::option::Option<bool>,
23953    #[prost(int32, optional, tag = "3", default = "-1")]
23954    pub sending_gc: ::core::option::Option<i32>,
23955    #[prost(string, optional, tag = "4")]
23956    pub output_initiator: ::core::option::Option<::prost::alloc::string::String>,
23957    #[prost(string, optional, tag = "5")]
23958    pub sender_source: ::core::option::Option<::prost::alloc::string::String>,
23959}
23960#[derive(serde::Serialize, serde::Deserialize)]
23961#[derive(Clone, PartialEq, ::prost::Message)]
23962pub struct CMsgGcToGcConsoleOutput {
23963    #[prost(string, optional, tag = "1")]
23964    pub initiator: ::core::option::Option<::prost::alloc::string::String>,
23965    #[prost(int32, optional, tag = "2", default = "-1")]
23966    pub sending_gc: ::core::option::Option<i32>,
23967    #[prost(message, repeated, tag = "3")]
23968    pub msgs: ::prost::alloc::vec::Vec<c_msg_gc_to_gc_console_output::OutputLine>,
23969    #[prost(bool, optional, tag = "4")]
23970    pub is_last_for_source_job: ::core::option::Option<bool>,
23971}
23972/// Nested message and enum types in `CMsgGCToGCConsoleOutput`.
23973pub mod c_msg_gc_to_gc_console_output {
23974    #[derive(serde::Serialize, serde::Deserialize)]
23975    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23976    pub struct OutputLine {
23977        #[prost(string, optional, tag = "1")]
23978        pub text: ::core::option::Option<::prost::alloc::string::String>,
23979        #[prost(uint32, optional, tag = "2")]
23980        pub spew_level: ::core::option::Option<u32>,
23981    }
23982}
23983#[derive(serde::Serialize, serde::Deserialize)]
23984#[derive(Clone, PartialEq, ::prost::Message)]
23985pub struct CMsgItemAges {
23986    #[prost(message, repeated, tag = "1")]
23987    pub max_item_id_timestamps: ::prost::alloc::vec::Vec<
23988        c_msg_item_ages::MaxItemIdTimestamp,
23989    >,
23990}
23991/// Nested message and enum types in `CMsgItemAges`.
23992pub mod c_msg_item_ages {
23993    #[derive(serde::Serialize, serde::Deserialize)]
23994    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
23995    pub struct MaxItemIdTimestamp {
23996        #[prost(uint32, optional, tag = "1")]
23997        pub timestamp: ::core::option::Option<u32>,
23998        #[prost(uint64, optional, tag = "2")]
23999        pub max_item_id: ::core::option::Option<u64>,
24000    }
24001}
24002#[derive(serde::Serialize, serde::Deserialize)]
24003#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
24004pub struct CMsgGcToGcInternalTestMsg {
24005    #[prost(int32, optional, tag = "1", default = "-1")]
24006    pub sending_gc: ::core::option::Option<i32>,
24007    #[prost(fixed64, optional, tag = "2")]
24008    pub sender_id: ::core::option::Option<u64>,
24009    #[prost(uint32, optional, tag = "3")]
24010    pub context: ::core::option::Option<u32>,
24011    #[prost(uint32, optional, tag = "4")]
24012    pub message_id: ::core::option::Option<u32>,
24013    #[prost(bytes = "vec", optional, tag = "5")]
24014    pub message_body: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
24015    #[prost(fixed64, optional, tag = "6")]
24016    pub job_id_source: ::core::option::Option<u64>,
24017    #[prost(fixed64, optional, tag = "7")]
24018    pub job_id_target: ::core::option::Option<u64>,
24019}
24020#[derive(serde::Serialize, serde::Deserialize)]
24021#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24022pub struct CMsgGcToGcClientServerVersionsUpdated {
24023    #[prost(uint32, optional, tag = "1")]
24024    pub client_min_allowed_version: ::core::option::Option<u32>,
24025    #[prost(uint32, optional, tag = "2")]
24026    pub client_active_version: ::core::option::Option<u32>,
24027    #[prost(uint32, optional, tag = "3")]
24028    pub server_active_version: ::core::option::Option<u32>,
24029    #[prost(uint32, optional, tag = "4")]
24030    pub server_deployed_version: ::core::option::Option<u32>,
24031    #[prost(uint32, optional, tag = "5")]
24032    pub what_changed: ::core::option::Option<u32>,
24033}
24034#[derive(serde::Serialize, serde::Deserialize)]
24035#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
24036pub struct CMsgGcToGcBroadcastMessageFromSub {
24037    #[prost(uint32, optional, tag = "1")]
24038    pub msg_id: ::core::option::Option<u32>,
24039    #[prost(bytes = "vec", optional, tag = "2")]
24040    pub serialized_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
24041    #[prost(uint32, repeated, tag = "3")]
24042    pub account_id_list: ::prost::alloc::vec::Vec<u32>,
24043    #[prost(fixed64, repeated, tag = "4")]
24044    pub steam_id_list: ::prost::alloc::vec::Vec<u64>,
24045}
24046#[derive(serde::Serialize, serde::Deserialize)]
24047#[derive(Clone, PartialEq, ::prost::Message)]
24048pub struct CMsgGcToClientCurrencyPricePoints {
24049    #[prost(uint64, repeated, tag = "1")]
24050    pub price_key: ::prost::alloc::vec::Vec<u64>,
24051    #[prost(message, repeated, tag = "2")]
24052    pub currencies: ::prost::alloc::vec::Vec<
24053        c_msg_gc_to_client_currency_price_points::Currency,
24054    >,
24055}
24056/// Nested message and enum types in `CMsgGCToClientCurrencyPricePoints`.
24057pub mod c_msg_gc_to_client_currency_price_points {
24058    #[derive(serde::Serialize, serde::Deserialize)]
24059    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
24060    pub struct Currency {
24061        #[prost(uint32, optional, tag = "1")]
24062        pub currency_id: ::core::option::Option<u32>,
24063        #[prost(uint64, repeated, tag = "2")]
24064        pub currency_price: ::prost::alloc::vec::Vec<u64>,
24065    }
24066}
24067#[derive(serde::Serialize, serde::Deserialize)]
24068#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
24069pub struct CMsgBannedWordList {
24070    #[prost(uint32, optional, tag = "1")]
24071    pub version: ::core::option::Option<u32>,
24072    #[prost(string, repeated, tag = "2")]
24073    pub banned_words: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
24074}
24075#[derive(serde::Serialize, serde::Deserialize)]
24076#[derive(Clone, PartialEq, ::prost::Message)]
24077pub struct CMsgGcToGcFlushSteamInventoryCache {
24078    #[prost(message, repeated, tag = "1")]
24079    pub keys: ::prost::alloc::vec::Vec<c_msg_gc_to_gc_flush_steam_inventory_cache::Key>,
24080}
24081/// Nested message and enum types in `CMsgGCToGCFlushSteamInventoryCache`.
24082pub mod c_msg_gc_to_gc_flush_steam_inventory_cache {
24083    #[derive(serde::Serialize, serde::Deserialize)]
24084    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24085    pub struct Key {
24086        #[prost(uint64, optional, tag = "1")]
24087        pub steamid: ::core::option::Option<u64>,
24088        #[prost(uint64, optional, tag = "2")]
24089        pub contextid: ::core::option::Option<u64>,
24090    }
24091}
24092#[derive(serde::Serialize, serde::Deserialize)]
24093#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24094pub struct CMsgGcToGcUpdateSubscriptionItems {
24095    #[prost(uint32, optional, tag = "1")]
24096    pub account_id: ::core::option::Option<u32>,
24097    #[prost(bool, optional, tag = "2")]
24098    pub always_notify: ::core::option::Option<bool>,
24099}
24100#[derive(serde::Serialize, serde::Deserialize)]
24101#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24102pub struct CMsgGcToGcSelfPing {
24103    #[prost(uint32, optional, tag = "1")]
24104    pub sample_id: ::core::option::Option<u32>,
24105}
24106#[derive(serde::Serialize, serde::Deserialize)]
24107#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24108pub struct CMsgGcToGcGetInfuxIntervalStats {}
24109#[derive(serde::Serialize, serde::Deserialize)]
24110#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
24111pub struct CMsgGcToGcGetInfuxIntervalStatsResponse {
24112    #[prost(fixed32, repeated, tag = "1")]
24113    pub stat_ids: ::prost::alloc::vec::Vec<u32>,
24114    #[prost(uint64, repeated, tag = "2")]
24115    pub stat_total: ::prost::alloc::vec::Vec<u64>,
24116    #[prost(uint32, repeated, tag = "3")]
24117    pub stat_samples: ::prost::alloc::vec::Vec<u32>,
24118    #[prost(uint32, repeated, tag = "4")]
24119    pub stat_max: ::prost::alloc::vec::Vec<u32>,
24120    #[prost(uint32, optional, tag = "5")]
24121    pub sample_duration_ms: ::core::option::Option<u32>,
24122}
24123#[derive(serde::Serialize, serde::Deserialize)]
24124#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24125pub struct CMsgGcToGcPurchaseSucceeded {}
24126#[derive(serde::Serialize, serde::Deserialize)]
24127#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24128pub struct CMsgClientToGcGetLimitedItemPurchaseQuantity {
24129    #[prost(uint32, optional, tag = "1")]
24130    pub item_def: ::core::option::Option<u32>,
24131}
24132#[derive(serde::Serialize, serde::Deserialize)]
24133#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24134pub struct CMsgClientToGcGetLimitedItemPurchaseQuantityResponse {
24135    #[prost(
24136        enumeration = "c_msg_client_to_gc_get_limited_item_purchase_quantity_response::EResponse",
24137        optional,
24138        tag = "1",
24139        default = "KEInternalError"
24140    )]
24141    pub result: ::core::option::Option<i32>,
24142    #[prost(uint32, optional, tag = "2")]
24143    pub quantity_purchased: ::core::option::Option<u32>,
24144}
24145/// Nested message and enum types in `CMsgClientToGCGetLimitedItemPurchaseQuantityResponse`.
24146pub mod c_msg_client_to_gc_get_limited_item_purchase_quantity_response {
24147    #[derive(serde::Serialize, serde::Deserialize)]
24148    #[derive(
24149        Clone,
24150        Copy,
24151        Debug,
24152        PartialEq,
24153        Eq,
24154        Hash,
24155        PartialOrd,
24156        Ord,
24157        ::prost::Enumeration
24158    )]
24159    #[repr(i32)]
24160    pub enum EResponse {
24161        KEInternalError = 0,
24162        KESuccess = 1,
24163        KETooBusy = 2,
24164        KEDisabled = 3,
24165        KETimeout = 4,
24166        KEInvalidItemDef = 5,
24167        KEItemDefNotLimited = 6,
24168    }
24169    impl EResponse {
24170        /// String value of the enum field names used in the ProtoBuf definition.
24171        ///
24172        /// The values are not transformed in any way and thus are considered stable
24173        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
24174        pub fn as_str_name(&self) -> &'static str {
24175            match self {
24176                Self::KEInternalError => "k_eInternalError",
24177                Self::KESuccess => "k_eSuccess",
24178                Self::KETooBusy => "k_eTooBusy",
24179                Self::KEDisabled => "k_eDisabled",
24180                Self::KETimeout => "k_eTimeout",
24181                Self::KEInvalidItemDef => "k_eInvalidItemDef",
24182                Self::KEItemDefNotLimited => "k_eItemDefNotLimited",
24183            }
24184        }
24185        /// Creates an enum from field names used in the ProtoBuf definition.
24186        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
24187            match value {
24188                "k_eInternalError" => Some(Self::KEInternalError),
24189                "k_eSuccess" => Some(Self::KESuccess),
24190                "k_eTooBusy" => Some(Self::KETooBusy),
24191                "k_eDisabled" => Some(Self::KEDisabled),
24192                "k_eTimeout" => Some(Self::KETimeout),
24193                "k_eInvalidItemDef" => Some(Self::KEInvalidItemDef),
24194                "k_eItemDefNotLimited" => Some(Self::KEItemDefNotLimited),
24195                _ => None,
24196            }
24197        }
24198    }
24199}
24200#[derive(serde::Serialize, serde::Deserialize)]
24201#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24202pub struct CMsgClientToGcGetInFlightItemCharges {
24203    #[prost(uint32, optional, tag = "1")]
24204    pub item_def: ::core::option::Option<u32>,
24205}
24206#[derive(serde::Serialize, serde::Deserialize)]
24207#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24208pub struct CMsgClientToGcGetInFlightItemChargesResponse {
24209    #[prost(
24210        enumeration = "c_msg_client_to_gc_get_in_flight_item_charges_response::EResponse",
24211        optional,
24212        tag = "1",
24213        default = "KEInternalError"
24214    )]
24215    pub result: ::core::option::Option<i32>,
24216    #[prost(uint32, optional, tag = "2")]
24217    pub charges_in_flight: ::core::option::Option<u32>,
24218}
24219/// Nested message and enum types in `CMsgClientToGCGetInFlightItemChargesResponse`.
24220pub mod c_msg_client_to_gc_get_in_flight_item_charges_response {
24221    #[derive(serde::Serialize, serde::Deserialize)]
24222    #[derive(
24223        Clone,
24224        Copy,
24225        Debug,
24226        PartialEq,
24227        Eq,
24228        Hash,
24229        PartialOrd,
24230        Ord,
24231        ::prost::Enumeration
24232    )]
24233    #[repr(i32)]
24234    pub enum EResponse {
24235        KEInternalError = 0,
24236        KESuccess = 1,
24237        KETooBusy = 2,
24238        KEDisabled = 3,
24239        KETimeout = 4,
24240        KEInvalidItemDef = 5,
24241    }
24242    impl EResponse {
24243        /// String value of the enum field names used in the ProtoBuf definition.
24244        ///
24245        /// The values are not transformed in any way and thus are considered stable
24246        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
24247        pub fn as_str_name(&self) -> &'static str {
24248            match self {
24249                Self::KEInternalError => "k_eInternalError",
24250                Self::KESuccess => "k_eSuccess",
24251                Self::KETooBusy => "k_eTooBusy",
24252                Self::KEDisabled => "k_eDisabled",
24253                Self::KETimeout => "k_eTimeout",
24254                Self::KEInvalidItemDef => "k_eInvalidItemDef",
24255            }
24256        }
24257        /// Creates an enum from field names used in the ProtoBuf definition.
24258        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
24259            match value {
24260                "k_eInternalError" => Some(Self::KEInternalError),
24261                "k_eSuccess" => Some(Self::KESuccess),
24262                "k_eTooBusy" => Some(Self::KETooBusy),
24263                "k_eDisabled" => Some(Self::KEDisabled),
24264                "k_eTimeout" => Some(Self::KETimeout),
24265                "k_eInvalidItemDef" => Some(Self::KEInvalidItemDef),
24266                _ => None,
24267            }
24268        }
24269    }
24270}
24271#[derive(serde::Serialize, serde::Deserialize)]
24272#[derive(Clone, PartialEq, ::prost::Message)]
24273pub struct CMsgClientToGcPurchaseChargeCostItems {
24274    #[prost(message, repeated, tag = "1")]
24275    pub items: ::prost::alloc::vec::Vec<
24276        c_msg_client_to_gc_purchase_charge_cost_items::Item,
24277    >,
24278    #[prost(uint32, optional, tag = "2")]
24279    pub currency: ::core::option::Option<u32>,
24280}
24281/// Nested message and enum types in `CMsgClientToGCPurchaseChargeCostItems`.
24282pub mod c_msg_client_to_gc_purchase_charge_cost_items {
24283    #[derive(serde::Serialize, serde::Deserialize)]
24284    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24285    pub struct Item {
24286        #[prost(uint32, optional, tag = "1")]
24287        pub item_def_index: ::core::option::Option<u32>,
24288        #[prost(uint32, optional, tag = "2")]
24289        pub quantity: ::core::option::Option<u32>,
24290        #[prost(uint64, optional, tag = "3")]
24291        pub source_reference_id: ::core::option::Option<u64>,
24292        #[prost(int32, optional, tag = "4")]
24293        pub price_index: ::core::option::Option<i32>,
24294    }
24295}
24296#[derive(serde::Serialize, serde::Deserialize)]
24297#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
24298pub struct CMsgClientToGcPurchaseChargeCostItemsResponse {
24299    #[prost(
24300        enumeration = "c_msg_client_to_gc_purchase_charge_cost_items_response::EResponse",
24301        optional,
24302        tag = "1",
24303        default = "KEInternalError"
24304    )]
24305    pub result: ::core::option::Option<i32>,
24306    #[prost(uint64, repeated, packed = "false", tag = "2")]
24307    pub item_ids: ::prost::alloc::vec::Vec<u64>,
24308}
24309/// Nested message and enum types in `CMsgClientToGCPurchaseChargeCostItemsResponse`.
24310pub mod c_msg_client_to_gc_purchase_charge_cost_items_response {
24311    #[derive(serde::Serialize, serde::Deserialize)]
24312    #[derive(
24313        Clone,
24314        Copy,
24315        Debug,
24316        PartialEq,
24317        Eq,
24318        Hash,
24319        PartialOrd,
24320        Ord,
24321        ::prost::Enumeration
24322    )]
24323    #[repr(i32)]
24324    pub enum EResponse {
24325        KEInternalError = 0,
24326        KESuccess = 1,
24327        KETooBusy = 2,
24328        KEDisabled = 3,
24329        KETimeout = 4,
24330        KEInvalidParam = 5,
24331        KEInvalidPrice = 6,
24332        KEInsufficientCharges = 7,
24333        KELimitedItem = 8,
24334        KEMissingPrereq = 10,
24335    }
24336    impl EResponse {
24337        /// String value of the enum field names used in the ProtoBuf definition.
24338        ///
24339        /// The values are not transformed in any way and thus are considered stable
24340        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
24341        pub fn as_str_name(&self) -> &'static str {
24342            match self {
24343                Self::KEInternalError => "k_eInternalError",
24344                Self::KESuccess => "k_eSuccess",
24345                Self::KETooBusy => "k_eTooBusy",
24346                Self::KEDisabled => "k_eDisabled",
24347                Self::KETimeout => "k_eTimeout",
24348                Self::KEInvalidParam => "k_eInvalidParam",
24349                Self::KEInvalidPrice => "k_eInvalidPrice",
24350                Self::KEInsufficientCharges => "k_eInsufficientCharges",
24351                Self::KELimitedItem => "k_eLimitedItem",
24352                Self::KEMissingPrereq => "k_eMissingPrereq",
24353            }
24354        }
24355        /// Creates an enum from field names used in the ProtoBuf definition.
24356        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
24357            match value {
24358                "k_eInternalError" => Some(Self::KEInternalError),
24359                "k_eSuccess" => Some(Self::KESuccess),
24360                "k_eTooBusy" => Some(Self::KETooBusy),
24361                "k_eDisabled" => Some(Self::KEDisabled),
24362                "k_eTimeout" => Some(Self::KETimeout),
24363                "k_eInvalidParam" => Some(Self::KEInvalidParam),
24364                "k_eInvalidPrice" => Some(Self::KEInvalidPrice),
24365                "k_eInsufficientCharges" => Some(Self::KEInsufficientCharges),
24366                "k_eLimitedItem" => Some(Self::KELimitedItem),
24367                "k_eMissingPrereq" => Some(Self::KEMissingPrereq),
24368                _ => None,
24369            }
24370        }
24371    }
24372}
24373#[derive(serde::Serialize, serde::Deserialize)]
24374#[derive(Clone, PartialEq, ::prost::Message)]
24375pub struct CMsgGcToClientInFlightChargesUpdated {
24376    #[prost(message, repeated, tag = "2")]
24377    pub in_flight_charges: ::prost::alloc::vec::Vec<
24378        c_msg_gc_to_client_in_flight_charges_updated::ItemCharges,
24379    >,
24380}
24381/// Nested message and enum types in `CMsgGCToClientInFlightChargesUpdated`.
24382pub mod c_msg_gc_to_client_in_flight_charges_updated {
24383    #[derive(serde::Serialize, serde::Deserialize)]
24384    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24385    pub struct ItemCharges {
24386        #[prost(uint32, optional, tag = "1")]
24387        pub item_def: ::core::option::Option<u32>,
24388        #[prost(uint32, optional, tag = "2")]
24389        pub charges_in_flight: ::core::option::Option<u32>,
24390    }
24391}
24392#[derive(serde::Serialize, serde::Deserialize)]
24393#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24394pub struct CMsgClientToGcCancelUnfinalizedTransactions {
24395    #[prost(uint32, optional, tag = "1")]
24396    pub unused: ::core::option::Option<u32>,
24397}
24398#[derive(serde::Serialize, serde::Deserialize)]
24399#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24400pub struct CMsgClientToGcCancelUnfinalizedTransactionsResponse {
24401    #[prost(uint32, optional, tag = "1")]
24402    pub result: ::core::option::Option<u32>,
24403}
24404#[derive(serde::Serialize, serde::Deserialize)]
24405#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
24406pub struct CMsgGcToGcUpdateWelcomeMsg {
24407    #[prost(bool, optional, tag = "1")]
24408    pub server: ::core::option::Option<bool>,
24409    #[prost(message, optional, tag = "2")]
24410    pub new_msg: ::core::option::Option<CExtraMsgBlock>,
24411    #[prost(bool, optional, tag = "3")]
24412    pub broadcast: ::core::option::Option<bool>,
24413}
24414#[derive(serde::Serialize, serde::Deserialize)]
24415#[derive(Clone, PartialEq, ::prost::Message)]
24416pub struct CMsgClientToGcRecycleMultipleItems {
24417    #[prost(message, repeated, tag = "1")]
24418    pub items: ::prost::alloc::vec::Vec<c_msg_client_to_gc_recycle_multiple_items::Item>,
24419}
24420/// Nested message and enum types in `CMsgClientToGCRecycleMultipleItems`.
24421pub mod c_msg_client_to_gc_recycle_multiple_items {
24422    #[derive(serde::Serialize, serde::Deserialize)]
24423    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24424    pub struct Item {
24425        #[prost(uint64, optional, tag = "1")]
24426        pub item_id: ::core::option::Option<u64>,
24427        #[prost(uint32, optional, tag = "2")]
24428        pub slot_id: ::core::option::Option<u32>,
24429        #[prost(uint32, optional, tag = "3")]
24430        pub recipe_def_index: ::core::option::Option<u32>,
24431    }
24432}
24433#[derive(serde::Serialize, serde::Deserialize)]
24434#[derive(Clone, PartialEq, ::prost::Message)]
24435pub struct CMsgClientToGcRecycleMultipleItemsResponse {
24436    #[prost(message, repeated, tag = "1")]
24437    pub responses: ::prost::alloc::vec::Vec<CMsgClientToGcCreateStaticRecipeResponse>,
24438}
24439#[derive(serde::Serialize, serde::Deserialize)]
24440#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
24441#[repr(i32)]
24442pub enum EgcItemMsg {
24443    KEMsgGcBase = 1000,
24444    KEMsgGcSetItemPosition = 1001,
24445    KEMsgClientToGcPackBundle = 1002,
24446    KEMsgClientToGcPackBundleResponse = 1003,
24447    KEMsgGcDelete = 1004,
24448    KEMsgGcVerifyCacheSubscription = 1005,
24449    KEMsgClientToGcNameItem = 1006,
24450    KEMsgGcPaintItem = 1009,
24451    KEMsgGcPaintItemResponse = 1010,
24452    KEMsgGcNameBaseItem = 1019,
24453    KEMsgGcNameBaseItemResponse = 1020,
24454    KEMsgGcUseItemRequest = 1025,
24455    KEMsgGcUseItemResponse = 1026,
24456    KEMsgGcGiftedItems = 1027,
24457    KEMsgGcUnwrapGiftRequest = 1037,
24458    KEMsgGcUnwrapGiftResponse = 1038,
24459    KEMsgGcSortItems = 1041,
24460    KEMsgGcBackpackSortFinished = 1058,
24461    KEMsgGcAdjustItemEquippedState = 1059,
24462    KEMsgGcItemAcknowledged = 1062,
24463    KEMsgClientToGcNameItemResponse = 1068,
24464    KEMsgGcApplyStrangePart = 1073,
24465    KEMsgGcApplyPennantUpgrade = 1076,
24466    KEMsgGcSetItemPositions = 1077,
24467    KEMsgGcApplyEggEssence = 1078,
24468    KEMsgGcNameEggEssenceResponse = 1079,
24469    KEMsgGcExtractGems = 1086,
24470    KEMsgGcAddSocket = 1087,
24471    KEMsgGcAddItemToSocket = 1088,
24472    KEMsgGcAddItemToSocketResponse = 1089,
24473    KEMsgGcAddSocketResponse = 1090,
24474    KEMsgGcResetStrangeGemCount = 1091,
24475    KEMsgGcRequestCrateItems = 1092,
24476    KEMsgGcRequestCrateItemsResponse = 1093,
24477    KEMsgGcExtractGemsResponse = 1094,
24478    KEMsgGcResetStrangeGemCountResponse = 1095,
24479    KEMsgGcServerUseItemRequest = 1103,
24480    KEMsgGcAddGiftItem = 1104,
24481    KEMsgSqlgcToGcRevokeUntrustedGift = 1105,
24482    KEMsgClientToGcRemoveItemGifterAttributes = 1109,
24483    KEMsgClientToGcRemoveItemName = 1110,
24484    KEMsgClientToGcRemoveItemDescription = 1111,
24485    KEMsgClientToGcRemoveItemAttributeResponse = 1112,
24486    KEMsgGcDevNewItemRequest = 2001,
24487    KEMsgGcDevNewItemRequestResponse = 2002,
24488    KEMsgGcDevUnlockAllItemStylesRequest = 2003,
24489    KEMsgGcDevUnlockAllItemStylesResponse = 2004,
24490    KEMsgGcStorePurchaseFinalize = 2504,
24491    KEMsgGcStorePurchaseFinalizeResponse = 2505,
24492    KEMsgGcStorePurchaseCancel = 2506,
24493    KEMsgGcStorePurchaseCancelResponse = 2507,
24494    KEMsgGcStorePurchaseInit = 2510,
24495    KEMsgGcStorePurchaseInitResponse = 2511,
24496    KEMsgGcToGcBannedWordListUpdated = 2515,
24497    KEMsgGcToGcDirtySdoCache = 2516,
24498    KEMsgGcToGcUpdateSqlKeyValue = 2518,
24499    KEMsgGcToGcBroadcastConsoleCommand = 2521,
24500    KEMsgGcServerVersionUpdated = 2522,
24501    KEMsgGcApplyAutograph = 2523,
24502    KEMsgGcToGcWebApiAccountChanged = 2524,
24503    KEMsgGcClientVersionUpdated = 2528,
24504    KEMsgGcToGcUpdateWelcomeMsg = 2529,
24505    KEMsgGcToGcPlayerStrangeCountAdjustments = 2535,
24506    KEMsgGcRequestStoreSalesData = 2536,
24507    KEMsgGcRequestStoreSalesDataResponse = 2537,
24508    KEMsgGcRequestStoreSalesDataUpToDateResponse = 2538,
24509    KEMsgGcToGcPingRequest = 2539,
24510    KEMsgGcToGcPingResponse = 2540,
24511    KEMsgGcToGcGetUserSessionServer = 2541,
24512    KEMsgGcToGcGetUserSessionServerResponse = 2542,
24513    KEMsgGcToGcGetUserServerMembers = 2543,
24514    KEMsgGcToGcGetUserServerMembersResponse = 2544,
24515    KEMsgGcToGcCanUseDropRateBonus = 2547,
24516    KEMsgSqlAddDropRateBonus = 2548,
24517    KEMsgGcToGcRefreshSoCache = 2549,
24518    KEMsgGcToGcGrantAccountRolledItems = 2554,
24519    KEMsgGcToGcGrantSelfMadeItemToAccount = 2555,
24520    KEMsgGcToGcUnlockCrate = 2556,
24521    KEMsgGcStatueCraft = 2561,
24522    KEMsgGcRedeemCode = 2562,
24523    KEMsgGcRedeemCodeResponse = 2563,
24524    KEMsgGcToGcItemConsumptionRollback = 2564,
24525    KEMsgClientToGcWrapAndDeliverGift = 2565,
24526    KEMsgClientToGcWrapAndDeliverGiftResponse = 2566,
24527    KEMsgClientToGcUnpackBundleResponse = 2567,
24528    KEMsgGcToClientStoreTransactionCompleted = 2568,
24529    KEMsgClientToGcEquipItems = 2569,
24530    KEMsgClientToGcEquipItemsResponse = 2570,
24531    KEMsgClientToGcUnlockItemStyle = 2571,
24532    KEMsgClientToGcUnlockItemStyleResponse = 2572,
24533    KEMsgClientToGcSetItemInventoryCategory = 2573,
24534    KEMsgClientToGcUnlockCrate = 2574,
24535    KEMsgClientToGcUnlockCrateResponse = 2575,
24536    KEMsgClientToGcUnpackBundle = 2576,
24537    KEMsgClientToGcSetItemStyle = 2577,
24538    KEMsgClientToGcSetItemStyleResponse = 2578,
24539    KEMsgSqlgcToGcGrantBackpackSlots = 2580,
24540    KEMsgClientToGcLookupAccountName = 2581,
24541    KEMsgClientToGcLookupAccountNameResponse = 2582,
24542    KEMsgClientToGcCreateStaticRecipe = 2584,
24543    KEMsgClientToGcCreateStaticRecipeResponse = 2585,
24544    KEMsgGcToGcStoreProcessCdKeyTransaction = 2586,
24545    KEMsgGcToGcStoreProcessCdKeyTransactionResponse = 2587,
24546    KEMsgGcToGcStoreProcessSettlement = 2588,
24547    KEMsgGcToGcStoreProcessSettlementResponse = 2589,
24548    KEMsgGcToGcConsoleOutput = 2590,
24549    KEMsgGcToClientItemAges = 2591,
24550    KEMsgGcToGcInternalTestMsg = 2592,
24551    KEMsgGcToGcClientServerVersionsUpdated = 2593,
24552    KEMsgGcUseMultipleItemsRequest = 2594,
24553    KEMsgGcGetAccountSubscriptionItem = 2595,
24554    KEMsgGcGetAccountSubscriptionItemResponse = 2596,
24555    KEMsgGcToGcBroadcastMessageFromSub = 2598,
24556    KEMsgGcToClientCurrencyPricePoints = 2599,
24557    KEMsgGcToGcAddSubscriptionTime = 2600,
24558    KEMsgGcToGcFlushSteamInventoryCache = 2601,
24559    KEMsgGcRequestCrateEscalationLevel = 2602,
24560    KEMsgGcRequestCrateEscalationLevelResponse = 2603,
24561    KEMsgGcToGcUpdateSubscriptionItems = 2604,
24562    KEMsgGcToGcSelfPing = 2605,
24563    KEMsgGcToGcGetInfuxIntervalStats = 2606,
24564    KEMsgGcToGcGetInfuxIntervalStatsResponse = 2607,
24565    KEMsgGcToGcPurchaseSucceeded = 2608,
24566    KEMsgClientToGcGetLimitedItemPurchaseQuantity = 2609,
24567    KEMsgClientToGcGetLimitedItemPurchaseQuantityResponse = 2610,
24568    KEMsgGcToGcBetaDeleteItems = 2611,
24569    KEMsgClientToGcGetInFlightItemCharges = 2612,
24570    KEMsgClientToGcGetInFlightItemChargesResponse = 2613,
24571    KEMsgGcToClientInFlightChargesUpdated = 2614,
24572    KEMsgClientToGcPurchaseChargeCostItems = 2615,
24573    KEMsgClientToGcPurchaseChargeCostItemsResponse = 2616,
24574    KEMsgClientToGcCancelUnfinalizedTransactions = 2617,
24575    KEMsgClientToGcCancelUnfinalizedTransactionsResponse = 2618,
24576    KEMsgClientToGcRecycleMultipleItems = 2619,
24577    KEMsgClientToGcRecycleMultipleItemsResponse = 2620,
24578}
24579impl EgcItemMsg {
24580    /// String value of the enum field names used in the ProtoBuf definition.
24581    ///
24582    /// The values are not transformed in any way and thus are considered stable
24583    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
24584    pub fn as_str_name(&self) -> &'static str {
24585        match self {
24586            Self::KEMsgGcBase => "k_EMsgGCBase",
24587            Self::KEMsgGcSetItemPosition => "k_EMsgGCSetItemPosition",
24588            Self::KEMsgClientToGcPackBundle => "k_EMsgClientToGCPackBundle",
24589            Self::KEMsgClientToGcPackBundleResponse => {
24590                "k_EMsgClientToGCPackBundleResponse"
24591            }
24592            Self::KEMsgGcDelete => "k_EMsgGCDelete",
24593            Self::KEMsgGcVerifyCacheSubscription => "k_EMsgGCVerifyCacheSubscription",
24594            Self::KEMsgClientToGcNameItem => "k_EMsgClientToGCNameItem",
24595            Self::KEMsgGcPaintItem => "k_EMsgGCPaintItem",
24596            Self::KEMsgGcPaintItemResponse => "k_EMsgGCPaintItemResponse",
24597            Self::KEMsgGcNameBaseItem => "k_EMsgGCNameBaseItem",
24598            Self::KEMsgGcNameBaseItemResponse => "k_EMsgGCNameBaseItemResponse",
24599            Self::KEMsgGcUseItemRequest => "k_EMsgGCUseItemRequest",
24600            Self::KEMsgGcUseItemResponse => "k_EMsgGCUseItemResponse",
24601            Self::KEMsgGcGiftedItems => "k_EMsgGCGiftedItems",
24602            Self::KEMsgGcUnwrapGiftRequest => "k_EMsgGCUnwrapGiftRequest",
24603            Self::KEMsgGcUnwrapGiftResponse => "k_EMsgGCUnwrapGiftResponse",
24604            Self::KEMsgGcSortItems => "k_EMsgGCSortItems",
24605            Self::KEMsgGcBackpackSortFinished => "k_EMsgGCBackpackSortFinished",
24606            Self::KEMsgGcAdjustItemEquippedState => "k_EMsgGCAdjustItemEquippedState",
24607            Self::KEMsgGcItemAcknowledged => "k_EMsgGCItemAcknowledged",
24608            Self::KEMsgClientToGcNameItemResponse => "k_EMsgClientToGCNameItemResponse",
24609            Self::KEMsgGcApplyStrangePart => "k_EMsgGCApplyStrangePart",
24610            Self::KEMsgGcApplyPennantUpgrade => "k_EMsgGCApplyPennantUpgrade",
24611            Self::KEMsgGcSetItemPositions => "k_EMsgGCSetItemPositions",
24612            Self::KEMsgGcApplyEggEssence => "k_EMsgGCApplyEggEssence",
24613            Self::KEMsgGcNameEggEssenceResponse => "k_EMsgGCNameEggEssenceResponse",
24614            Self::KEMsgGcExtractGems => "k_EMsgGCExtractGems",
24615            Self::KEMsgGcAddSocket => "k_EMsgGCAddSocket",
24616            Self::KEMsgGcAddItemToSocket => "k_EMsgGCAddItemToSocket",
24617            Self::KEMsgGcAddItemToSocketResponse => "k_EMsgGCAddItemToSocketResponse",
24618            Self::KEMsgGcAddSocketResponse => "k_EMsgGCAddSocketResponse",
24619            Self::KEMsgGcResetStrangeGemCount => "k_EMsgGCResetStrangeGemCount",
24620            Self::KEMsgGcRequestCrateItems => "k_EMsgGCRequestCrateItems",
24621            Self::KEMsgGcRequestCrateItemsResponse => "k_EMsgGCRequestCrateItemsResponse",
24622            Self::KEMsgGcExtractGemsResponse => "k_EMsgGCExtractGemsResponse",
24623            Self::KEMsgGcResetStrangeGemCountResponse => {
24624                "k_EMsgGCResetStrangeGemCountResponse"
24625            }
24626            Self::KEMsgGcServerUseItemRequest => "k_EMsgGCServerUseItemRequest",
24627            Self::KEMsgGcAddGiftItem => "k_EMsgGCAddGiftItem",
24628            Self::KEMsgSqlgcToGcRevokeUntrustedGift => {
24629                "k_EMsgSQLGCToGCRevokeUntrustedGift"
24630            }
24631            Self::KEMsgClientToGcRemoveItemGifterAttributes => {
24632                "k_EMsgClientToGCRemoveItemGifterAttributes"
24633            }
24634            Self::KEMsgClientToGcRemoveItemName => "k_EMsgClientToGCRemoveItemName",
24635            Self::KEMsgClientToGcRemoveItemDescription => {
24636                "k_EMsgClientToGCRemoveItemDescription"
24637            }
24638            Self::KEMsgClientToGcRemoveItemAttributeResponse => {
24639                "k_EMsgClientToGCRemoveItemAttributeResponse"
24640            }
24641            Self::KEMsgGcDevNewItemRequest => "k_EMsgGCDev_NewItemRequest",
24642            Self::KEMsgGcDevNewItemRequestResponse => {
24643                "k_EMsgGCDev_NewItemRequestResponse"
24644            }
24645            Self::KEMsgGcDevUnlockAllItemStylesRequest => {
24646                "k_EMsgGCDev_UnlockAllItemStylesRequest"
24647            }
24648            Self::KEMsgGcDevUnlockAllItemStylesResponse => {
24649                "k_EMsgGCDev_UnlockAllItemStylesResponse"
24650            }
24651            Self::KEMsgGcStorePurchaseFinalize => "k_EMsgGCStorePurchaseFinalize",
24652            Self::KEMsgGcStorePurchaseFinalizeResponse => {
24653                "k_EMsgGCStorePurchaseFinalizeResponse"
24654            }
24655            Self::KEMsgGcStorePurchaseCancel => "k_EMsgGCStorePurchaseCancel",
24656            Self::KEMsgGcStorePurchaseCancelResponse => {
24657                "k_EMsgGCStorePurchaseCancelResponse"
24658            }
24659            Self::KEMsgGcStorePurchaseInit => "k_EMsgGCStorePurchaseInit",
24660            Self::KEMsgGcStorePurchaseInitResponse => "k_EMsgGCStorePurchaseInitResponse",
24661            Self::KEMsgGcToGcBannedWordListUpdated => "k_EMsgGCToGCBannedWordListUpdated",
24662            Self::KEMsgGcToGcDirtySdoCache => "k_EMsgGCToGCDirtySDOCache",
24663            Self::KEMsgGcToGcUpdateSqlKeyValue => "k_EMsgGCToGCUpdateSQLKeyValue",
24664            Self::KEMsgGcToGcBroadcastConsoleCommand => {
24665                "k_EMsgGCToGCBroadcastConsoleCommand"
24666            }
24667            Self::KEMsgGcServerVersionUpdated => "k_EMsgGCServerVersionUpdated",
24668            Self::KEMsgGcApplyAutograph => "k_EMsgGCApplyAutograph",
24669            Self::KEMsgGcToGcWebApiAccountChanged => "k_EMsgGCToGCWebAPIAccountChanged",
24670            Self::KEMsgGcClientVersionUpdated => "k_EMsgGCClientVersionUpdated",
24671            Self::KEMsgGcToGcUpdateWelcomeMsg => "k_EMsgGCToGCUpdateWelcomeMsg",
24672            Self::KEMsgGcToGcPlayerStrangeCountAdjustments => {
24673                "k_EMsgGCToGCPlayerStrangeCountAdjustments"
24674            }
24675            Self::KEMsgGcRequestStoreSalesData => "k_EMsgGCRequestStoreSalesData",
24676            Self::KEMsgGcRequestStoreSalesDataResponse => {
24677                "k_EMsgGCRequestStoreSalesDataResponse"
24678            }
24679            Self::KEMsgGcRequestStoreSalesDataUpToDateResponse => {
24680                "k_EMsgGCRequestStoreSalesDataUpToDateResponse"
24681            }
24682            Self::KEMsgGcToGcPingRequest => "k_EMsgGCToGCPingRequest",
24683            Self::KEMsgGcToGcPingResponse => "k_EMsgGCToGCPingResponse",
24684            Self::KEMsgGcToGcGetUserSessionServer => "k_EMsgGCToGCGetUserSessionServer",
24685            Self::KEMsgGcToGcGetUserSessionServerResponse => {
24686                "k_EMsgGCToGCGetUserSessionServerResponse"
24687            }
24688            Self::KEMsgGcToGcGetUserServerMembers => "k_EMsgGCToGCGetUserServerMembers",
24689            Self::KEMsgGcToGcGetUserServerMembersResponse => {
24690                "k_EMsgGCToGCGetUserServerMembersResponse"
24691            }
24692            Self::KEMsgGcToGcCanUseDropRateBonus => "k_EMsgGCToGCCanUseDropRateBonus",
24693            Self::KEMsgSqlAddDropRateBonus => "k_EMsgSQLAddDropRateBonus",
24694            Self::KEMsgGcToGcRefreshSoCache => "k_EMsgGCToGCRefreshSOCache",
24695            Self::KEMsgGcToGcGrantAccountRolledItems => {
24696                "k_EMsgGCToGCGrantAccountRolledItems"
24697            }
24698            Self::KEMsgGcToGcGrantSelfMadeItemToAccount => {
24699                "k_EMsgGCToGCGrantSelfMadeItemToAccount"
24700            }
24701            Self::KEMsgGcToGcUnlockCrate => "k_EMsgGCToGCUnlockCrate",
24702            Self::KEMsgGcStatueCraft => "k_EMsgGCStatueCraft",
24703            Self::KEMsgGcRedeemCode => "k_EMsgGCRedeemCode",
24704            Self::KEMsgGcRedeemCodeResponse => "k_EMsgGCRedeemCodeResponse",
24705            Self::KEMsgGcToGcItemConsumptionRollback => {
24706                "k_EMsgGCToGCItemConsumptionRollback"
24707            }
24708            Self::KEMsgClientToGcWrapAndDeliverGift => {
24709                "k_EMsgClientToGCWrapAndDeliverGift"
24710            }
24711            Self::KEMsgClientToGcWrapAndDeliverGiftResponse => {
24712                "k_EMsgClientToGCWrapAndDeliverGiftResponse"
24713            }
24714            Self::KEMsgClientToGcUnpackBundleResponse => {
24715                "k_EMsgClientToGCUnpackBundleResponse"
24716            }
24717            Self::KEMsgGcToClientStoreTransactionCompleted => {
24718                "k_EMsgGCToClientStoreTransactionCompleted"
24719            }
24720            Self::KEMsgClientToGcEquipItems => "k_EMsgClientToGCEquipItems",
24721            Self::KEMsgClientToGcEquipItemsResponse => {
24722                "k_EMsgClientToGCEquipItemsResponse"
24723            }
24724            Self::KEMsgClientToGcUnlockItemStyle => "k_EMsgClientToGCUnlockItemStyle",
24725            Self::KEMsgClientToGcUnlockItemStyleResponse => {
24726                "k_EMsgClientToGCUnlockItemStyleResponse"
24727            }
24728            Self::KEMsgClientToGcSetItemInventoryCategory => {
24729                "k_EMsgClientToGCSetItemInventoryCategory"
24730            }
24731            Self::KEMsgClientToGcUnlockCrate => "k_EMsgClientToGCUnlockCrate",
24732            Self::KEMsgClientToGcUnlockCrateResponse => {
24733                "k_EMsgClientToGCUnlockCrateResponse"
24734            }
24735            Self::KEMsgClientToGcUnpackBundle => "k_EMsgClientToGCUnpackBundle",
24736            Self::KEMsgClientToGcSetItemStyle => "k_EMsgClientToGCSetItemStyle",
24737            Self::KEMsgClientToGcSetItemStyleResponse => {
24738                "k_EMsgClientToGCSetItemStyleResponse"
24739            }
24740            Self::KEMsgSqlgcToGcGrantBackpackSlots => "k_EMsgSQLGCToGCGrantBackpackSlots",
24741            Self::KEMsgClientToGcLookupAccountName => "k_EMsgClientToGCLookupAccountName",
24742            Self::KEMsgClientToGcLookupAccountNameResponse => {
24743                "k_EMsgClientToGCLookupAccountNameResponse"
24744            }
24745            Self::KEMsgClientToGcCreateStaticRecipe => {
24746                "k_EMsgClientToGCCreateStaticRecipe"
24747            }
24748            Self::KEMsgClientToGcCreateStaticRecipeResponse => {
24749                "k_EMsgClientToGCCreateStaticRecipeResponse"
24750            }
24751            Self::KEMsgGcToGcStoreProcessCdKeyTransaction => {
24752                "k_EMsgGCToGCStoreProcessCDKeyTransaction"
24753            }
24754            Self::KEMsgGcToGcStoreProcessCdKeyTransactionResponse => {
24755                "k_EMsgGCToGCStoreProcessCDKeyTransactionResponse"
24756            }
24757            Self::KEMsgGcToGcStoreProcessSettlement => {
24758                "k_EMsgGCToGCStoreProcessSettlement"
24759            }
24760            Self::KEMsgGcToGcStoreProcessSettlementResponse => {
24761                "k_EMsgGCToGCStoreProcessSettlementResponse"
24762            }
24763            Self::KEMsgGcToGcConsoleOutput => "k_EMsgGCToGCConsoleOutput",
24764            Self::KEMsgGcToClientItemAges => "k_EMsgGCToClientItemAges",
24765            Self::KEMsgGcToGcInternalTestMsg => "k_EMsgGCToGCInternalTestMsg",
24766            Self::KEMsgGcToGcClientServerVersionsUpdated => {
24767                "k_EMsgGCToGCClientServerVersionsUpdated"
24768            }
24769            Self::KEMsgGcUseMultipleItemsRequest => "k_EMsgGCUseMultipleItemsRequest",
24770            Self::KEMsgGcGetAccountSubscriptionItem => {
24771                "k_EMsgGCGetAccountSubscriptionItem"
24772            }
24773            Self::KEMsgGcGetAccountSubscriptionItemResponse => {
24774                "k_EMsgGCGetAccountSubscriptionItemResponse"
24775            }
24776            Self::KEMsgGcToGcBroadcastMessageFromSub => {
24777                "k_EMsgGCToGCBroadcastMessageFromSub"
24778            }
24779            Self::KEMsgGcToClientCurrencyPricePoints => {
24780                "k_EMsgGCToClientCurrencyPricePoints"
24781            }
24782            Self::KEMsgGcToGcAddSubscriptionTime => "k_EMsgGCToGCAddSubscriptionTime",
24783            Self::KEMsgGcToGcFlushSteamInventoryCache => {
24784                "k_EMsgGCToGCFlushSteamInventoryCache"
24785            }
24786            Self::KEMsgGcRequestCrateEscalationLevel => {
24787                "k_EMsgGCRequestCrateEscalationLevel"
24788            }
24789            Self::KEMsgGcRequestCrateEscalationLevelResponse => {
24790                "k_EMsgGCRequestCrateEscalationLevelResponse"
24791            }
24792            Self::KEMsgGcToGcUpdateSubscriptionItems => {
24793                "k_EMsgGCToGCUpdateSubscriptionItems"
24794            }
24795            Self::KEMsgGcToGcSelfPing => "k_EMsgGCToGCSelfPing",
24796            Self::KEMsgGcToGcGetInfuxIntervalStats => "k_EMsgGCToGCGetInfuxIntervalStats",
24797            Self::KEMsgGcToGcGetInfuxIntervalStatsResponse => {
24798                "k_EMsgGCToGCGetInfuxIntervalStatsResponse"
24799            }
24800            Self::KEMsgGcToGcPurchaseSucceeded => "k_EMsgGCToGCPurchaseSucceeded",
24801            Self::KEMsgClientToGcGetLimitedItemPurchaseQuantity => {
24802                "k_EMsgClientToGCGetLimitedItemPurchaseQuantity"
24803            }
24804            Self::KEMsgClientToGcGetLimitedItemPurchaseQuantityResponse => {
24805                "k_EMsgClientToGCGetLimitedItemPurchaseQuantityResponse"
24806            }
24807            Self::KEMsgGcToGcBetaDeleteItems => "k_EMsgGCToGCBetaDeleteItems",
24808            Self::KEMsgClientToGcGetInFlightItemCharges => {
24809                "k_EMsgClientToGCGetInFlightItemCharges"
24810            }
24811            Self::KEMsgClientToGcGetInFlightItemChargesResponse => {
24812                "k_EMsgClientToGCGetInFlightItemChargesResponse"
24813            }
24814            Self::KEMsgGcToClientInFlightChargesUpdated => {
24815                "k_EMsgGCToClientInFlightChargesUpdated"
24816            }
24817            Self::KEMsgClientToGcPurchaseChargeCostItems => {
24818                "k_EMsgClientToGCPurchaseChargeCostItems"
24819            }
24820            Self::KEMsgClientToGcPurchaseChargeCostItemsResponse => {
24821                "k_EMsgClientToGCPurchaseChargeCostItemsResponse"
24822            }
24823            Self::KEMsgClientToGcCancelUnfinalizedTransactions => {
24824                "k_EMsgClientToGCCancelUnfinalizedTransactions"
24825            }
24826            Self::KEMsgClientToGcCancelUnfinalizedTransactionsResponse => {
24827                "k_EMsgClientToGCCancelUnfinalizedTransactionsResponse"
24828            }
24829            Self::KEMsgClientToGcRecycleMultipleItems => {
24830                "k_EMsgClientToGCRecycleMultipleItems"
24831            }
24832            Self::KEMsgClientToGcRecycleMultipleItemsResponse => {
24833                "k_EMsgClientToGCRecycleMultipleItemsResponse"
24834            }
24835        }
24836    }
24837    /// Creates an enum from field names used in the ProtoBuf definition.
24838    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
24839        match value {
24840            "k_EMsgGCBase" => Some(Self::KEMsgGcBase),
24841            "k_EMsgGCSetItemPosition" => Some(Self::KEMsgGcSetItemPosition),
24842            "k_EMsgClientToGCPackBundle" => Some(Self::KEMsgClientToGcPackBundle),
24843            "k_EMsgClientToGCPackBundleResponse" => {
24844                Some(Self::KEMsgClientToGcPackBundleResponse)
24845            }
24846            "k_EMsgGCDelete" => Some(Self::KEMsgGcDelete),
24847            "k_EMsgGCVerifyCacheSubscription" => {
24848                Some(Self::KEMsgGcVerifyCacheSubscription)
24849            }
24850            "k_EMsgClientToGCNameItem" => Some(Self::KEMsgClientToGcNameItem),
24851            "k_EMsgGCPaintItem" => Some(Self::KEMsgGcPaintItem),
24852            "k_EMsgGCPaintItemResponse" => Some(Self::KEMsgGcPaintItemResponse),
24853            "k_EMsgGCNameBaseItem" => Some(Self::KEMsgGcNameBaseItem),
24854            "k_EMsgGCNameBaseItemResponse" => Some(Self::KEMsgGcNameBaseItemResponse),
24855            "k_EMsgGCUseItemRequest" => Some(Self::KEMsgGcUseItemRequest),
24856            "k_EMsgGCUseItemResponse" => Some(Self::KEMsgGcUseItemResponse),
24857            "k_EMsgGCGiftedItems" => Some(Self::KEMsgGcGiftedItems),
24858            "k_EMsgGCUnwrapGiftRequest" => Some(Self::KEMsgGcUnwrapGiftRequest),
24859            "k_EMsgGCUnwrapGiftResponse" => Some(Self::KEMsgGcUnwrapGiftResponse),
24860            "k_EMsgGCSortItems" => Some(Self::KEMsgGcSortItems),
24861            "k_EMsgGCBackpackSortFinished" => Some(Self::KEMsgGcBackpackSortFinished),
24862            "k_EMsgGCAdjustItemEquippedState" => {
24863                Some(Self::KEMsgGcAdjustItemEquippedState)
24864            }
24865            "k_EMsgGCItemAcknowledged" => Some(Self::KEMsgGcItemAcknowledged),
24866            "k_EMsgClientToGCNameItemResponse" => {
24867                Some(Self::KEMsgClientToGcNameItemResponse)
24868            }
24869            "k_EMsgGCApplyStrangePart" => Some(Self::KEMsgGcApplyStrangePart),
24870            "k_EMsgGCApplyPennantUpgrade" => Some(Self::KEMsgGcApplyPennantUpgrade),
24871            "k_EMsgGCSetItemPositions" => Some(Self::KEMsgGcSetItemPositions),
24872            "k_EMsgGCApplyEggEssence" => Some(Self::KEMsgGcApplyEggEssence),
24873            "k_EMsgGCNameEggEssenceResponse" => Some(Self::KEMsgGcNameEggEssenceResponse),
24874            "k_EMsgGCExtractGems" => Some(Self::KEMsgGcExtractGems),
24875            "k_EMsgGCAddSocket" => Some(Self::KEMsgGcAddSocket),
24876            "k_EMsgGCAddItemToSocket" => Some(Self::KEMsgGcAddItemToSocket),
24877            "k_EMsgGCAddItemToSocketResponse" => {
24878                Some(Self::KEMsgGcAddItemToSocketResponse)
24879            }
24880            "k_EMsgGCAddSocketResponse" => Some(Self::KEMsgGcAddSocketResponse),
24881            "k_EMsgGCResetStrangeGemCount" => Some(Self::KEMsgGcResetStrangeGemCount),
24882            "k_EMsgGCRequestCrateItems" => Some(Self::KEMsgGcRequestCrateItems),
24883            "k_EMsgGCRequestCrateItemsResponse" => {
24884                Some(Self::KEMsgGcRequestCrateItemsResponse)
24885            }
24886            "k_EMsgGCExtractGemsResponse" => Some(Self::KEMsgGcExtractGemsResponse),
24887            "k_EMsgGCResetStrangeGemCountResponse" => {
24888                Some(Self::KEMsgGcResetStrangeGemCountResponse)
24889            }
24890            "k_EMsgGCServerUseItemRequest" => Some(Self::KEMsgGcServerUseItemRequest),
24891            "k_EMsgGCAddGiftItem" => Some(Self::KEMsgGcAddGiftItem),
24892            "k_EMsgSQLGCToGCRevokeUntrustedGift" => {
24893                Some(Self::KEMsgSqlgcToGcRevokeUntrustedGift)
24894            }
24895            "k_EMsgClientToGCRemoveItemGifterAttributes" => {
24896                Some(Self::KEMsgClientToGcRemoveItemGifterAttributes)
24897            }
24898            "k_EMsgClientToGCRemoveItemName" => Some(Self::KEMsgClientToGcRemoveItemName),
24899            "k_EMsgClientToGCRemoveItemDescription" => {
24900                Some(Self::KEMsgClientToGcRemoveItemDescription)
24901            }
24902            "k_EMsgClientToGCRemoveItemAttributeResponse" => {
24903                Some(Self::KEMsgClientToGcRemoveItemAttributeResponse)
24904            }
24905            "k_EMsgGCDev_NewItemRequest" => Some(Self::KEMsgGcDevNewItemRequest),
24906            "k_EMsgGCDev_NewItemRequestResponse" => {
24907                Some(Self::KEMsgGcDevNewItemRequestResponse)
24908            }
24909            "k_EMsgGCDev_UnlockAllItemStylesRequest" => {
24910                Some(Self::KEMsgGcDevUnlockAllItemStylesRequest)
24911            }
24912            "k_EMsgGCDev_UnlockAllItemStylesResponse" => {
24913                Some(Self::KEMsgGcDevUnlockAllItemStylesResponse)
24914            }
24915            "k_EMsgGCStorePurchaseFinalize" => Some(Self::KEMsgGcStorePurchaseFinalize),
24916            "k_EMsgGCStorePurchaseFinalizeResponse" => {
24917                Some(Self::KEMsgGcStorePurchaseFinalizeResponse)
24918            }
24919            "k_EMsgGCStorePurchaseCancel" => Some(Self::KEMsgGcStorePurchaseCancel),
24920            "k_EMsgGCStorePurchaseCancelResponse" => {
24921                Some(Self::KEMsgGcStorePurchaseCancelResponse)
24922            }
24923            "k_EMsgGCStorePurchaseInit" => Some(Self::KEMsgGcStorePurchaseInit),
24924            "k_EMsgGCStorePurchaseInitResponse" => {
24925                Some(Self::KEMsgGcStorePurchaseInitResponse)
24926            }
24927            "k_EMsgGCToGCBannedWordListUpdated" => {
24928                Some(Self::KEMsgGcToGcBannedWordListUpdated)
24929            }
24930            "k_EMsgGCToGCDirtySDOCache" => Some(Self::KEMsgGcToGcDirtySdoCache),
24931            "k_EMsgGCToGCUpdateSQLKeyValue" => Some(Self::KEMsgGcToGcUpdateSqlKeyValue),
24932            "k_EMsgGCToGCBroadcastConsoleCommand" => {
24933                Some(Self::KEMsgGcToGcBroadcastConsoleCommand)
24934            }
24935            "k_EMsgGCServerVersionUpdated" => Some(Self::KEMsgGcServerVersionUpdated),
24936            "k_EMsgGCApplyAutograph" => Some(Self::KEMsgGcApplyAutograph),
24937            "k_EMsgGCToGCWebAPIAccountChanged" => {
24938                Some(Self::KEMsgGcToGcWebApiAccountChanged)
24939            }
24940            "k_EMsgGCClientVersionUpdated" => Some(Self::KEMsgGcClientVersionUpdated),
24941            "k_EMsgGCToGCUpdateWelcomeMsg" => Some(Self::KEMsgGcToGcUpdateWelcomeMsg),
24942            "k_EMsgGCToGCPlayerStrangeCountAdjustments" => {
24943                Some(Self::KEMsgGcToGcPlayerStrangeCountAdjustments)
24944            }
24945            "k_EMsgGCRequestStoreSalesData" => Some(Self::KEMsgGcRequestStoreSalesData),
24946            "k_EMsgGCRequestStoreSalesDataResponse" => {
24947                Some(Self::KEMsgGcRequestStoreSalesDataResponse)
24948            }
24949            "k_EMsgGCRequestStoreSalesDataUpToDateResponse" => {
24950                Some(Self::KEMsgGcRequestStoreSalesDataUpToDateResponse)
24951            }
24952            "k_EMsgGCToGCPingRequest" => Some(Self::KEMsgGcToGcPingRequest),
24953            "k_EMsgGCToGCPingResponse" => Some(Self::KEMsgGcToGcPingResponse),
24954            "k_EMsgGCToGCGetUserSessionServer" => {
24955                Some(Self::KEMsgGcToGcGetUserSessionServer)
24956            }
24957            "k_EMsgGCToGCGetUserSessionServerResponse" => {
24958                Some(Self::KEMsgGcToGcGetUserSessionServerResponse)
24959            }
24960            "k_EMsgGCToGCGetUserServerMembers" => {
24961                Some(Self::KEMsgGcToGcGetUserServerMembers)
24962            }
24963            "k_EMsgGCToGCGetUserServerMembersResponse" => {
24964                Some(Self::KEMsgGcToGcGetUserServerMembersResponse)
24965            }
24966            "k_EMsgGCToGCCanUseDropRateBonus" => {
24967                Some(Self::KEMsgGcToGcCanUseDropRateBonus)
24968            }
24969            "k_EMsgSQLAddDropRateBonus" => Some(Self::KEMsgSqlAddDropRateBonus),
24970            "k_EMsgGCToGCRefreshSOCache" => Some(Self::KEMsgGcToGcRefreshSoCache),
24971            "k_EMsgGCToGCGrantAccountRolledItems" => {
24972                Some(Self::KEMsgGcToGcGrantAccountRolledItems)
24973            }
24974            "k_EMsgGCToGCGrantSelfMadeItemToAccount" => {
24975                Some(Self::KEMsgGcToGcGrantSelfMadeItemToAccount)
24976            }
24977            "k_EMsgGCToGCUnlockCrate" => Some(Self::KEMsgGcToGcUnlockCrate),
24978            "k_EMsgGCStatueCraft" => Some(Self::KEMsgGcStatueCraft),
24979            "k_EMsgGCRedeemCode" => Some(Self::KEMsgGcRedeemCode),
24980            "k_EMsgGCRedeemCodeResponse" => Some(Self::KEMsgGcRedeemCodeResponse),
24981            "k_EMsgGCToGCItemConsumptionRollback" => {
24982                Some(Self::KEMsgGcToGcItemConsumptionRollback)
24983            }
24984            "k_EMsgClientToGCWrapAndDeliverGift" => {
24985                Some(Self::KEMsgClientToGcWrapAndDeliverGift)
24986            }
24987            "k_EMsgClientToGCWrapAndDeliverGiftResponse" => {
24988                Some(Self::KEMsgClientToGcWrapAndDeliverGiftResponse)
24989            }
24990            "k_EMsgClientToGCUnpackBundleResponse" => {
24991                Some(Self::KEMsgClientToGcUnpackBundleResponse)
24992            }
24993            "k_EMsgGCToClientStoreTransactionCompleted" => {
24994                Some(Self::KEMsgGcToClientStoreTransactionCompleted)
24995            }
24996            "k_EMsgClientToGCEquipItems" => Some(Self::KEMsgClientToGcEquipItems),
24997            "k_EMsgClientToGCEquipItemsResponse" => {
24998                Some(Self::KEMsgClientToGcEquipItemsResponse)
24999            }
25000            "k_EMsgClientToGCUnlockItemStyle" => {
25001                Some(Self::KEMsgClientToGcUnlockItemStyle)
25002            }
25003            "k_EMsgClientToGCUnlockItemStyleResponse" => {
25004                Some(Self::KEMsgClientToGcUnlockItemStyleResponse)
25005            }
25006            "k_EMsgClientToGCSetItemInventoryCategory" => {
25007                Some(Self::KEMsgClientToGcSetItemInventoryCategory)
25008            }
25009            "k_EMsgClientToGCUnlockCrate" => Some(Self::KEMsgClientToGcUnlockCrate),
25010            "k_EMsgClientToGCUnlockCrateResponse" => {
25011                Some(Self::KEMsgClientToGcUnlockCrateResponse)
25012            }
25013            "k_EMsgClientToGCUnpackBundle" => Some(Self::KEMsgClientToGcUnpackBundle),
25014            "k_EMsgClientToGCSetItemStyle" => Some(Self::KEMsgClientToGcSetItemStyle),
25015            "k_EMsgClientToGCSetItemStyleResponse" => {
25016                Some(Self::KEMsgClientToGcSetItemStyleResponse)
25017            }
25018            "k_EMsgSQLGCToGCGrantBackpackSlots" => {
25019                Some(Self::KEMsgSqlgcToGcGrantBackpackSlots)
25020            }
25021            "k_EMsgClientToGCLookupAccountName" => {
25022                Some(Self::KEMsgClientToGcLookupAccountName)
25023            }
25024            "k_EMsgClientToGCLookupAccountNameResponse" => {
25025                Some(Self::KEMsgClientToGcLookupAccountNameResponse)
25026            }
25027            "k_EMsgClientToGCCreateStaticRecipe" => {
25028                Some(Self::KEMsgClientToGcCreateStaticRecipe)
25029            }
25030            "k_EMsgClientToGCCreateStaticRecipeResponse" => {
25031                Some(Self::KEMsgClientToGcCreateStaticRecipeResponse)
25032            }
25033            "k_EMsgGCToGCStoreProcessCDKeyTransaction" => {
25034                Some(Self::KEMsgGcToGcStoreProcessCdKeyTransaction)
25035            }
25036            "k_EMsgGCToGCStoreProcessCDKeyTransactionResponse" => {
25037                Some(Self::KEMsgGcToGcStoreProcessCdKeyTransactionResponse)
25038            }
25039            "k_EMsgGCToGCStoreProcessSettlement" => {
25040                Some(Self::KEMsgGcToGcStoreProcessSettlement)
25041            }
25042            "k_EMsgGCToGCStoreProcessSettlementResponse" => {
25043                Some(Self::KEMsgGcToGcStoreProcessSettlementResponse)
25044            }
25045            "k_EMsgGCToGCConsoleOutput" => Some(Self::KEMsgGcToGcConsoleOutput),
25046            "k_EMsgGCToClientItemAges" => Some(Self::KEMsgGcToClientItemAges),
25047            "k_EMsgGCToGCInternalTestMsg" => Some(Self::KEMsgGcToGcInternalTestMsg),
25048            "k_EMsgGCToGCClientServerVersionsUpdated" => {
25049                Some(Self::KEMsgGcToGcClientServerVersionsUpdated)
25050            }
25051            "k_EMsgGCUseMultipleItemsRequest" => {
25052                Some(Self::KEMsgGcUseMultipleItemsRequest)
25053            }
25054            "k_EMsgGCGetAccountSubscriptionItem" => {
25055                Some(Self::KEMsgGcGetAccountSubscriptionItem)
25056            }
25057            "k_EMsgGCGetAccountSubscriptionItemResponse" => {
25058                Some(Self::KEMsgGcGetAccountSubscriptionItemResponse)
25059            }
25060            "k_EMsgGCToGCBroadcastMessageFromSub" => {
25061                Some(Self::KEMsgGcToGcBroadcastMessageFromSub)
25062            }
25063            "k_EMsgGCToClientCurrencyPricePoints" => {
25064                Some(Self::KEMsgGcToClientCurrencyPricePoints)
25065            }
25066            "k_EMsgGCToGCAddSubscriptionTime" => {
25067                Some(Self::KEMsgGcToGcAddSubscriptionTime)
25068            }
25069            "k_EMsgGCToGCFlushSteamInventoryCache" => {
25070                Some(Self::KEMsgGcToGcFlushSteamInventoryCache)
25071            }
25072            "k_EMsgGCRequestCrateEscalationLevel" => {
25073                Some(Self::KEMsgGcRequestCrateEscalationLevel)
25074            }
25075            "k_EMsgGCRequestCrateEscalationLevelResponse" => {
25076                Some(Self::KEMsgGcRequestCrateEscalationLevelResponse)
25077            }
25078            "k_EMsgGCToGCUpdateSubscriptionItems" => {
25079                Some(Self::KEMsgGcToGcUpdateSubscriptionItems)
25080            }
25081            "k_EMsgGCToGCSelfPing" => Some(Self::KEMsgGcToGcSelfPing),
25082            "k_EMsgGCToGCGetInfuxIntervalStats" => {
25083                Some(Self::KEMsgGcToGcGetInfuxIntervalStats)
25084            }
25085            "k_EMsgGCToGCGetInfuxIntervalStatsResponse" => {
25086                Some(Self::KEMsgGcToGcGetInfuxIntervalStatsResponse)
25087            }
25088            "k_EMsgGCToGCPurchaseSucceeded" => Some(Self::KEMsgGcToGcPurchaseSucceeded),
25089            "k_EMsgClientToGCGetLimitedItemPurchaseQuantity" => {
25090                Some(Self::KEMsgClientToGcGetLimitedItemPurchaseQuantity)
25091            }
25092            "k_EMsgClientToGCGetLimitedItemPurchaseQuantityResponse" => {
25093                Some(Self::KEMsgClientToGcGetLimitedItemPurchaseQuantityResponse)
25094            }
25095            "k_EMsgGCToGCBetaDeleteItems" => Some(Self::KEMsgGcToGcBetaDeleteItems),
25096            "k_EMsgClientToGCGetInFlightItemCharges" => {
25097                Some(Self::KEMsgClientToGcGetInFlightItemCharges)
25098            }
25099            "k_EMsgClientToGCGetInFlightItemChargesResponse" => {
25100                Some(Self::KEMsgClientToGcGetInFlightItemChargesResponse)
25101            }
25102            "k_EMsgGCToClientInFlightChargesUpdated" => {
25103                Some(Self::KEMsgGcToClientInFlightChargesUpdated)
25104            }
25105            "k_EMsgClientToGCPurchaseChargeCostItems" => {
25106                Some(Self::KEMsgClientToGcPurchaseChargeCostItems)
25107            }
25108            "k_EMsgClientToGCPurchaseChargeCostItemsResponse" => {
25109                Some(Self::KEMsgClientToGcPurchaseChargeCostItemsResponse)
25110            }
25111            "k_EMsgClientToGCCancelUnfinalizedTransactions" => {
25112                Some(Self::KEMsgClientToGcCancelUnfinalizedTransactions)
25113            }
25114            "k_EMsgClientToGCCancelUnfinalizedTransactionsResponse" => {
25115                Some(Self::KEMsgClientToGcCancelUnfinalizedTransactionsResponse)
25116            }
25117            "k_EMsgClientToGCRecycleMultipleItems" => {
25118                Some(Self::KEMsgClientToGcRecycleMultipleItems)
25119            }
25120            "k_EMsgClientToGCRecycleMultipleItemsResponse" => {
25121                Some(Self::KEMsgClientToGcRecycleMultipleItemsResponse)
25122            }
25123            _ => None,
25124        }
25125    }
25126}
25127#[derive(serde::Serialize, serde::Deserialize)]
25128#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
25129#[repr(i32)]
25130pub enum EgcMsgInitiateTradeResponse {
25131    KEgcMsgInitiateTradeResponseAccepted = 0,
25132    KEgcMsgInitiateTradeResponseDeclined = 1,
25133    KEgcMsgInitiateTradeResponseVacBannedInitiator = 2,
25134    KEgcMsgInitiateTradeResponseVacBannedTarget = 3,
25135    KEgcMsgInitiateTradeResponseTargetAlreadyTrading = 4,
25136    KEgcMsgInitiateTradeResponseDisabled = 5,
25137    KEgcMsgInitiateTradeResponseNotLoggedIn = 6,
25138    KEgcMsgInitiateTradeResponseCancel = 7,
25139    KEgcMsgInitiateTradeResponseTooSoon = 8,
25140    KEgcMsgInitiateTradeResponseTooSoonPenalty = 9,
25141    KEgcMsgInitiateTradeResponseTradeBannedInitiator = 10,
25142    KEgcMsgInitiateTradeResponseTradeBannedTarget = 11,
25143    KEgcMsgInitiateTradeResponseFreeAccountInitiatorDeprecated = 12,
25144    KEgcMsgInitiateTradeResponseSharedAccountInitiator = 13,
25145    KEgcMsgInitiateTradeResponseServiceUnavailable = 14,
25146    KEgcMsgInitiateTradeResponseTargetBlocked = 15,
25147    KEgcMsgInitiateTradeResponseNeedVerifiedEmail = 16,
25148    KEgcMsgInitiateTradeResponseNeedSteamGuard = 17,
25149    KEgcMsgInitiateTradeResponseSteamGuardDuration = 18,
25150    KEgcMsgInitiateTradeResponseTheyCannotTrade = 19,
25151    KEgcMsgInitiateTradeResponseRecentPasswordReset = 20,
25152    KEgcMsgInitiateTradeResponseUsingNewDevice = 21,
25153    KEgcMsgInitiateTradeResponseSentInvalidCookie = 22,
25154    KEgcMsgInitiateTradeResponseTooRecentFriend = 23,
25155    KEgcMsgInitiateTradeResponseWalledFundsNotTrusted = 24,
25156}
25157impl EgcMsgInitiateTradeResponse {
25158    /// String value of the enum field names used in the ProtoBuf definition.
25159    ///
25160    /// The values are not transformed in any way and thus are considered stable
25161    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
25162    pub fn as_str_name(&self) -> &'static str {
25163        match self {
25164            Self::KEgcMsgInitiateTradeResponseAccepted => {
25165                "k_EGCMsgInitiateTradeResponse_Accepted"
25166            }
25167            Self::KEgcMsgInitiateTradeResponseDeclined => {
25168                "k_EGCMsgInitiateTradeResponse_Declined"
25169            }
25170            Self::KEgcMsgInitiateTradeResponseVacBannedInitiator => {
25171                "k_EGCMsgInitiateTradeResponse_VAC_Banned_Initiator"
25172            }
25173            Self::KEgcMsgInitiateTradeResponseVacBannedTarget => {
25174                "k_EGCMsgInitiateTradeResponse_VAC_Banned_Target"
25175            }
25176            Self::KEgcMsgInitiateTradeResponseTargetAlreadyTrading => {
25177                "k_EGCMsgInitiateTradeResponse_Target_Already_Trading"
25178            }
25179            Self::KEgcMsgInitiateTradeResponseDisabled => {
25180                "k_EGCMsgInitiateTradeResponse_Disabled"
25181            }
25182            Self::KEgcMsgInitiateTradeResponseNotLoggedIn => {
25183                "k_EGCMsgInitiateTradeResponse_NotLoggedIn"
25184            }
25185            Self::KEgcMsgInitiateTradeResponseCancel => {
25186                "k_EGCMsgInitiateTradeResponse_Cancel"
25187            }
25188            Self::KEgcMsgInitiateTradeResponseTooSoon => {
25189                "k_EGCMsgInitiateTradeResponse_TooSoon"
25190            }
25191            Self::KEgcMsgInitiateTradeResponseTooSoonPenalty => {
25192                "k_EGCMsgInitiateTradeResponse_TooSoonPenalty"
25193            }
25194            Self::KEgcMsgInitiateTradeResponseTradeBannedInitiator => {
25195                "k_EGCMsgInitiateTradeResponse_Trade_Banned_Initiator"
25196            }
25197            Self::KEgcMsgInitiateTradeResponseTradeBannedTarget => {
25198                "k_EGCMsgInitiateTradeResponse_Trade_Banned_Target"
25199            }
25200            Self::KEgcMsgInitiateTradeResponseFreeAccountInitiatorDeprecated => {
25201                "k_EGCMsgInitiateTradeResponse_Free_Account_Initiator_DEPRECATED"
25202            }
25203            Self::KEgcMsgInitiateTradeResponseSharedAccountInitiator => {
25204                "k_EGCMsgInitiateTradeResponse_Shared_Account_Initiator"
25205            }
25206            Self::KEgcMsgInitiateTradeResponseServiceUnavailable => {
25207                "k_EGCMsgInitiateTradeResponse_Service_Unavailable"
25208            }
25209            Self::KEgcMsgInitiateTradeResponseTargetBlocked => {
25210                "k_EGCMsgInitiateTradeResponse_Target_Blocked"
25211            }
25212            Self::KEgcMsgInitiateTradeResponseNeedVerifiedEmail => {
25213                "k_EGCMsgInitiateTradeResponse_NeedVerifiedEmail"
25214            }
25215            Self::KEgcMsgInitiateTradeResponseNeedSteamGuard => {
25216                "k_EGCMsgInitiateTradeResponse_NeedSteamGuard"
25217            }
25218            Self::KEgcMsgInitiateTradeResponseSteamGuardDuration => {
25219                "k_EGCMsgInitiateTradeResponse_SteamGuardDuration"
25220            }
25221            Self::KEgcMsgInitiateTradeResponseTheyCannotTrade => {
25222                "k_EGCMsgInitiateTradeResponse_TheyCannotTrade"
25223            }
25224            Self::KEgcMsgInitiateTradeResponseRecentPasswordReset => {
25225                "k_EGCMsgInitiateTradeResponse_Recent_Password_Reset"
25226            }
25227            Self::KEgcMsgInitiateTradeResponseUsingNewDevice => {
25228                "k_EGCMsgInitiateTradeResponse_Using_New_Device"
25229            }
25230            Self::KEgcMsgInitiateTradeResponseSentInvalidCookie => {
25231                "k_EGCMsgInitiateTradeResponse_Sent_Invalid_Cookie"
25232            }
25233            Self::KEgcMsgInitiateTradeResponseTooRecentFriend => {
25234                "k_EGCMsgInitiateTradeResponse_TooRecentFriend"
25235            }
25236            Self::KEgcMsgInitiateTradeResponseWalledFundsNotTrusted => {
25237                "k_EGCMsgInitiateTradeResponse_WalledFundsNotTrusted"
25238            }
25239        }
25240    }
25241    /// Creates an enum from field names used in the ProtoBuf definition.
25242    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
25243        match value {
25244            "k_EGCMsgInitiateTradeResponse_Accepted" => {
25245                Some(Self::KEgcMsgInitiateTradeResponseAccepted)
25246            }
25247            "k_EGCMsgInitiateTradeResponse_Declined" => {
25248                Some(Self::KEgcMsgInitiateTradeResponseDeclined)
25249            }
25250            "k_EGCMsgInitiateTradeResponse_VAC_Banned_Initiator" => {
25251                Some(Self::KEgcMsgInitiateTradeResponseVacBannedInitiator)
25252            }
25253            "k_EGCMsgInitiateTradeResponse_VAC_Banned_Target" => {
25254                Some(Self::KEgcMsgInitiateTradeResponseVacBannedTarget)
25255            }
25256            "k_EGCMsgInitiateTradeResponse_Target_Already_Trading" => {
25257                Some(Self::KEgcMsgInitiateTradeResponseTargetAlreadyTrading)
25258            }
25259            "k_EGCMsgInitiateTradeResponse_Disabled" => {
25260                Some(Self::KEgcMsgInitiateTradeResponseDisabled)
25261            }
25262            "k_EGCMsgInitiateTradeResponse_NotLoggedIn" => {
25263                Some(Self::KEgcMsgInitiateTradeResponseNotLoggedIn)
25264            }
25265            "k_EGCMsgInitiateTradeResponse_Cancel" => {
25266                Some(Self::KEgcMsgInitiateTradeResponseCancel)
25267            }
25268            "k_EGCMsgInitiateTradeResponse_TooSoon" => {
25269                Some(Self::KEgcMsgInitiateTradeResponseTooSoon)
25270            }
25271            "k_EGCMsgInitiateTradeResponse_TooSoonPenalty" => {
25272                Some(Self::KEgcMsgInitiateTradeResponseTooSoonPenalty)
25273            }
25274            "k_EGCMsgInitiateTradeResponse_Trade_Banned_Initiator" => {
25275                Some(Self::KEgcMsgInitiateTradeResponseTradeBannedInitiator)
25276            }
25277            "k_EGCMsgInitiateTradeResponse_Trade_Banned_Target" => {
25278                Some(Self::KEgcMsgInitiateTradeResponseTradeBannedTarget)
25279            }
25280            "k_EGCMsgInitiateTradeResponse_Free_Account_Initiator_DEPRECATED" => {
25281                Some(Self::KEgcMsgInitiateTradeResponseFreeAccountInitiatorDeprecated)
25282            }
25283            "k_EGCMsgInitiateTradeResponse_Shared_Account_Initiator" => {
25284                Some(Self::KEgcMsgInitiateTradeResponseSharedAccountInitiator)
25285            }
25286            "k_EGCMsgInitiateTradeResponse_Service_Unavailable" => {
25287                Some(Self::KEgcMsgInitiateTradeResponseServiceUnavailable)
25288            }
25289            "k_EGCMsgInitiateTradeResponse_Target_Blocked" => {
25290                Some(Self::KEgcMsgInitiateTradeResponseTargetBlocked)
25291            }
25292            "k_EGCMsgInitiateTradeResponse_NeedVerifiedEmail" => {
25293                Some(Self::KEgcMsgInitiateTradeResponseNeedVerifiedEmail)
25294            }
25295            "k_EGCMsgInitiateTradeResponse_NeedSteamGuard" => {
25296                Some(Self::KEgcMsgInitiateTradeResponseNeedSteamGuard)
25297            }
25298            "k_EGCMsgInitiateTradeResponse_SteamGuardDuration" => {
25299                Some(Self::KEgcMsgInitiateTradeResponseSteamGuardDuration)
25300            }
25301            "k_EGCMsgInitiateTradeResponse_TheyCannotTrade" => {
25302                Some(Self::KEgcMsgInitiateTradeResponseTheyCannotTrade)
25303            }
25304            "k_EGCMsgInitiateTradeResponse_Recent_Password_Reset" => {
25305                Some(Self::KEgcMsgInitiateTradeResponseRecentPasswordReset)
25306            }
25307            "k_EGCMsgInitiateTradeResponse_Using_New_Device" => {
25308                Some(Self::KEgcMsgInitiateTradeResponseUsingNewDevice)
25309            }
25310            "k_EGCMsgInitiateTradeResponse_Sent_Invalid_Cookie" => {
25311                Some(Self::KEgcMsgInitiateTradeResponseSentInvalidCookie)
25312            }
25313            "k_EGCMsgInitiateTradeResponse_TooRecentFriend" => {
25314                Some(Self::KEgcMsgInitiateTradeResponseTooRecentFriend)
25315            }
25316            "k_EGCMsgInitiateTradeResponse_WalledFundsNotTrusted" => {
25317                Some(Self::KEgcMsgInitiateTradeResponseWalledFundsNotTrusted)
25318            }
25319            _ => None,
25320        }
25321    }
25322}
25323#[derive(serde::Serialize, serde::Deserialize)]
25324#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25325pub struct CMsgTeArmorRicochet {
25326    #[prost(message, optional, tag = "1")]
25327    pub pos: ::core::option::Option<CMsgVector>,
25328    #[prost(message, optional, tag = "2")]
25329    pub dir: ::core::option::Option<CMsgVector>,
25330}
25331#[derive(serde::Serialize, serde::Deserialize)]
25332#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25333pub struct CMsgTeBaseBeam {
25334    #[prost(fixed64, optional, tag = "1")]
25335    pub modelindex: ::core::option::Option<u64>,
25336    #[prost(fixed64, optional, tag = "2")]
25337    pub haloindex: ::core::option::Option<u64>,
25338    #[prost(uint32, optional, tag = "3")]
25339    pub startframe: ::core::option::Option<u32>,
25340    #[prost(uint32, optional, tag = "4")]
25341    pub framerate: ::core::option::Option<u32>,
25342    #[prost(float, optional, tag = "5")]
25343    pub life: ::core::option::Option<f32>,
25344    #[prost(float, optional, tag = "6")]
25345    pub width: ::core::option::Option<f32>,
25346    #[prost(float, optional, tag = "7")]
25347    pub endwidth: ::core::option::Option<f32>,
25348    #[prost(uint32, optional, tag = "8")]
25349    pub fadelength: ::core::option::Option<u32>,
25350    #[prost(float, optional, tag = "9")]
25351    pub amplitude: ::core::option::Option<f32>,
25352    #[prost(fixed32, optional, tag = "10")]
25353    pub color: ::core::option::Option<u32>,
25354    #[prost(uint32, optional, tag = "11")]
25355    pub speed: ::core::option::Option<u32>,
25356    #[prost(uint32, optional, tag = "12")]
25357    pub flags: ::core::option::Option<u32>,
25358}
25359#[derive(serde::Serialize, serde::Deserialize)]
25360#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25361pub struct CMsgTeBeamEntPoint {
25362    #[prost(message, optional, tag = "1")]
25363    pub base: ::core::option::Option<CMsgTeBaseBeam>,
25364    #[prost(uint32, optional, tag = "2")]
25365    pub startentity: ::core::option::Option<u32>,
25366    #[prost(uint32, optional, tag = "3")]
25367    pub endentity: ::core::option::Option<u32>,
25368    #[prost(message, optional, tag = "4")]
25369    pub start: ::core::option::Option<CMsgVector>,
25370    #[prost(message, optional, tag = "5")]
25371    pub end: ::core::option::Option<CMsgVector>,
25372}
25373#[derive(serde::Serialize, serde::Deserialize)]
25374#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25375pub struct CMsgTeBeamEnts {
25376    #[prost(message, optional, tag = "1")]
25377    pub base: ::core::option::Option<CMsgTeBaseBeam>,
25378    #[prost(uint32, optional, tag = "2")]
25379    pub startentity: ::core::option::Option<u32>,
25380    #[prost(uint32, optional, tag = "3")]
25381    pub endentity: ::core::option::Option<u32>,
25382}
25383#[derive(serde::Serialize, serde::Deserialize)]
25384#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25385pub struct CMsgTeBeamPoints {
25386    #[prost(message, optional, tag = "1")]
25387    pub base: ::core::option::Option<CMsgTeBaseBeam>,
25388    #[prost(message, optional, tag = "2")]
25389    pub start: ::core::option::Option<CMsgVector>,
25390    #[prost(message, optional, tag = "3")]
25391    pub end: ::core::option::Option<CMsgVector>,
25392}
25393#[derive(serde::Serialize, serde::Deserialize)]
25394#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25395pub struct CMsgTeBeamRing {
25396    #[prost(message, optional, tag = "1")]
25397    pub base: ::core::option::Option<CMsgTeBaseBeam>,
25398    #[prost(uint32, optional, tag = "2")]
25399    pub startentity: ::core::option::Option<u32>,
25400    #[prost(uint32, optional, tag = "3")]
25401    pub endentity: ::core::option::Option<u32>,
25402}
25403#[derive(serde::Serialize, serde::Deserialize)]
25404#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25405pub struct CMsgTeBubbles {
25406    #[prost(message, optional, tag = "1")]
25407    pub mins: ::core::option::Option<CMsgVector>,
25408    #[prost(message, optional, tag = "2")]
25409    pub maxs: ::core::option::Option<CMsgVector>,
25410    #[prost(float, optional, tag = "3")]
25411    pub height: ::core::option::Option<f32>,
25412    #[prost(uint32, optional, tag = "4")]
25413    pub count: ::core::option::Option<u32>,
25414    #[prost(float, optional, tag = "5")]
25415    pub speed: ::core::option::Option<f32>,
25416}
25417#[derive(serde::Serialize, serde::Deserialize)]
25418#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25419pub struct CMsgTeBubbleTrail {
25420    #[prost(message, optional, tag = "1")]
25421    pub mins: ::core::option::Option<CMsgVector>,
25422    #[prost(message, optional, tag = "2")]
25423    pub maxs: ::core::option::Option<CMsgVector>,
25424    #[prost(float, optional, tag = "3")]
25425    pub waterz: ::core::option::Option<f32>,
25426    #[prost(uint32, optional, tag = "4")]
25427    pub count: ::core::option::Option<u32>,
25428    #[prost(float, optional, tag = "5")]
25429    pub speed: ::core::option::Option<f32>,
25430}
25431#[derive(serde::Serialize, serde::Deserialize)]
25432#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25433pub struct CMsgTeDecal {
25434    #[prost(message, optional, tag = "1")]
25435    pub origin: ::core::option::Option<CMsgVector>,
25436    #[prost(message, optional, tag = "2")]
25437    pub start: ::core::option::Option<CMsgVector>,
25438    #[prost(int32, optional, tag = "3", default = "-1")]
25439    pub entity: ::core::option::Option<i32>,
25440    #[prost(uint32, optional, tag = "4")]
25441    pub hitbox: ::core::option::Option<u32>,
25442    #[prost(uint32, optional, tag = "5")]
25443    pub index: ::core::option::Option<u32>,
25444}
25445#[derive(serde::Serialize, serde::Deserialize)]
25446#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25447pub struct CMsgEffectData {
25448    #[prost(message, optional, tag = "1")]
25449    pub origin: ::core::option::Option<CMsgVector>,
25450    #[prost(message, optional, tag = "2")]
25451    pub start: ::core::option::Option<CMsgVector>,
25452    #[prost(message, optional, tag = "3")]
25453    pub normal: ::core::option::Option<CMsgVector>,
25454    #[prost(message, optional, tag = "4")]
25455    pub angles: ::core::option::Option<CMsgQAngle>,
25456    #[prost(fixed32, optional, tag = "5", default = "16777215")]
25457    pub entity: ::core::option::Option<u32>,
25458    #[prost(fixed32, optional, tag = "6", default = "16777215")]
25459    pub otherentity: ::core::option::Option<u32>,
25460    #[prost(float, optional, tag = "7")]
25461    pub scale: ::core::option::Option<f32>,
25462    #[prost(float, optional, tag = "8")]
25463    pub magnitude: ::core::option::Option<f32>,
25464    #[prost(float, optional, tag = "9")]
25465    pub radius: ::core::option::Option<f32>,
25466    #[prost(fixed32, optional, tag = "10")]
25467    pub surfaceprop: ::core::option::Option<u32>,
25468    #[prost(fixed64, optional, tag = "11")]
25469    pub effectindex: ::core::option::Option<u64>,
25470    #[prost(uint32, optional, tag = "12")]
25471    pub damagetype: ::core::option::Option<u32>,
25472    #[prost(uint32, optional, tag = "13")]
25473    pub material: ::core::option::Option<u32>,
25474    #[prost(uint32, optional, tag = "14")]
25475    pub hitbox: ::core::option::Option<u32>,
25476    #[prost(uint32, optional, tag = "15")]
25477    pub color: ::core::option::Option<u32>,
25478    #[prost(uint32, optional, tag = "16")]
25479    pub flags: ::core::option::Option<u32>,
25480    #[prost(int32, optional, tag = "17")]
25481    pub attachmentindex: ::core::option::Option<i32>,
25482    #[prost(uint32, optional, tag = "18")]
25483    pub effectname: ::core::option::Option<u32>,
25484    #[prost(uint32, optional, tag = "19", default = "0")]
25485    pub attachmentname: ::core::option::Option<u32>,
25486}
25487#[derive(serde::Serialize, serde::Deserialize)]
25488#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25489pub struct CMsgTeEffectDispatch {
25490    #[prost(message, optional, tag = "1")]
25491    pub effectdata: ::core::option::Option<CMsgEffectData>,
25492}
25493#[derive(serde::Serialize, serde::Deserialize)]
25494#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25495pub struct CMsgTeEnergySplash {
25496    #[prost(message, optional, tag = "1")]
25497    pub pos: ::core::option::Option<CMsgVector>,
25498    #[prost(message, optional, tag = "2")]
25499    pub dir: ::core::option::Option<CMsgVector>,
25500    #[prost(bool, optional, tag = "3")]
25501    pub explosive: ::core::option::Option<bool>,
25502}
25503#[derive(serde::Serialize, serde::Deserialize)]
25504#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25505pub struct CMsgTeFizz {
25506    #[prost(int32, optional, tag = "1", default = "-1")]
25507    pub entity: ::core::option::Option<i32>,
25508    #[prost(uint32, optional, tag = "2")]
25509    pub density: ::core::option::Option<u32>,
25510    #[prost(int32, optional, tag = "3")]
25511    pub current: ::core::option::Option<i32>,
25512}
25513#[derive(serde::Serialize, serde::Deserialize)]
25514#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25515pub struct CMsgTeShatterSurface {
25516    #[prost(message, optional, tag = "1")]
25517    pub origin: ::core::option::Option<CMsgVector>,
25518    #[prost(message, optional, tag = "2")]
25519    pub angles: ::core::option::Option<CMsgQAngle>,
25520    #[prost(message, optional, tag = "3")]
25521    pub force: ::core::option::Option<CMsgVector>,
25522    #[prost(message, optional, tag = "4")]
25523    pub forcepos: ::core::option::Option<CMsgVector>,
25524    #[prost(float, optional, tag = "5")]
25525    pub width: ::core::option::Option<f32>,
25526    #[prost(float, optional, tag = "6")]
25527    pub height: ::core::option::Option<f32>,
25528    #[prost(float, optional, tag = "7")]
25529    pub shardsize: ::core::option::Option<f32>,
25530    #[prost(uint32, optional, tag = "8")]
25531    pub surfacetype: ::core::option::Option<u32>,
25532    #[prost(fixed32, optional, tag = "9")]
25533    pub frontcolor: ::core::option::Option<u32>,
25534    #[prost(fixed32, optional, tag = "10")]
25535    pub backcolor: ::core::option::Option<u32>,
25536}
25537#[derive(serde::Serialize, serde::Deserialize)]
25538#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25539pub struct CMsgTeGlowSprite {
25540    #[prost(message, optional, tag = "1")]
25541    pub origin: ::core::option::Option<CMsgVector>,
25542    #[prost(float, optional, tag = "2")]
25543    pub scale: ::core::option::Option<f32>,
25544    #[prost(float, optional, tag = "3")]
25545    pub life: ::core::option::Option<f32>,
25546    #[prost(uint32, optional, tag = "4")]
25547    pub brightness: ::core::option::Option<u32>,
25548}
25549#[derive(serde::Serialize, serde::Deserialize)]
25550#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25551pub struct CMsgTeImpact {
25552    #[prost(message, optional, tag = "1")]
25553    pub origin: ::core::option::Option<CMsgVector>,
25554    #[prost(message, optional, tag = "2")]
25555    pub normal: ::core::option::Option<CMsgVector>,
25556    #[prost(uint32, optional, tag = "3")]
25557    pub r#type: ::core::option::Option<u32>,
25558}
25559#[derive(serde::Serialize, serde::Deserialize)]
25560#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25561pub struct CMsgTeMuzzleFlash {
25562    #[prost(message, optional, tag = "1")]
25563    pub origin: ::core::option::Option<CMsgVector>,
25564    #[prost(message, optional, tag = "2")]
25565    pub angles: ::core::option::Option<CMsgQAngle>,
25566    #[prost(float, optional, tag = "3")]
25567    pub scale: ::core::option::Option<f32>,
25568    #[prost(uint32, optional, tag = "4")]
25569    pub r#type: ::core::option::Option<u32>,
25570}
25571#[derive(serde::Serialize, serde::Deserialize)]
25572#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25573pub struct CMsgTeBloodStream {
25574    #[prost(message, optional, tag = "1")]
25575    pub origin: ::core::option::Option<CMsgVector>,
25576    #[prost(message, optional, tag = "2")]
25577    pub direction: ::core::option::Option<CMsgVector>,
25578    #[prost(fixed32, optional, tag = "3")]
25579    pub color: ::core::option::Option<u32>,
25580    #[prost(uint32, optional, tag = "4")]
25581    pub amount: ::core::option::Option<u32>,
25582}
25583#[derive(serde::Serialize, serde::Deserialize)]
25584#[derive(Clone, PartialEq, ::prost::Message)]
25585pub struct CMsgTeExplosion {
25586    #[prost(message, optional, tag = "1")]
25587    pub origin: ::core::option::Option<CMsgVector>,
25588    #[prost(uint32, optional, tag = "3")]
25589    pub flags: ::core::option::Option<u32>,
25590    #[prost(message, optional, tag = "4")]
25591    pub normal: ::core::option::Option<CMsgVector>,
25592    #[prost(uint32, optional, tag = "6")]
25593    pub radius: ::core::option::Option<u32>,
25594    #[prost(uint32, optional, tag = "7")]
25595    pub magnitude: ::core::option::Option<u32>,
25596    #[prost(bool, optional, tag = "9")]
25597    pub affect_ragdolls: ::core::option::Option<bool>,
25598    #[prost(string, optional, tag = "10")]
25599    pub sound_name: ::core::option::Option<::prost::alloc::string::String>,
25600    #[prost(uint32, optional, tag = "11")]
25601    pub explosion_type: ::core::option::Option<u32>,
25602    #[prost(uint32, optional, tag = "15", default = "0")]
25603    pub explosion_type_name: ::core::option::Option<u32>,
25604    #[prost(bool, optional, tag = "12")]
25605    pub create_debris: ::core::option::Option<bool>,
25606    #[prost(message, optional, tag = "13")]
25607    pub debris_origin: ::core::option::Option<CMsgVector>,
25608    #[prost(fixed32, optional, tag = "14")]
25609    pub debris_surfaceprop: ::core::option::Option<u32>,
25610}
25611#[derive(serde::Serialize, serde::Deserialize)]
25612#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25613pub struct CMsgTeDust {
25614    #[prost(message, optional, tag = "1")]
25615    pub origin: ::core::option::Option<CMsgVector>,
25616    #[prost(float, optional, tag = "2")]
25617    pub size: ::core::option::Option<f32>,
25618    #[prost(float, optional, tag = "3")]
25619    pub speed: ::core::option::Option<f32>,
25620    #[prost(message, optional, tag = "4")]
25621    pub direction: ::core::option::Option<CMsgVector>,
25622}
25623#[derive(serde::Serialize, serde::Deserialize)]
25624#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25625pub struct CMsgTeLargeFunnel {
25626    #[prost(message, optional, tag = "1")]
25627    pub origin: ::core::option::Option<CMsgVector>,
25628    #[prost(uint32, optional, tag = "2")]
25629    pub reversed: ::core::option::Option<u32>,
25630}
25631#[derive(serde::Serialize, serde::Deserialize)]
25632#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25633pub struct CMsgTeSparks {
25634    #[prost(message, optional, tag = "1")]
25635    pub origin: ::core::option::Option<CMsgVector>,
25636    #[prost(uint32, optional, tag = "2")]
25637    pub magnitude: ::core::option::Option<u32>,
25638    #[prost(uint32, optional, tag = "3")]
25639    pub length: ::core::option::Option<u32>,
25640    #[prost(message, optional, tag = "4")]
25641    pub direction: ::core::option::Option<CMsgVector>,
25642}
25643#[derive(serde::Serialize, serde::Deserialize)]
25644#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25645pub struct CMsgTePhysicsProp {
25646    #[prost(message, optional, tag = "1")]
25647    pub origin: ::core::option::Option<CMsgVector>,
25648    #[prost(message, optional, tag = "2")]
25649    pub velocity: ::core::option::Option<CMsgVector>,
25650    #[prost(message, optional, tag = "3")]
25651    pub angles: ::core::option::Option<CMsgQAngle>,
25652    #[prost(fixed32, optional, tag = "4", default = "0")]
25653    pub skin: ::core::option::Option<u32>,
25654    #[prost(uint32, optional, tag = "5")]
25655    pub flags: ::core::option::Option<u32>,
25656    #[prost(uint32, optional, tag = "6")]
25657    pub effects: ::core::option::Option<u32>,
25658    #[prost(fixed32, optional, tag = "7")]
25659    pub color: ::core::option::Option<u32>,
25660    #[prost(fixed64, optional, tag = "8")]
25661    pub modelindex: ::core::option::Option<u64>,
25662    #[prost(uint32, optional, tag = "9")]
25663    pub unused_breakmodelsnottomake: ::core::option::Option<u32>,
25664    #[prost(float, optional, tag = "10")]
25665    pub scale: ::core::option::Option<f32>,
25666    #[prost(message, optional, tag = "11")]
25667    pub dmgpos: ::core::option::Option<CMsgVector>,
25668    #[prost(message, optional, tag = "12")]
25669    pub dmgdir: ::core::option::Option<CMsgVector>,
25670    #[prost(int32, optional, tag = "13")]
25671    pub dmgtype: ::core::option::Option<i32>,
25672}
25673#[derive(serde::Serialize, serde::Deserialize)]
25674#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25675pub struct CMsgTeSmoke {
25676    #[prost(message, optional, tag = "1")]
25677    pub origin: ::core::option::Option<CMsgVector>,
25678    #[prost(float, optional, tag = "2")]
25679    pub scale: ::core::option::Option<f32>,
25680}
25681#[derive(serde::Serialize, serde::Deserialize)]
25682#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25683pub struct CMsgTeWorldDecal {
25684    #[prost(message, optional, tag = "1")]
25685    pub origin: ::core::option::Option<CMsgVector>,
25686    #[prost(message, optional, tag = "2")]
25687    pub normal: ::core::option::Option<CMsgVector>,
25688    #[prost(uint32, optional, tag = "3")]
25689    pub index: ::core::option::Option<u32>,
25690}
25691#[derive(serde::Serialize, serde::Deserialize)]
25692#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
25693#[repr(i32)]
25694pub enum EteProtobufIds {
25695    TeEffectDispatchId = 400,
25696    TeArmorRicochetId = 401,
25697    TeBeamEntPointId = 402,
25698    TeBeamEntsId = 403,
25699    TeBeamPointsId = 404,
25700    TeBeamRingId = 405,
25701    TeBubblesId = 408,
25702    TeBubbleTrailId = 409,
25703    TeDecalId = 410,
25704    TeWorldDecalId = 411,
25705    TeEnergySplashId = 412,
25706    TeFizzId = 413,
25707    TeShatterSurfaceId = 414,
25708    TeGlowSpriteId = 415,
25709    TeImpactId = 416,
25710    TeMuzzleFlashId = 417,
25711    TeBloodStreamId = 418,
25712    TeExplosionId = 419,
25713    TeDustId = 420,
25714    TeLargeFunnelId = 421,
25715    TeSparksId = 422,
25716    TePhysicsPropId = 423,
25717    TeSmokeId = 426,
25718}
25719impl EteProtobufIds {
25720    /// String value of the enum field names used in the ProtoBuf definition.
25721    ///
25722    /// The values are not transformed in any way and thus are considered stable
25723    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
25724    pub fn as_str_name(&self) -> &'static str {
25725        match self {
25726            Self::TeEffectDispatchId => "TE_EffectDispatchId",
25727            Self::TeArmorRicochetId => "TE_ArmorRicochetId",
25728            Self::TeBeamEntPointId => "TE_BeamEntPointId",
25729            Self::TeBeamEntsId => "TE_BeamEntsId",
25730            Self::TeBeamPointsId => "TE_BeamPointsId",
25731            Self::TeBeamRingId => "TE_BeamRingId",
25732            Self::TeBubblesId => "TE_BubblesId",
25733            Self::TeBubbleTrailId => "TE_BubbleTrailId",
25734            Self::TeDecalId => "TE_DecalId",
25735            Self::TeWorldDecalId => "TE_WorldDecalId",
25736            Self::TeEnergySplashId => "TE_EnergySplashId",
25737            Self::TeFizzId => "TE_FizzId",
25738            Self::TeShatterSurfaceId => "TE_ShatterSurfaceId",
25739            Self::TeGlowSpriteId => "TE_GlowSpriteId",
25740            Self::TeImpactId => "TE_ImpactId",
25741            Self::TeMuzzleFlashId => "TE_MuzzleFlashId",
25742            Self::TeBloodStreamId => "TE_BloodStreamId",
25743            Self::TeExplosionId => "TE_ExplosionId",
25744            Self::TeDustId => "TE_DustId",
25745            Self::TeLargeFunnelId => "TE_LargeFunnelId",
25746            Self::TeSparksId => "TE_SparksId",
25747            Self::TePhysicsPropId => "TE_PhysicsPropId",
25748            Self::TeSmokeId => "TE_SmokeId",
25749        }
25750    }
25751    /// Creates an enum from field names used in the ProtoBuf definition.
25752    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
25753        match value {
25754            "TE_EffectDispatchId" => Some(Self::TeEffectDispatchId),
25755            "TE_ArmorRicochetId" => Some(Self::TeArmorRicochetId),
25756            "TE_BeamEntPointId" => Some(Self::TeBeamEntPointId),
25757            "TE_BeamEntsId" => Some(Self::TeBeamEntsId),
25758            "TE_BeamPointsId" => Some(Self::TeBeamPointsId),
25759            "TE_BeamRingId" => Some(Self::TeBeamRingId),
25760            "TE_BubblesId" => Some(Self::TeBubblesId),
25761            "TE_BubbleTrailId" => Some(Self::TeBubbleTrailId),
25762            "TE_DecalId" => Some(Self::TeDecalId),
25763            "TE_WorldDecalId" => Some(Self::TeWorldDecalId),
25764            "TE_EnergySplashId" => Some(Self::TeEnergySplashId),
25765            "TE_FizzId" => Some(Self::TeFizzId),
25766            "TE_ShatterSurfaceId" => Some(Self::TeShatterSurfaceId),
25767            "TE_GlowSpriteId" => Some(Self::TeGlowSpriteId),
25768            "TE_ImpactId" => Some(Self::TeImpactId),
25769            "TE_MuzzleFlashId" => Some(Self::TeMuzzleFlashId),
25770            "TE_BloodStreamId" => Some(Self::TeBloodStreamId),
25771            "TE_ExplosionId" => Some(Self::TeExplosionId),
25772            "TE_DustId" => Some(Self::TeDustId),
25773            "TE_LargeFunnelId" => Some(Self::TeLargeFunnelId),
25774            "TE_SparksId" => Some(Self::TeSparksId),
25775            "TE_PhysicsPropId" => Some(Self::TePhysicsPropId),
25776            "TE_SmokeId" => Some(Self::TeSmokeId),
25777            _ => None,
25778        }
25779    }
25780}
25781#[derive(serde::Serialize, serde::Deserialize)]
25782#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25783pub struct CUserMessageAchievementEvent {
25784    #[prost(uint32, optional, tag = "1")]
25785    pub achievement: ::core::option::Option<u32>,
25786}
25787#[derive(serde::Serialize, serde::Deserialize)]
25788#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25789pub struct CUserMessageCloseCaption {
25790    #[prost(fixed32, optional, tag = "1")]
25791    pub hash: ::core::option::Option<u32>,
25792    #[prost(float, optional, tag = "2")]
25793    pub duration: ::core::option::Option<f32>,
25794    #[prost(bool, optional, tag = "3")]
25795    pub from_player: ::core::option::Option<bool>,
25796    #[prost(int32, optional, tag = "4", default = "-1")]
25797    pub ent_index: ::core::option::Option<i32>,
25798}
25799#[derive(serde::Serialize, serde::Deserialize)]
25800#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25801pub struct CUserMessageCloseCaptionDirect {
25802    #[prost(fixed32, optional, tag = "1")]
25803    pub hash: ::core::option::Option<u32>,
25804    #[prost(float, optional, tag = "2")]
25805    pub duration: ::core::option::Option<f32>,
25806    #[prost(bool, optional, tag = "3")]
25807    pub from_player: ::core::option::Option<bool>,
25808    #[prost(int32, optional, tag = "4", default = "-1")]
25809    pub ent_index: ::core::option::Option<i32>,
25810}
25811#[derive(serde::Serialize, serde::Deserialize)]
25812#[derive(Clone, PartialEq, ::prost::Message)]
25813pub struct CUserMessageCloseCaptionPlaceholder {
25814    #[prost(string, optional, tag = "1")]
25815    pub string: ::core::option::Option<::prost::alloc::string::String>,
25816    #[prost(float, optional, tag = "2")]
25817    pub duration: ::core::option::Option<f32>,
25818    #[prost(bool, optional, tag = "3")]
25819    pub from_player: ::core::option::Option<bool>,
25820    #[prost(int32, optional, tag = "4", default = "-1")]
25821    pub ent_index: ::core::option::Option<i32>,
25822}
25823#[derive(serde::Serialize, serde::Deserialize)]
25824#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25825pub struct CUserMessageCurrentTimescale {
25826    #[prost(float, optional, tag = "1")]
25827    pub current: ::core::option::Option<f32>,
25828}
25829#[derive(serde::Serialize, serde::Deserialize)]
25830#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25831pub struct CUserMessageDesiredTimescale {
25832    #[prost(float, optional, tag = "1")]
25833    pub desired: ::core::option::Option<f32>,
25834    #[prost(float, optional, tag = "2")]
25835    pub acceleration: ::core::option::Option<f32>,
25836    #[prost(float, optional, tag = "3")]
25837    pub minblendrate: ::core::option::Option<f32>,
25838    #[prost(float, optional, tag = "4")]
25839    pub blenddeltamultiplier: ::core::option::Option<f32>,
25840}
25841#[derive(serde::Serialize, serde::Deserialize)]
25842#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25843pub struct CUserMessageFade {
25844    #[prost(uint32, optional, tag = "1")]
25845    pub duration: ::core::option::Option<u32>,
25846    #[prost(uint32, optional, tag = "2")]
25847    pub hold_time: ::core::option::Option<u32>,
25848    #[prost(uint32, optional, tag = "3")]
25849    pub flags: ::core::option::Option<u32>,
25850    #[prost(fixed32, optional, tag = "4")]
25851    pub color: ::core::option::Option<u32>,
25852}
25853#[derive(serde::Serialize, serde::Deserialize)]
25854#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25855pub struct CUserMessageShake {
25856    #[prost(uint32, optional, tag = "1")]
25857    pub command: ::core::option::Option<u32>,
25858    #[prost(float, optional, tag = "2")]
25859    pub amplitude: ::core::option::Option<f32>,
25860    #[prost(float, optional, tag = "3")]
25861    pub frequency: ::core::option::Option<f32>,
25862    #[prost(float, optional, tag = "4")]
25863    pub duration: ::core::option::Option<f32>,
25864}
25865#[derive(serde::Serialize, serde::Deserialize)]
25866#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25867pub struct CUserMessageShakeDir {
25868    #[prost(message, optional, tag = "1")]
25869    pub shake: ::core::option::Option<CUserMessageShake>,
25870    #[prost(message, optional, tag = "2")]
25871    pub direction: ::core::option::Option<CMsgVector>,
25872}
25873#[derive(serde::Serialize, serde::Deserialize)]
25874#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25875pub struct CUserMessageWaterShake {
25876    #[prost(uint32, optional, tag = "1")]
25877    pub command: ::core::option::Option<u32>,
25878    #[prost(float, optional, tag = "2")]
25879    pub amplitude: ::core::option::Option<f32>,
25880    #[prost(float, optional, tag = "3")]
25881    pub frequency: ::core::option::Option<f32>,
25882    #[prost(float, optional, tag = "4")]
25883    pub duration: ::core::option::Option<f32>,
25884}
25885#[derive(serde::Serialize, serde::Deserialize)]
25886#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25887pub struct CUserMessageScreenTilt {
25888    #[prost(uint32, optional, tag = "1")]
25889    pub command: ::core::option::Option<u32>,
25890    #[prost(bool, optional, tag = "2")]
25891    pub ease_in_out: ::core::option::Option<bool>,
25892    #[prost(message, optional, tag = "3")]
25893    pub angle: ::core::option::Option<CMsgVector>,
25894    #[prost(float, optional, tag = "4")]
25895    pub duration: ::core::option::Option<f32>,
25896    #[prost(float, optional, tag = "5")]
25897    pub time: ::core::option::Option<f32>,
25898}
25899#[derive(serde::Serialize, serde::Deserialize)]
25900#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
25901pub struct CUserMessageSayText {
25902    #[prost(int32, optional, tag = "1", default = "-1")]
25903    pub playerindex: ::core::option::Option<i32>,
25904    #[prost(string, optional, tag = "2")]
25905    pub text: ::core::option::Option<::prost::alloc::string::String>,
25906    #[prost(bool, optional, tag = "3")]
25907    pub chat: ::core::option::Option<bool>,
25908}
25909#[derive(serde::Serialize, serde::Deserialize)]
25910#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
25911pub struct CUserMessageSayText2 {
25912    #[prost(int32, optional, tag = "1", default = "-1")]
25913    pub entityindex: ::core::option::Option<i32>,
25914    #[prost(bool, optional, tag = "2")]
25915    pub chat: ::core::option::Option<bool>,
25916    #[prost(string, optional, tag = "3")]
25917    pub messagename: ::core::option::Option<::prost::alloc::string::String>,
25918    #[prost(string, optional, tag = "4")]
25919    pub param1: ::core::option::Option<::prost::alloc::string::String>,
25920    #[prost(string, optional, tag = "5")]
25921    pub param2: ::core::option::Option<::prost::alloc::string::String>,
25922    #[prost(string, optional, tag = "6")]
25923    pub param3: ::core::option::Option<::prost::alloc::string::String>,
25924    #[prost(string, optional, tag = "7")]
25925    pub param4: ::core::option::Option<::prost::alloc::string::String>,
25926}
25927#[derive(serde::Serialize, serde::Deserialize)]
25928#[derive(Clone, PartialEq, ::prost::Message)]
25929pub struct CUserMessageHudMsg {
25930    #[prost(uint32, optional, tag = "1")]
25931    pub channel: ::core::option::Option<u32>,
25932    #[prost(float, optional, tag = "2")]
25933    pub x: ::core::option::Option<f32>,
25934    #[prost(float, optional, tag = "3")]
25935    pub y: ::core::option::Option<f32>,
25936    #[prost(fixed32, optional, tag = "4")]
25937    pub color1: ::core::option::Option<u32>,
25938    #[prost(fixed32, optional, tag = "5")]
25939    pub color2: ::core::option::Option<u32>,
25940    #[prost(uint32, optional, tag = "6")]
25941    pub effect: ::core::option::Option<u32>,
25942    #[prost(string, optional, tag = "11")]
25943    pub message: ::core::option::Option<::prost::alloc::string::String>,
25944}
25945#[derive(serde::Serialize, serde::Deserialize)]
25946#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
25947pub struct CUserMessageHudText {
25948    #[prost(string, optional, tag = "1")]
25949    pub message: ::core::option::Option<::prost::alloc::string::String>,
25950}
25951#[derive(serde::Serialize, serde::Deserialize)]
25952#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
25953pub struct CUserMessageTextMsg {
25954    #[prost(uint32, optional, tag = "1")]
25955    pub dest: ::core::option::Option<u32>,
25956    #[prost(string, repeated, tag = "2")]
25957    pub param: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
25958}
25959#[derive(serde::Serialize, serde::Deserialize)]
25960#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25961pub struct CUserMessageGameTitle {}
25962#[derive(serde::Serialize, serde::Deserialize)]
25963#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25964pub struct CUserMessageResetHud {}
25965#[derive(serde::Serialize, serde::Deserialize)]
25966#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
25967pub struct CUserMessageSendAudio {
25968    #[prost(string, optional, tag = "1")]
25969    pub soundname: ::core::option::Option<::prost::alloc::string::String>,
25970    #[prost(bool, optional, tag = "2")]
25971    pub stop: ::core::option::Option<bool>,
25972}
25973#[derive(serde::Serialize, serde::Deserialize)]
25974#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25975pub struct CUserMessageAudioParameter {
25976    #[prost(uint32, optional, tag = "1", default = "0")]
25977    pub parameter_type: ::core::option::Option<u32>,
25978    #[prost(uint32, optional, tag = "2", default = "0")]
25979    pub name_hash_code: ::core::option::Option<u32>,
25980    #[prost(float, optional, tag = "3")]
25981    pub value: ::core::option::Option<f32>,
25982    #[prost(uint32, optional, tag = "4")]
25983    pub int_value: ::core::option::Option<u32>,
25984}
25985#[derive(serde::Serialize, serde::Deserialize)]
25986#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
25987pub struct CUserMessageVoiceMask {
25988    #[prost(uint32, repeated, packed = "false", tag = "1")]
25989    pub gamerules_masks: ::prost::alloc::vec::Vec<u32>,
25990    #[prost(uint32, repeated, packed = "false", tag = "2")]
25991    pub ban_masks: ::prost::alloc::vec::Vec<u32>,
25992    #[prost(bool, optional, tag = "3")]
25993    pub mod_enable: ::core::option::Option<bool>,
25994}
25995#[derive(serde::Serialize, serde::Deserialize)]
25996#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25997pub struct CUserMessageRequestState {}
25998#[derive(serde::Serialize, serde::Deserialize)]
25999#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26000pub struct CUserMessageRumble {
26001    #[prost(int32, optional, tag = "1")]
26002    pub index: ::core::option::Option<i32>,
26003    #[prost(int32, optional, tag = "2")]
26004    pub data: ::core::option::Option<i32>,
26005    #[prost(int32, optional, tag = "3")]
26006    pub flags: ::core::option::Option<i32>,
26007}
26008#[derive(serde::Serialize, serde::Deserialize)]
26009#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26010pub struct CUserMessageSayTextChannel {
26011    #[prost(int32, optional, tag = "1")]
26012    pub player: ::core::option::Option<i32>,
26013    #[prost(int32, optional, tag = "2")]
26014    pub channel: ::core::option::Option<i32>,
26015    #[prost(string, optional, tag = "3")]
26016    pub text: ::core::option::Option<::prost::alloc::string::String>,
26017}
26018#[derive(serde::Serialize, serde::Deserialize)]
26019#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26020pub struct CUserMessageColoredText {
26021    #[prost(uint32, optional, tag = "1")]
26022    pub color: ::core::option::Option<u32>,
26023    #[prost(string, optional, tag = "2")]
26024    pub text: ::core::option::Option<::prost::alloc::string::String>,
26025    #[prost(bool, optional, tag = "3")]
26026    pub reset: ::core::option::Option<bool>,
26027    #[prost(int32, optional, tag = "4", default = "-1")]
26028    pub context_player_slot: ::core::option::Option<i32>,
26029    #[prost(int32, optional, tag = "5")]
26030    pub context_value: ::core::option::Option<i32>,
26031    #[prost(int32, optional, tag = "6")]
26032    pub context_team_id: ::core::option::Option<i32>,
26033}
26034#[derive(serde::Serialize, serde::Deserialize)]
26035#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26036pub struct CUserMessageItemPickup {
26037    #[prost(string, optional, tag = "1")]
26038    pub itemname: ::core::option::Option<::prost::alloc::string::String>,
26039}
26040#[derive(serde::Serialize, serde::Deserialize)]
26041#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26042pub struct CUserMessageAmmoDenied {
26043    #[prost(uint32, optional, tag = "1")]
26044    pub ammo_id: ::core::option::Option<u32>,
26045}
26046#[derive(serde::Serialize, serde::Deserialize)]
26047#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26048pub struct CUserMessageShowMenu {
26049    #[prost(uint32, optional, tag = "1")]
26050    pub validslots: ::core::option::Option<u32>,
26051    #[prost(uint32, optional, tag = "2")]
26052    pub displaytime: ::core::option::Option<u32>,
26053    #[prost(bool, optional, tag = "3")]
26054    pub needmore: ::core::option::Option<bool>,
26055    #[prost(string, optional, tag = "4")]
26056    pub menustring: ::core::option::Option<::prost::alloc::string::String>,
26057}
26058#[derive(serde::Serialize, serde::Deserialize)]
26059#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26060pub struct CUserMessageCreditsMsg {
26061    #[prost(enumeration = "ERollType", optional, tag = "1", default = "RollNone")]
26062    pub rolltype: ::core::option::Option<i32>,
26063    #[prost(float, optional, tag = "2")]
26064    pub logo_length: ::core::option::Option<f32>,
26065}
26066#[derive(serde::Serialize, serde::Deserialize)]
26067#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26068pub struct CEntityMessagePlayJingle {
26069    #[prost(message, optional, tag = "1")]
26070    pub entity_msg: ::core::option::Option<CEntityMsg>,
26071}
26072#[derive(serde::Serialize, serde::Deserialize)]
26073#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26074pub struct CEntityMessageScreenOverlay {
26075    #[prost(bool, optional, tag = "1")]
26076    pub start_effect: ::core::option::Option<bool>,
26077    #[prost(message, optional, tag = "2")]
26078    pub entity_msg: ::core::option::Option<CEntityMsg>,
26079}
26080#[derive(serde::Serialize, serde::Deserialize)]
26081#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26082pub struct CEntityMessageRemoveAllDecals {
26083    #[prost(bool, optional, tag = "1")]
26084    pub remove_decals: ::core::option::Option<bool>,
26085    #[prost(message, optional, tag = "2")]
26086    pub entity_msg: ::core::option::Option<CEntityMsg>,
26087}
26088#[derive(serde::Serialize, serde::Deserialize)]
26089#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26090pub struct CEntityMessagePropagateForce {
26091    #[prost(message, optional, tag = "1")]
26092    pub impulse: ::core::option::Option<CMsgVector>,
26093    #[prost(message, optional, tag = "2")]
26094    pub entity_msg: ::core::option::Option<CEntityMsg>,
26095}
26096#[derive(serde::Serialize, serde::Deserialize)]
26097#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26098pub struct CEntityMessageDoSpark {
26099    #[prost(message, optional, tag = "1")]
26100    pub origin: ::core::option::Option<CMsgVector>,
26101    #[prost(int32, optional, tag = "2", default = "-1")]
26102    pub entityindex: ::core::option::Option<i32>,
26103    #[prost(float, optional, tag = "3")]
26104    pub radius: ::core::option::Option<f32>,
26105    #[prost(fixed32, optional, tag = "4")]
26106    pub color: ::core::option::Option<u32>,
26107    #[prost(uint32, optional, tag = "5")]
26108    pub beams: ::core::option::Option<u32>,
26109    #[prost(float, optional, tag = "6")]
26110    pub thick: ::core::option::Option<f32>,
26111    #[prost(float, optional, tag = "7")]
26112    pub duration: ::core::option::Option<f32>,
26113    #[prost(message, optional, tag = "8")]
26114    pub entity_msg: ::core::option::Option<CEntityMsg>,
26115}
26116#[derive(serde::Serialize, serde::Deserialize)]
26117#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26118pub struct CEntityMessageFixAngle {
26119    #[prost(bool, optional, tag = "1")]
26120    pub relative: ::core::option::Option<bool>,
26121    #[prost(message, optional, tag = "2")]
26122    pub angle: ::core::option::Option<CMsgQAngle>,
26123    #[prost(message, optional, tag = "3")]
26124    pub entity_msg: ::core::option::Option<CEntityMsg>,
26125}
26126#[derive(serde::Serialize, serde::Deserialize)]
26127#[derive(Clone, PartialEq, ::prost::Message)]
26128pub struct CUserMessageCameraTransition {
26129    #[prost(uint32, optional, tag = "1")]
26130    pub camera_type: ::core::option::Option<u32>,
26131    #[prost(float, optional, tag = "2")]
26132    pub duration: ::core::option::Option<f32>,
26133    #[prost(message, optional, tag = "3")]
26134    pub params_data_driven: ::core::option::Option<
26135        c_user_message_camera_transition::TransitionDataDriven,
26136    >,
26137}
26138/// Nested message and enum types in `CUserMessageCameraTransition`.
26139pub mod c_user_message_camera_transition {
26140    #[derive(serde::Serialize, serde::Deserialize)]
26141    #[derive(Clone, PartialEq, ::prost::Message)]
26142    pub struct TransitionDataDriven {
26143        #[prost(string, optional, tag = "1")]
26144        pub filename: ::core::option::Option<::prost::alloc::string::String>,
26145        #[prost(int32, optional, tag = "2", default = "-1")]
26146        pub attach_ent_index: ::core::option::Option<i32>,
26147        #[prost(float, optional, tag = "3")]
26148        pub duration: ::core::option::Option<f32>,
26149    }
26150}
26151#[derive(serde::Serialize, serde::Deserialize)]
26152#[derive(Clone, PartialEq, ::prost::Message)]
26153pub struct CUserMsgParticleManager {
26154    #[prost(
26155        enumeration = "ParticleMessage",
26156        optional,
26157        tag = "1",
26158        default = "GameParticleManagerEventCreate"
26159    )]
26160    pub r#type: ::core::option::Option<i32>,
26161    #[prost(uint32, optional, tag = "2")]
26162    pub index: ::core::option::Option<u32>,
26163    #[prost(message, optional, tag = "3")]
26164    pub release_particle_index: ::core::option::Option<
26165        c_user_msg_particle_manager::ReleaseParticleIndex,
26166    >,
26167    #[prost(message, optional, tag = "4")]
26168    pub create_particle: ::core::option::Option<
26169        c_user_msg_particle_manager::CreateParticle,
26170    >,
26171    #[prost(message, optional, tag = "5")]
26172    pub destroy_particle: ::core::option::Option<
26173        c_user_msg_particle_manager::DestroyParticle,
26174    >,
26175    #[prost(message, optional, tag = "6")]
26176    pub destroy_particle_involving: ::core::option::Option<
26177        c_user_msg_particle_manager::DestroyParticleInvolving,
26178    >,
26179    #[prost(message, optional, tag = "7")]
26180    pub update_particle: ::core::option::Option<
26181        c_user_msg_particle_manager::UpdateParticleObsolete,
26182    >,
26183    #[prost(message, optional, tag = "8")]
26184    pub update_particle_fwd: ::core::option::Option<
26185        c_user_msg_particle_manager::UpdateParticleFwdObsolete,
26186    >,
26187    #[prost(message, optional, tag = "9")]
26188    pub update_particle_orient: ::core::option::Option<
26189        c_user_msg_particle_manager::UpdateParticleOrientObsolete,
26190    >,
26191    #[prost(message, optional, tag = "10")]
26192    pub update_particle_fallback: ::core::option::Option<
26193        c_user_msg_particle_manager::UpdateParticleFallback,
26194    >,
26195    #[prost(message, optional, tag = "11")]
26196    pub update_particle_offset: ::core::option::Option<
26197        c_user_msg_particle_manager::UpdateParticleOffset,
26198    >,
26199    #[prost(message, optional, tag = "12")]
26200    pub update_particle_ent: ::core::option::Option<
26201        c_user_msg_particle_manager::UpdateParticleEnt,
26202    >,
26203    #[prost(message, optional, tag = "14")]
26204    pub update_particle_should_draw: ::core::option::Option<
26205        c_user_msg_particle_manager::UpdateParticleShouldDraw,
26206    >,
26207    #[prost(message, optional, tag = "15")]
26208    pub update_particle_set_frozen: ::core::option::Option<
26209        c_user_msg_particle_manager::UpdateParticleSetFrozen,
26210    >,
26211    #[prost(message, optional, tag = "16")]
26212    pub change_control_point_attachment: ::core::option::Option<
26213        c_user_msg_particle_manager::ChangeControlPointAttachment,
26214    >,
26215    #[prost(message, optional, tag = "17")]
26216    pub update_entity_position: ::core::option::Option<
26217        c_user_msg_particle_manager::UpdateEntityPosition,
26218    >,
26219    #[prost(message, optional, tag = "18")]
26220    pub set_particle_fow_properties: ::core::option::Option<
26221        c_user_msg_particle_manager::SetParticleFoWProperties,
26222    >,
26223    #[prost(message, optional, tag = "19")]
26224    pub set_particle_text: ::core::option::Option<
26225        c_user_msg_particle_manager::SetParticleText,
26226    >,
26227    #[prost(message, optional, tag = "20")]
26228    pub set_particle_should_check_fow: ::core::option::Option<
26229        c_user_msg_particle_manager::SetParticleShouldCheckFoW,
26230    >,
26231    #[prost(message, optional, tag = "21")]
26232    pub set_control_point_model: ::core::option::Option<
26233        c_user_msg_particle_manager::SetControlPointModel,
26234    >,
26235    #[prost(message, optional, tag = "22")]
26236    pub set_control_point_snapshot: ::core::option::Option<
26237        c_user_msg_particle_manager::SetControlPointSnapshot,
26238    >,
26239    #[prost(message, optional, tag = "23")]
26240    pub set_texture_attribute: ::core::option::Option<
26241        c_user_msg_particle_manager::SetTextureAttribute,
26242    >,
26243    #[prost(message, optional, tag = "24")]
26244    pub set_scene_object_generic_flag: ::core::option::Option<
26245        c_user_msg_particle_manager::SetSceneObjectGenericFlag,
26246    >,
26247    #[prost(message, optional, tag = "25")]
26248    pub set_scene_object_tint_and_desat: ::core::option::Option<
26249        c_user_msg_particle_manager::SetSceneObjectTintAndDesat,
26250    >,
26251    #[prost(message, optional, tag = "26")]
26252    pub destroy_particle_named: ::core::option::Option<
26253        c_user_msg_particle_manager::DestroyParticleNamed,
26254    >,
26255    #[prost(message, optional, tag = "27")]
26256    pub particle_skip_to_time: ::core::option::Option<
26257        c_user_msg_particle_manager::ParticleSkipToTime,
26258    >,
26259    #[prost(message, optional, tag = "28")]
26260    pub particle_can_freeze: ::core::option::Option<
26261        c_user_msg_particle_manager::ParticleCanFreeze,
26262    >,
26263    #[prost(message, optional, tag = "29")]
26264    pub set_named_value_context: ::core::option::Option<
26265        c_user_msg_particle_manager::SetParticleNamedValueContext,
26266    >,
26267    #[prost(message, optional, tag = "30")]
26268    pub update_particle_transform: ::core::option::Option<
26269        c_user_msg_particle_manager::UpdateParticleTransform,
26270    >,
26271    #[prost(message, optional, tag = "31")]
26272    pub particle_freeze_transition_override: ::core::option::Option<
26273        c_user_msg_particle_manager::ParticleFreezeTransitionOverride,
26274    >,
26275    #[prost(message, optional, tag = "32")]
26276    pub freeze_particle_involving: ::core::option::Option<
26277        c_user_msg_particle_manager::FreezeParticleInvolving,
26278    >,
26279    #[prost(message, optional, tag = "33")]
26280    pub add_modellist_override_element: ::core::option::Option<
26281        c_user_msg_particle_manager::AddModellistOverrideElement,
26282    >,
26283    #[prost(message, optional, tag = "34")]
26284    pub clear_modellist_override: ::core::option::Option<
26285        c_user_msg_particle_manager::ClearModellistOverride,
26286    >,
26287    #[prost(message, optional, tag = "35")]
26288    pub create_physics_sim: ::core::option::Option<
26289        c_user_msg_particle_manager::CreatePhysicsSim,
26290    >,
26291    #[prost(message, optional, tag = "36")]
26292    pub destroy_physics_sim: ::core::option::Option<
26293        c_user_msg_particle_manager::DestroyPhysicsSim,
26294    >,
26295    #[prost(message, optional, tag = "37")]
26296    pub set_vdata: ::core::option::Option<c_user_msg_particle_manager::SetVData>,
26297    #[prost(message, optional, tag = "38")]
26298    pub set_material_override: ::core::option::Option<
26299        c_user_msg_particle_manager::SetMaterialOverride,
26300    >,
26301    #[prost(message, optional, tag = "39")]
26302    pub add_fan: ::core::option::Option<c_user_msg_particle_manager::AddFan>,
26303    #[prost(message, optional, tag = "40")]
26304    pub update_fan: ::core::option::Option<c_user_msg_particle_manager::UpdateFan>,
26305    #[prost(message, optional, tag = "41")]
26306    pub set_particle_cluster_growth: ::core::option::Option<
26307        c_user_msg_particle_manager::SetParticleClusterGrowth,
26308    >,
26309    #[prost(message, optional, tag = "42")]
26310    pub remove_fan: ::core::option::Option<c_user_msg_particle_manager::RemoveFan>,
26311    #[prost(message, optional, tag = "43")]
26312    pub create_smoke_grid: ::core::option::Option<
26313        c_user_msg_particle_manager::CreateSmokeGrid,
26314    >,
26315}
26316/// Nested message and enum types in `CUserMsg_ParticleManager`.
26317pub mod c_user_msg_particle_manager {
26318    #[derive(serde::Serialize, serde::Deserialize)]
26319    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26320    pub struct ReleaseParticleIndex {}
26321    #[derive(serde::Serialize, serde::Deserialize)]
26322    #[derive(Clone, PartialEq, ::prost::Message)]
26323    pub struct CreateParticle {
26324        #[prost(fixed64, optional, tag = "1")]
26325        pub particle_name_index: ::core::option::Option<u64>,
26326        #[prost(int32, optional, tag = "2")]
26327        pub attach_type: ::core::option::Option<i32>,
26328        #[prost(uint32, optional, tag = "3", default = "16777215")]
26329        pub entity_handle: ::core::option::Option<u32>,
26330        #[prost(uint32, optional, tag = "4", default = "16777215")]
26331        pub entity_handle_for_modifiers: ::core::option::Option<u32>,
26332        #[prost(bool, optional, tag = "5")]
26333        pub apply_voice_ban_rules: ::core::option::Option<bool>,
26334        #[prost(int32, optional, tag = "6")]
26335        pub team_behavior: ::core::option::Option<i32>,
26336        #[prost(string, optional, tag = "7")]
26337        pub control_point_configuration: ::core::option::Option<
26338            ::prost::alloc::string::String,
26339        >,
26340        #[prost(bool, optional, tag = "8")]
26341        pub cluster: ::core::option::Option<bool>,
26342        #[prost(float, optional, tag = "9")]
26343        pub endcap_time: ::core::option::Option<f32>,
26344        #[prost(message, optional, tag = "10")]
26345        pub aggregation_position: ::core::option::Option<super::CMsgVector>,
26346    }
26347    #[derive(serde::Serialize, serde::Deserialize)]
26348    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26349    pub struct DestroyParticle {
26350        #[prost(bool, optional, tag = "1")]
26351        pub destroy_immediately: ::core::option::Option<bool>,
26352    }
26353    #[derive(serde::Serialize, serde::Deserialize)]
26354    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26355    pub struct DestroyParticleInvolving {
26356        #[prost(bool, optional, tag = "1")]
26357        pub destroy_immediately: ::core::option::Option<bool>,
26358        #[prost(uint32, optional, tag = "3", default = "16777215")]
26359        pub entity_handle: ::core::option::Option<u32>,
26360    }
26361    #[derive(serde::Serialize, serde::Deserialize)]
26362    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26363    pub struct DestroyParticleNamed {
26364        #[prost(fixed64, optional, tag = "1")]
26365        pub particle_name_index: ::core::option::Option<u64>,
26366        #[prost(uint32, optional, tag = "2", default = "16777215")]
26367        pub entity_handle: ::core::option::Option<u32>,
26368        #[prost(bool, optional, tag = "3")]
26369        pub destroy_immediately: ::core::option::Option<bool>,
26370        #[prost(bool, optional, tag = "4")]
26371        pub play_endcap: ::core::option::Option<bool>,
26372    }
26373    #[derive(serde::Serialize, serde::Deserialize)]
26374    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26375    pub struct UpdateParticleObsolete {
26376        #[prost(int32, optional, tag = "1")]
26377        pub control_point: ::core::option::Option<i32>,
26378        #[prost(message, optional, tag = "2")]
26379        pub position: ::core::option::Option<super::CMsgVector>,
26380    }
26381    #[derive(serde::Serialize, serde::Deserialize)]
26382    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26383    pub struct UpdateParticleFwdObsolete {
26384        #[prost(int32, optional, tag = "1")]
26385        pub control_point: ::core::option::Option<i32>,
26386        #[prost(message, optional, tag = "2")]
26387        pub forward: ::core::option::Option<super::CMsgVector>,
26388    }
26389    #[derive(serde::Serialize, serde::Deserialize)]
26390    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26391    pub struct UpdateParticleOrientObsolete {
26392        #[prost(int32, optional, tag = "1")]
26393        pub control_point: ::core::option::Option<i32>,
26394        #[prost(message, optional, tag = "2")]
26395        pub forward: ::core::option::Option<super::CMsgVector>,
26396        #[prost(message, optional, tag = "3")]
26397        pub deprecated_right: ::core::option::Option<super::CMsgVector>,
26398        #[prost(message, optional, tag = "4")]
26399        pub up: ::core::option::Option<super::CMsgVector>,
26400        #[prost(message, optional, tag = "5")]
26401        pub left: ::core::option::Option<super::CMsgVector>,
26402    }
26403    #[derive(serde::Serialize, serde::Deserialize)]
26404    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26405    pub struct UpdateParticleTransform {
26406        #[prost(int32, optional, tag = "1")]
26407        pub control_point: ::core::option::Option<i32>,
26408        #[prost(message, optional, tag = "2")]
26409        pub position: ::core::option::Option<super::CMsgVector>,
26410        #[prost(message, optional, tag = "3")]
26411        pub orientation: ::core::option::Option<super::CMsgQuaternion>,
26412        #[prost(float, optional, tag = "4")]
26413        pub interpolation_interval: ::core::option::Option<f32>,
26414    }
26415    #[derive(serde::Serialize, serde::Deserialize)]
26416    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26417    pub struct UpdateParticleFallback {
26418        #[prost(int32, optional, tag = "1")]
26419        pub control_point: ::core::option::Option<i32>,
26420        #[prost(message, optional, tag = "2")]
26421        pub position: ::core::option::Option<super::CMsgVector>,
26422    }
26423    #[derive(serde::Serialize, serde::Deserialize)]
26424    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26425    pub struct UpdateParticleOffset {
26426        #[prost(int32, optional, tag = "1")]
26427        pub control_point: ::core::option::Option<i32>,
26428        #[prost(message, optional, tag = "2")]
26429        pub origin_offset: ::core::option::Option<super::CMsgVector>,
26430        #[prost(message, optional, tag = "3")]
26431        pub angle_offset: ::core::option::Option<super::CMsgQAngle>,
26432    }
26433    #[derive(serde::Serialize, serde::Deserialize)]
26434    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26435    pub struct UpdateParticleEnt {
26436        #[prost(int32, optional, tag = "1")]
26437        pub control_point: ::core::option::Option<i32>,
26438        #[prost(uint32, optional, tag = "2", default = "16777215")]
26439        pub entity_handle: ::core::option::Option<u32>,
26440        #[prost(int32, optional, tag = "3")]
26441        pub attach_type: ::core::option::Option<i32>,
26442        #[prost(int32, optional, tag = "4")]
26443        pub attachment: ::core::option::Option<i32>,
26444        #[prost(message, optional, tag = "5")]
26445        pub fallback_position: ::core::option::Option<super::CMsgVector>,
26446        #[prost(bool, optional, tag = "6")]
26447        pub include_wearables: ::core::option::Option<bool>,
26448        #[prost(message, optional, tag = "7")]
26449        pub offset_position: ::core::option::Option<super::CMsgVector>,
26450        #[prost(message, optional, tag = "8")]
26451        pub offset_angles: ::core::option::Option<super::CMsgQAngle>,
26452    }
26453    #[derive(serde::Serialize, serde::Deserialize)]
26454    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26455    pub struct UpdateParticleSetFrozen {
26456        #[prost(bool, optional, tag = "1")]
26457        pub set_frozen: ::core::option::Option<bool>,
26458        #[prost(float, optional, tag = "2")]
26459        pub transition_duration: ::core::option::Option<f32>,
26460    }
26461    #[derive(serde::Serialize, serde::Deserialize)]
26462    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26463    pub struct UpdateParticleShouldDraw {
26464        #[prost(bool, optional, tag = "1")]
26465        pub should_draw: ::core::option::Option<bool>,
26466    }
26467    #[derive(serde::Serialize, serde::Deserialize)]
26468    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26469    pub struct ChangeControlPointAttachment {
26470        #[prost(int32, optional, tag = "1")]
26471        pub attachment_old: ::core::option::Option<i32>,
26472        #[prost(int32, optional, tag = "2")]
26473        pub attachment_new: ::core::option::Option<i32>,
26474        #[prost(uint32, optional, tag = "3", default = "16777215")]
26475        pub entity_handle: ::core::option::Option<u32>,
26476    }
26477    #[derive(serde::Serialize, serde::Deserialize)]
26478    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26479    pub struct UpdateEntityPosition {
26480        #[prost(uint32, optional, tag = "1", default = "16777215")]
26481        pub entity_handle: ::core::option::Option<u32>,
26482        #[prost(message, optional, tag = "2")]
26483        pub position: ::core::option::Option<super::CMsgVector>,
26484    }
26485    #[derive(serde::Serialize, serde::Deserialize)]
26486    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26487    pub struct SetParticleFoWProperties {
26488        #[prost(int32, optional, tag = "1")]
26489        pub fow_control_point: ::core::option::Option<i32>,
26490        #[prost(int32, optional, tag = "2")]
26491        pub fow_control_point2: ::core::option::Option<i32>,
26492        #[prost(float, optional, tag = "3")]
26493        pub fow_radius: ::core::option::Option<f32>,
26494    }
26495    #[derive(serde::Serialize, serde::Deserialize)]
26496    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26497    pub struct SetParticleShouldCheckFoW {
26498        #[prost(bool, optional, tag = "1")]
26499        pub check_fow: ::core::option::Option<bool>,
26500    }
26501    #[derive(serde::Serialize, serde::Deserialize)]
26502    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26503    pub struct SetControlPointModel {
26504        #[prost(int32, optional, tag = "1")]
26505        pub control_point: ::core::option::Option<i32>,
26506        #[prost(string, optional, tag = "2")]
26507        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
26508    }
26509    #[derive(serde::Serialize, serde::Deserialize)]
26510    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26511    pub struct SetControlPointSnapshot {
26512        #[prost(int32, optional, tag = "1")]
26513        pub control_point: ::core::option::Option<i32>,
26514        #[prost(string, optional, tag = "2")]
26515        pub snapshot_name: ::core::option::Option<::prost::alloc::string::String>,
26516    }
26517    #[derive(serde::Serialize, serde::Deserialize)]
26518    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26519    pub struct SetParticleText {
26520        #[prost(string, optional, tag = "1")]
26521        pub text: ::core::option::Option<::prost::alloc::string::String>,
26522        #[prost(bool, optional, tag = "2")]
26523        pub localize: ::core::option::Option<bool>,
26524    }
26525    #[derive(serde::Serialize, serde::Deserialize)]
26526    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26527    pub struct SetTextureAttribute {
26528        #[prost(string, optional, tag = "1")]
26529        pub attribute_name: ::core::option::Option<::prost::alloc::string::String>,
26530        #[prost(string, optional, tag = "2")]
26531        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
26532    }
26533    #[derive(serde::Serialize, serde::Deserialize)]
26534    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26535    pub struct SetSceneObjectGenericFlag {
26536        #[prost(bool, optional, tag = "1")]
26537        pub flag_value: ::core::option::Option<bool>,
26538    }
26539    #[derive(serde::Serialize, serde::Deserialize)]
26540    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26541    pub struct SetSceneObjectTintAndDesat {
26542        #[prost(fixed32, optional, tag = "1")]
26543        pub tint: ::core::option::Option<u32>,
26544        #[prost(float, optional, tag = "2")]
26545        pub desat: ::core::option::Option<f32>,
26546    }
26547    #[derive(serde::Serialize, serde::Deserialize)]
26548    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26549    pub struct ParticleSkipToTime {
26550        #[prost(float, optional, tag = "1")]
26551        pub skip_to_time: ::core::option::Option<f32>,
26552    }
26553    #[derive(serde::Serialize, serde::Deserialize)]
26554    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26555    pub struct ParticleCanFreeze {
26556        #[prost(bool, optional, tag = "1")]
26557        pub can_freeze: ::core::option::Option<bool>,
26558    }
26559    #[derive(serde::Serialize, serde::Deserialize)]
26560    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26561    pub struct ParticleFreezeTransitionOverride {
26562        #[prost(float, optional, tag = "1")]
26563        pub freeze_transition_override: ::core::option::Option<f32>,
26564    }
26565    #[derive(serde::Serialize, serde::Deserialize)]
26566    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26567    pub struct FreezeParticleInvolving {
26568        #[prost(bool, optional, tag = "1")]
26569        pub set_frozen: ::core::option::Option<bool>,
26570        #[prost(float, optional, tag = "2")]
26571        pub transition_duration: ::core::option::Option<f32>,
26572        #[prost(uint32, optional, tag = "3", default = "16777215")]
26573        pub entity_handle: ::core::option::Option<u32>,
26574    }
26575    #[derive(serde::Serialize, serde::Deserialize)]
26576    #[derive(Clone, PartialEq, ::prost::Message)]
26577    pub struct AddModellistOverrideElement {
26578        #[prost(string, optional, tag = "1")]
26579        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
26580        #[prost(float, optional, tag = "2")]
26581        pub spawn_probability: ::core::option::Option<f32>,
26582        #[prost(uint32, optional, tag = "3")]
26583        pub groupid: ::core::option::Option<u32>,
26584    }
26585    #[derive(serde::Serialize, serde::Deserialize)]
26586    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26587    pub struct ClearModellistOverride {
26588        #[prost(uint32, optional, tag = "1")]
26589        pub groupid: ::core::option::Option<u32>,
26590    }
26591    #[derive(serde::Serialize, serde::Deserialize)]
26592    #[derive(Clone, PartialEq, ::prost::Message)]
26593    pub struct SetParticleNamedValueContext {
26594        #[prost(message, repeated, tag = "1")]
26595        pub float_values: ::prost::alloc::vec::Vec<
26596            set_particle_named_value_context::FloatContextValue,
26597        >,
26598        #[prost(message, repeated, tag = "2")]
26599        pub vector_values: ::prost::alloc::vec::Vec<
26600            set_particle_named_value_context::VectorContextValue,
26601        >,
26602        #[prost(message, repeated, tag = "3")]
26603        pub transform_values: ::prost::alloc::vec::Vec<
26604            set_particle_named_value_context::TransformContextValue,
26605        >,
26606        #[prost(message, repeated, tag = "4")]
26607        pub ehandle_values: ::prost::alloc::vec::Vec<
26608            set_particle_named_value_context::EHandleContext,
26609        >,
26610    }
26611    /// Nested message and enum types in `SetParticleNamedValueContext`.
26612    pub mod set_particle_named_value_context {
26613        #[derive(serde::Serialize, serde::Deserialize)]
26614        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26615        pub struct FloatContextValue {
26616            #[prost(uint32, optional, tag = "1")]
26617            pub value_name_hash: ::core::option::Option<u32>,
26618            #[prost(float, optional, tag = "2")]
26619            pub value: ::core::option::Option<f32>,
26620        }
26621        #[derive(serde::Serialize, serde::Deserialize)]
26622        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26623        pub struct VectorContextValue {
26624            #[prost(uint32, optional, tag = "1")]
26625            pub value_name_hash: ::core::option::Option<u32>,
26626            #[prost(message, optional, tag = "2")]
26627            pub value: ::core::option::Option<super::super::CMsgVector>,
26628        }
26629        #[derive(serde::Serialize, serde::Deserialize)]
26630        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26631        pub struct TransformContextValue {
26632            #[prost(uint32, optional, tag = "1")]
26633            pub value_name_hash: ::core::option::Option<u32>,
26634            #[prost(message, optional, tag = "2")]
26635            pub angles: ::core::option::Option<super::super::CMsgQAngle>,
26636            #[prost(message, optional, tag = "3")]
26637            pub translation: ::core::option::Option<super::super::CMsgVector>,
26638        }
26639        #[derive(serde::Serialize, serde::Deserialize)]
26640        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26641        pub struct EHandleContext {
26642            #[prost(uint32, optional, tag = "1")]
26643            pub value_name_hash: ::core::option::Option<u32>,
26644            #[prost(uint32, optional, tag = "2", default = "16777215")]
26645            pub ent_index: ::core::option::Option<u32>,
26646        }
26647    }
26648    #[derive(serde::Serialize, serde::Deserialize)]
26649    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26650    pub struct CreatePhysicsSim {
26651        #[prost(string, optional, tag = "1")]
26652        pub prop_group_name: ::core::option::Option<::prost::alloc::string::String>,
26653        #[prost(bool, optional, tag = "2")]
26654        pub use_high_quality_simulation: ::core::option::Option<bool>,
26655        #[prost(uint32, optional, tag = "3")]
26656        pub max_particle_count: ::core::option::Option<u32>,
26657    }
26658    #[derive(serde::Serialize, serde::Deserialize)]
26659    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26660    pub struct DestroyPhysicsSim {}
26661    #[derive(serde::Serialize, serde::Deserialize)]
26662    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26663    pub struct CreateSmokeGrid {
26664        #[prost(string, optional, tag = "1")]
26665        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
26666    }
26667    #[derive(serde::Serialize, serde::Deserialize)]
26668    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26669    pub struct SetVData {
26670        #[prost(string, optional, tag = "1")]
26671        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
26672    }
26673    #[derive(serde::Serialize, serde::Deserialize)]
26674    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26675    pub struct SetMaterialOverride {
26676        #[prost(string, optional, tag = "1")]
26677        pub material_name: ::core::option::Option<::prost::alloc::string::String>,
26678        #[prost(bool, optional, tag = "2")]
26679        pub include_children: ::core::option::Option<bool>,
26680    }
26681    #[derive(serde::Serialize, serde::Deserialize)]
26682    #[derive(Clone, PartialEq, ::prost::Message)]
26683    pub struct AddFan {
26684        #[prost(bool, optional, tag = "1")]
26685        pub active: ::core::option::Option<bool>,
26686        #[prost(message, optional, tag = "2")]
26687        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
26688        #[prost(message, optional, tag = "3")]
26689        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
26690        #[prost(message, optional, tag = "4")]
26691        pub fan_origin: ::core::option::Option<super::CMsgVector>,
26692        #[prost(message, optional, tag = "5")]
26693        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
26694        #[prost(message, optional, tag = "6")]
26695        pub fan_direction: ::core::option::Option<super::CMsgVector>,
26696        #[prost(float, optional, tag = "7")]
26697        pub force: ::core::option::Option<f32>,
26698        #[prost(string, optional, tag = "8")]
26699        pub fan_force_curve: ::core::option::Option<::prost::alloc::string::String>,
26700        #[prost(bool, optional, tag = "9")]
26701        pub falloff: ::core::option::Option<bool>,
26702        #[prost(bool, optional, tag = "10")]
26703        pub pull_towards_point: ::core::option::Option<bool>,
26704        #[prost(float, optional, tag = "11")]
26705        pub curve_min_dist: ::core::option::Option<f32>,
26706        #[prost(float, optional, tag = "12")]
26707        pub curve_max_dist: ::core::option::Option<f32>,
26708        #[prost(uint32, optional, tag = "13")]
26709        pub fan_type: ::core::option::Option<u32>,
26710        #[prost(float, optional, tag = "14")]
26711        pub cone_start_radius: ::core::option::Option<f32>,
26712        #[prost(float, optional, tag = "15")]
26713        pub cone_end_radius: ::core::option::Option<f32>,
26714        #[prost(float, optional, tag = "16")]
26715        pub cone_length: ::core::option::Option<f32>,
26716        #[prost(uint32, optional, tag = "17", default = "16777215")]
26717        pub entity_handle: ::core::option::Option<u32>,
26718        #[prost(string, optional, tag = "18")]
26719        pub attachment_name: ::core::option::Option<::prost::alloc::string::String>,
26720    }
26721    #[derive(serde::Serialize, serde::Deserialize)]
26722    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26723    pub struct UpdateFan {
26724        #[prost(bool, optional, tag = "1")]
26725        pub active: ::core::option::Option<bool>,
26726        #[prost(message, optional, tag = "2")]
26727        pub fan_origin: ::core::option::Option<super::CMsgVector>,
26728        #[prost(message, optional, tag = "3")]
26729        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
26730        #[prost(message, optional, tag = "4")]
26731        pub fan_direction: ::core::option::Option<super::CMsgVector>,
26732        #[prost(float, optional, tag = "7")]
26733        pub fan_ramp_ratio: ::core::option::Option<f32>,
26734        #[prost(message, optional, tag = "5")]
26735        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
26736        #[prost(message, optional, tag = "6")]
26737        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
26738    }
26739    #[derive(serde::Serialize, serde::Deserialize)]
26740    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26741    pub struct RemoveFan {}
26742    #[derive(serde::Serialize, serde::Deserialize)]
26743    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26744    pub struct SetParticleClusterGrowth {
26745        #[prost(float, optional, tag = "1")]
26746        pub duration: ::core::option::Option<f32>,
26747        #[prost(message, optional, tag = "2")]
26748        pub origin: ::core::option::Option<super::CMsgVector>,
26749    }
26750}
26751#[derive(serde::Serialize, serde::Deserialize)]
26752#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26753pub struct CUserMsgHudError {
26754    #[prost(int32, optional, tag = "1")]
26755    pub order_id: ::core::option::Option<i32>,
26756}
26757#[derive(serde::Serialize, serde::Deserialize)]
26758#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26759pub struct CUserMsgCustomGameEvent {
26760    #[prost(string, optional, tag = "1")]
26761    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
26762    #[prost(bytes = "vec", optional, tag = "2")]
26763    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
26764}
26765#[derive(serde::Serialize, serde::Deserialize)]
26766#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26767pub struct CUserMessageHapticsManagerPulse {
26768    #[prost(int32, optional, tag = "1")]
26769    pub hand_id: ::core::option::Option<i32>,
26770    #[prost(float, optional, tag = "2")]
26771    pub effect_amplitude: ::core::option::Option<f32>,
26772    #[prost(float, optional, tag = "3")]
26773    pub effect_frequency: ::core::option::Option<f32>,
26774    #[prost(float, optional, tag = "4")]
26775    pub effect_duration: ::core::option::Option<f32>,
26776}
26777#[derive(serde::Serialize, serde::Deserialize)]
26778#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26779pub struct CUserMessageHapticsManagerEffect {
26780    #[prost(int32, optional, tag = "1")]
26781    pub hand_id: ::core::option::Option<i32>,
26782    #[prost(uint32, optional, tag = "2", default = "0")]
26783    pub effect_name_hash_code: ::core::option::Option<u32>,
26784    #[prost(float, optional, tag = "3")]
26785    pub effect_scale: ::core::option::Option<f32>,
26786}
26787#[derive(serde::Serialize, serde::Deserialize)]
26788#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26789pub struct CUserMessageAnimStateGraphState {
26790    #[prost(int32, optional, tag = "1")]
26791    pub entity_index: ::core::option::Option<i32>,
26792    #[prost(bytes = "vec", optional, tag = "2")]
26793    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
26794}
26795#[derive(serde::Serialize, serde::Deserialize)]
26796#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26797pub struct CUserMessageUpdateCssClasses {
26798    #[prost(int32, optional, tag = "1")]
26799    pub target_world_panel: ::core::option::Option<i32>,
26800    #[prost(string, optional, tag = "2")]
26801    pub css_classes: ::core::option::Option<::prost::alloc::string::String>,
26802    #[prost(bool, optional, tag = "3")]
26803    pub is_add: ::core::option::Option<bool>,
26804}
26805#[derive(serde::Serialize, serde::Deserialize)]
26806#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26807pub struct CUserMessageServerFrameTime {
26808    #[prost(float, optional, tag = "1")]
26809    pub frame_time: ::core::option::Option<f32>,
26810}
26811#[derive(serde::Serialize, serde::Deserialize)]
26812#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26813pub struct CUserMessageLagCompensationError {
26814    #[prost(float, optional, tag = "1")]
26815    pub distance: ::core::option::Option<f32>,
26816}
26817#[derive(serde::Serialize, serde::Deserialize)]
26818#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26819pub struct CUserMessageRequestDllStatus {
26820    #[prost(string, optional, tag = "1")]
26821    pub dll_action: ::core::option::Option<::prost::alloc::string::String>,
26822    #[prost(bool, optional, tag = "2")]
26823    pub full_report: ::core::option::Option<bool>,
26824}
26825#[derive(serde::Serialize, serde::Deserialize)]
26826#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26827pub struct CUserMessageRequestUtilAction {
26828    #[prost(int32, optional, tag = "2")]
26829    pub util1: ::core::option::Option<i32>,
26830    #[prost(int32, optional, tag = "3")]
26831    pub util2: ::core::option::Option<i32>,
26832    #[prost(int32, optional, tag = "4")]
26833    pub util3: ::core::option::Option<i32>,
26834    #[prost(int32, optional, tag = "5")]
26835    pub util4: ::core::option::Option<i32>,
26836    #[prost(int32, optional, tag = "6")]
26837    pub util5: ::core::option::Option<i32>,
26838}
26839#[derive(serde::Serialize, serde::Deserialize)]
26840#[derive(Clone, PartialEq, ::prost::Message)]
26841pub struct CUserMessageUtilMsgResponse {
26842    #[prost(fixed32, optional, tag = "1")]
26843    pub crc: ::core::option::Option<u32>,
26844    #[prost(int32, optional, tag = "2")]
26845    pub item_count: ::core::option::Option<i32>,
26846    #[prost(fixed32, optional, tag = "3")]
26847    pub crc2: ::core::option::Option<u32>,
26848    #[prost(int32, optional, tag = "4")]
26849    pub item_count2: ::core::option::Option<i32>,
26850    #[prost(int32, repeated, packed = "false", tag = "5")]
26851    pub crc_part: ::prost::alloc::vec::Vec<i32>,
26852    #[prost(int32, repeated, packed = "false", tag = "6")]
26853    pub crc_part2: ::prost::alloc::vec::Vec<i32>,
26854    #[prost(int32, optional, tag = "7")]
26855    pub client_timestamp: ::core::option::Option<i32>,
26856    #[prost(int32, optional, tag = "8")]
26857    pub platform: ::core::option::Option<i32>,
26858    #[prost(message, repeated, tag = "9")]
26859    pub itemdetails: ::prost::alloc::vec::Vec<
26860        c_user_message_util_msg_response::ItemDetail,
26861    >,
26862    #[prost(int32, optional, tag = "10")]
26863    pub itemgroup: ::core::option::Option<i32>,
26864    #[prost(int32, optional, tag = "11")]
26865    pub total_count: ::core::option::Option<i32>,
26866    #[prost(int32, optional, tag = "12")]
26867    pub total_count2: ::core::option::Option<i32>,
26868}
26869/// Nested message and enum types in `CUserMessage_UtilMsg_Response`.
26870pub mod c_user_message_util_msg_response {
26871    #[derive(serde::Serialize, serde::Deserialize)]
26872    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26873    pub struct ItemDetail {
26874        #[prost(int32, optional, tag = "1")]
26875        pub index: ::core::option::Option<i32>,
26876        #[prost(int32, optional, tag = "2")]
26877        pub hash: ::core::option::Option<i32>,
26878        #[prost(int32, optional, tag = "3")]
26879        pub crc: ::core::option::Option<i32>,
26880        #[prost(string, optional, tag = "4")]
26881        pub name: ::core::option::Option<::prost::alloc::string::String>,
26882    }
26883}
26884#[derive(serde::Serialize, serde::Deserialize)]
26885#[derive(Clone, PartialEq, ::prost::Message)]
26886pub struct CUserMessageDllStatus {
26887    #[prost(string, optional, tag = "1")]
26888    pub file_report: ::core::option::Option<::prost::alloc::string::String>,
26889    #[prost(string, optional, tag = "2")]
26890    pub command_line: ::core::option::Option<::prost::alloc::string::String>,
26891    #[prost(uint32, optional, tag = "3")]
26892    pub total_files: ::core::option::Option<u32>,
26893    #[prost(uint32, optional, tag = "4")]
26894    pub process_id: ::core::option::Option<u32>,
26895    #[prost(int32, optional, tag = "5")]
26896    pub osversion: ::core::option::Option<i32>,
26897    #[prost(uint64, optional, tag = "6")]
26898    pub client_time: ::core::option::Option<u64>,
26899    #[prost(message, repeated, tag = "7")]
26900    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_dll_status::CvDiagnostic>,
26901    #[prost(message, repeated, tag = "8")]
26902    pub modules: ::prost::alloc::vec::Vec<c_user_message_dll_status::CModule>,
26903}
26904/// Nested message and enum types in `CUserMessage_DllStatus`.
26905pub mod c_user_message_dll_status {
26906    #[derive(serde::Serialize, serde::Deserialize)]
26907    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26908    pub struct CvDiagnostic {
26909        #[prost(uint32, optional, tag = "1")]
26910        pub id: ::core::option::Option<u32>,
26911        #[prost(uint32, optional, tag = "2")]
26912        pub extended: ::core::option::Option<u32>,
26913        #[prost(uint64, optional, tag = "3")]
26914        pub value: ::core::option::Option<u64>,
26915        #[prost(string, optional, tag = "4")]
26916        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
26917    }
26918    #[derive(serde::Serialize, serde::Deserialize)]
26919    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26920    pub struct CModule {
26921        #[prost(uint64, optional, tag = "1")]
26922        pub base_addr: ::core::option::Option<u64>,
26923        #[prost(string, optional, tag = "2")]
26924        pub name: ::core::option::Option<::prost::alloc::string::String>,
26925        #[prost(uint32, optional, tag = "3")]
26926        pub size: ::core::option::Option<u32>,
26927        #[prost(uint32, optional, tag = "4")]
26928        pub timestamp: ::core::option::Option<u32>,
26929    }
26930}
26931#[derive(serde::Serialize, serde::Deserialize)]
26932#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
26933pub struct CUserMessageRequestInventory {
26934    #[prost(int32, optional, tag = "1")]
26935    pub inventory: ::core::option::Option<i32>,
26936    #[prost(int32, optional, tag = "2")]
26937    pub offset: ::core::option::Option<i32>,
26938    #[prost(int32, optional, tag = "3")]
26939    pub options: ::core::option::Option<i32>,
26940}
26941#[derive(serde::Serialize, serde::Deserialize)]
26942#[derive(Clone, PartialEq, ::prost::Message)]
26943pub struct CUserMessageInventoryResponse {
26944    #[prost(fixed32, optional, tag = "1")]
26945    pub crc: ::core::option::Option<u32>,
26946    #[prost(int32, optional, tag = "2")]
26947    pub item_count: ::core::option::Option<i32>,
26948    #[prost(int32, optional, tag = "5")]
26949    pub osversion: ::core::option::Option<i32>,
26950    #[prost(int32, optional, tag = "6")]
26951    pub perf_time: ::core::option::Option<i32>,
26952    #[prost(int32, optional, tag = "7")]
26953    pub client_timestamp: ::core::option::Option<i32>,
26954    #[prost(int32, optional, tag = "8")]
26955    pub platform: ::core::option::Option<i32>,
26956    #[prost(message, repeated, tag = "9")]
26957    pub inventories: ::prost::alloc::vec::Vec<
26958        c_user_message_inventory_response::InventoryDetail,
26959    >,
26960    #[prost(message, repeated, tag = "10")]
26961    pub inventories2: ::prost::alloc::vec::Vec<
26962        c_user_message_inventory_response::InventoryDetail,
26963    >,
26964    #[prost(message, repeated, tag = "14")]
26965    pub inventories3: ::prost::alloc::vec::Vec<
26966        c_user_message_inventory_response::InventoryDetail,
26967    >,
26968    #[prost(int32, optional, tag = "11")]
26969    pub inv_type: ::core::option::Option<i32>,
26970    #[prost(int32, optional, tag = "12")]
26971    pub build_version: ::core::option::Option<i32>,
26972    #[prost(int32, optional, tag = "13")]
26973    pub instance: ::core::option::Option<i32>,
26974    #[prost(int64, optional, tag = "15")]
26975    pub start_time: ::core::option::Option<i64>,
26976}
26977/// Nested message and enum types in `CUserMessage_Inventory_Response`.
26978pub mod c_user_message_inventory_response {
26979    #[derive(serde::Serialize, serde::Deserialize)]
26980    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
26981    pub struct InventoryDetail {
26982        #[prost(int32, optional, tag = "1")]
26983        pub index: ::core::option::Option<i32>,
26984        #[prost(int64, optional, tag = "2")]
26985        pub primary: ::core::option::Option<i64>,
26986        #[prost(int64, optional, tag = "3")]
26987        pub offset: ::core::option::Option<i64>,
26988        #[prost(int64, optional, tag = "4")]
26989        pub first: ::core::option::Option<i64>,
26990        #[prost(int64, optional, tag = "5")]
26991        pub base: ::core::option::Option<i64>,
26992        #[prost(string, optional, tag = "6")]
26993        pub name: ::core::option::Option<::prost::alloc::string::String>,
26994        #[prost(string, optional, tag = "7")]
26995        pub base_name: ::core::option::Option<::prost::alloc::string::String>,
26996        #[prost(int32, optional, tag = "8")]
26997        pub base_detail: ::core::option::Option<i32>,
26998        #[prost(int32, optional, tag = "9")]
26999        pub base_time: ::core::option::Option<i32>,
27000        #[prost(int32, optional, tag = "10")]
27001        pub base_hash: ::core::option::Option<i32>,
27002    }
27003}
27004#[derive(serde::Serialize, serde::Deserialize)]
27005#[derive(Clone, PartialEq, ::prost::Message)]
27006pub struct CUserMessageRequestDiagnostic {
27007    #[prost(message, repeated, tag = "1")]
27008    pub diagnostics: ::prost::alloc::vec::Vec<
27009        c_user_message_request_diagnostic::Diagnostic,
27010    >,
27011}
27012/// Nested message and enum types in `CUserMessageRequestDiagnostic`.
27013pub mod c_user_message_request_diagnostic {
27014    #[derive(serde::Serialize, serde::Deserialize)]
27015    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
27016    pub struct Diagnostic {
27017        #[prost(int32, optional, tag = "1")]
27018        pub index: ::core::option::Option<i32>,
27019        #[prost(int64, optional, tag = "2")]
27020        pub offset: ::core::option::Option<i64>,
27021        #[prost(int32, optional, tag = "3")]
27022        pub param: ::core::option::Option<i32>,
27023        #[prost(int32, optional, tag = "4")]
27024        pub length: ::core::option::Option<i32>,
27025        #[prost(int32, optional, tag = "5")]
27026        pub r#type: ::core::option::Option<i32>,
27027        #[prost(int64, optional, tag = "6")]
27028        pub base: ::core::option::Option<i64>,
27029        #[prost(int64, optional, tag = "7")]
27030        pub range: ::core::option::Option<i64>,
27031        #[prost(int64, optional, tag = "8")]
27032        pub extent: ::core::option::Option<i64>,
27033        #[prost(int64, optional, tag = "9")]
27034        pub detail: ::core::option::Option<i64>,
27035        #[prost(string, optional, tag = "10")]
27036        pub name: ::core::option::Option<::prost::alloc::string::String>,
27037        #[prost(string, optional, tag = "11")]
27038        pub alias: ::core::option::Option<::prost::alloc::string::String>,
27039        #[prost(bytes = "vec", optional, tag = "12")]
27040        pub vardetail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
27041        #[prost(int32, optional, tag = "13")]
27042        pub context: ::core::option::Option<i32>,
27043    }
27044}
27045#[derive(serde::Serialize, serde::Deserialize)]
27046#[derive(Clone, PartialEq, ::prost::Message)]
27047pub struct CUserMessageDiagnosticResponse {
27048    #[prost(message, repeated, tag = "1")]
27049    pub diagnostics: ::prost::alloc::vec::Vec<
27050        c_user_message_diagnostic_response::Diagnostic,
27051    >,
27052    #[prost(int32, optional, tag = "2")]
27053    pub build_version: ::core::option::Option<i32>,
27054    #[prost(int32, optional, tag = "3")]
27055    pub instance: ::core::option::Option<i32>,
27056    #[prost(int64, optional, tag = "4")]
27057    pub start_time: ::core::option::Option<i64>,
27058    #[prost(int32, optional, tag = "5")]
27059    pub osversion: ::core::option::Option<i32>,
27060    #[prost(int32, optional, tag = "6")]
27061    pub platform: ::core::option::Option<i32>,
27062}
27063/// Nested message and enum types in `CUserMessage_Diagnostic_Response`.
27064pub mod c_user_message_diagnostic_response {
27065    #[derive(serde::Serialize, serde::Deserialize)]
27066    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
27067    pub struct Diagnostic {
27068        #[prost(int32, optional, tag = "1")]
27069        pub index: ::core::option::Option<i32>,
27070        #[prost(int64, optional, tag = "2")]
27071        pub offset: ::core::option::Option<i64>,
27072        #[prost(int32, optional, tag = "3")]
27073        pub param: ::core::option::Option<i32>,
27074        #[prost(int32, optional, tag = "4")]
27075        pub length: ::core::option::Option<i32>,
27076        #[prost(bytes = "vec", optional, tag = "5")]
27077        pub detail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
27078        #[prost(int64, optional, tag = "6")]
27079        pub base: ::core::option::Option<i64>,
27080        #[prost(int64, optional, tag = "7")]
27081        pub range: ::core::option::Option<i64>,
27082        #[prost(int32, optional, tag = "8")]
27083        pub r#type: ::core::option::Option<i32>,
27084        #[prost(string, optional, tag = "10")]
27085        pub name: ::core::option::Option<::prost::alloc::string::String>,
27086        #[prost(string, optional, tag = "11")]
27087        pub alias: ::core::option::Option<::prost::alloc::string::String>,
27088        #[prost(bytes = "vec", optional, tag = "12")]
27089        pub backup: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
27090        #[prost(int32, optional, tag = "13")]
27091        pub context: ::core::option::Option<i32>,
27092        #[prost(int64, optional, tag = "14")]
27093        pub control: ::core::option::Option<i64>,
27094        #[prost(int64, optional, tag = "15")]
27095        pub augment: ::core::option::Option<i64>,
27096        #[prost(int64, optional, tag = "16")]
27097        pub placebo: ::core::option::Option<i64>,
27098    }
27099}
27100#[derive(serde::Serialize, serde::Deserialize)]
27101#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
27102pub struct CUserMessageExtraUserData {
27103    #[prost(int32, optional, tag = "1")]
27104    pub item: ::core::option::Option<i32>,
27105    #[prost(int64, optional, tag = "2")]
27106    pub value1: ::core::option::Option<i64>,
27107    #[prost(int64, optional, tag = "3")]
27108    pub value2: ::core::option::Option<i64>,
27109    #[prost(bytes = "vec", repeated, tag = "4")]
27110    pub detail1: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
27111    #[prost(bytes = "vec", repeated, tag = "5")]
27112    pub detail2: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
27113}
27114#[derive(serde::Serialize, serde::Deserialize)]
27115#[derive(Clone, PartialEq, ::prost::Message)]
27116pub struct CUserMessageNotifyResponseFound {
27117    #[prost(int32, optional, tag = "1", default = "-1")]
27118    pub ent_index: ::core::option::Option<i32>,
27119    #[prost(string, optional, tag = "2")]
27120    pub rule_name: ::core::option::Option<::prost::alloc::string::String>,
27121    #[prost(string, optional, tag = "3")]
27122    pub response_value: ::core::option::Option<::prost::alloc::string::String>,
27123    #[prost(string, optional, tag = "4")]
27124    pub response_concept: ::core::option::Option<::prost::alloc::string::String>,
27125    #[prost(message, repeated, tag = "5")]
27126    pub criteria: ::prost::alloc::vec::Vec<
27127        c_user_message_notify_response_found::Criteria,
27128    >,
27129    #[prost(uint32, repeated, tag = "6")]
27130    pub int_criteria_names: ::prost::alloc::vec::Vec<u32>,
27131    #[prost(int32, repeated, tag = "7")]
27132    pub int_criteria_values: ::prost::alloc::vec::Vec<i32>,
27133    #[prost(uint32, repeated, tag = "8")]
27134    pub float_criteria_names: ::prost::alloc::vec::Vec<u32>,
27135    #[prost(float, repeated, packed = "false", tag = "9")]
27136    pub float_criteria_values: ::prost::alloc::vec::Vec<f32>,
27137    #[prost(uint32, repeated, tag = "10")]
27138    pub symbol_criteria_names: ::prost::alloc::vec::Vec<u32>,
27139    #[prost(uint32, repeated, tag = "11")]
27140    pub symbol_criteria_values: ::prost::alloc::vec::Vec<u32>,
27141    #[prost(int32, optional, tag = "12")]
27142    pub speak_result: ::core::option::Option<i32>,
27143}
27144/// Nested message and enum types in `CUserMessage_NotifyResponseFound`.
27145pub mod c_user_message_notify_response_found {
27146    #[derive(serde::Serialize, serde::Deserialize)]
27147    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
27148    pub struct Criteria {
27149        #[prost(uint32, optional, tag = "1")]
27150        pub name_symbol: ::core::option::Option<u32>,
27151        #[prost(string, optional, tag = "2")]
27152        pub value: ::core::option::Option<::prost::alloc::string::String>,
27153    }
27154}
27155#[derive(serde::Serialize, serde::Deserialize)]
27156#[derive(Clone, PartialEq, ::prost::Message)]
27157pub struct CUserMessagePlayResponseConditional {
27158    #[prost(int32, optional, tag = "1", default = "-1")]
27159    pub ent_index: ::core::option::Option<i32>,
27160    #[prost(int32, repeated, packed = "false", tag = "2")]
27161    pub player_slots: ::prost::alloc::vec::Vec<i32>,
27162    #[prost(string, optional, tag = "3")]
27163    pub response: ::core::option::Option<::prost::alloc::string::String>,
27164    #[prost(message, optional, tag = "4")]
27165    pub ent_origin: ::core::option::Option<CMsgVector>,
27166    #[prost(float, optional, tag = "5")]
27167    pub pre_delay: ::core::option::Option<f32>,
27168    #[prost(int32, optional, tag = "6")]
27169    pub mix_priority: ::core::option::Option<i32>,
27170}
27171#[derive(serde::Serialize, serde::Deserialize)]
27172#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
27173#[repr(i32)]
27174pub enum EBaseUserMessages {
27175    UmAchievementEvent = 101,
27176    UmCloseCaption = 102,
27177    UmCloseCaptionDirect = 103,
27178    UmCurrentTimescale = 104,
27179    UmDesiredTimescale = 105,
27180    UmFade = 106,
27181    UmGameTitle = 107,
27182    UmHudMsg = 110,
27183    UmHudText = 111,
27184    UmColoredText = 113,
27185    UmRequestState = 114,
27186    UmResetHud = 115,
27187    UmRumble = 116,
27188    UmSayText = 117,
27189    UmSayText2 = 118,
27190    UmSayTextChannel = 119,
27191    UmShake = 120,
27192    UmShakeDir = 121,
27193    UmWaterShake = 122,
27194    UmTextMsg = 124,
27195    UmScreenTilt = 125,
27196    UmVoiceMask = 128,
27197    UmSendAudio = 130,
27198    UmItemPickup = 131,
27199    UmAmmoDenied = 132,
27200    UmShowMenu = 134,
27201    UmCreditsMsg = 135,
27202    UmCloseCaptionPlaceholder = 142,
27203    UmCameraTransition = 143,
27204    UmAudioParameter = 144,
27205    UmParticleManager = 145,
27206    UmHudError = 146,
27207    UmCustomGameEvent = 148,
27208    UmAnimGraphUpdate = 149,
27209    UmHapticsManagerPulse = 150,
27210    UmHapticsManagerEffect = 151,
27211    UmUpdateCssClasses = 153,
27212    UmServerFrameTime = 154,
27213    UmLagCompensationError = 155,
27214    UmRequestDllStatus = 156,
27215    UmRequestUtilAction = 157,
27216    UmUtilActionResponse = 158,
27217    UmDllStatusResponse = 159,
27218    UmRequestInventory = 160,
27219    UmInventoryResponse = 161,
27220    UmRequestDiagnostic = 162,
27221    UmDiagnosticResponse = 163,
27222    UmExtraUserData = 164,
27223    UmNotifyResponseFound = 165,
27224    UmPlayResponseConditional = 166,
27225    UmMaxBase = 200,
27226}
27227impl EBaseUserMessages {
27228    /// String value of the enum field names used in the ProtoBuf definition.
27229    ///
27230    /// The values are not transformed in any way and thus are considered stable
27231    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
27232    pub fn as_str_name(&self) -> &'static str {
27233        match self {
27234            Self::UmAchievementEvent => "UM_AchievementEvent",
27235            Self::UmCloseCaption => "UM_CloseCaption",
27236            Self::UmCloseCaptionDirect => "UM_CloseCaptionDirect",
27237            Self::UmCurrentTimescale => "UM_CurrentTimescale",
27238            Self::UmDesiredTimescale => "UM_DesiredTimescale",
27239            Self::UmFade => "UM_Fade",
27240            Self::UmGameTitle => "UM_GameTitle",
27241            Self::UmHudMsg => "UM_HudMsg",
27242            Self::UmHudText => "UM_HudText",
27243            Self::UmColoredText => "UM_ColoredText",
27244            Self::UmRequestState => "UM_RequestState",
27245            Self::UmResetHud => "UM_ResetHUD",
27246            Self::UmRumble => "UM_Rumble",
27247            Self::UmSayText => "UM_SayText",
27248            Self::UmSayText2 => "UM_SayText2",
27249            Self::UmSayTextChannel => "UM_SayTextChannel",
27250            Self::UmShake => "UM_Shake",
27251            Self::UmShakeDir => "UM_ShakeDir",
27252            Self::UmWaterShake => "UM_WaterShake",
27253            Self::UmTextMsg => "UM_TextMsg",
27254            Self::UmScreenTilt => "UM_ScreenTilt",
27255            Self::UmVoiceMask => "UM_VoiceMask",
27256            Self::UmSendAudio => "UM_SendAudio",
27257            Self::UmItemPickup => "UM_ItemPickup",
27258            Self::UmAmmoDenied => "UM_AmmoDenied",
27259            Self::UmShowMenu => "UM_ShowMenu",
27260            Self::UmCreditsMsg => "UM_CreditsMsg",
27261            Self::UmCloseCaptionPlaceholder => "UM_CloseCaptionPlaceholder",
27262            Self::UmCameraTransition => "UM_CameraTransition",
27263            Self::UmAudioParameter => "UM_AudioParameter",
27264            Self::UmParticleManager => "UM_ParticleManager",
27265            Self::UmHudError => "UM_HudError",
27266            Self::UmCustomGameEvent => "UM_CustomGameEvent",
27267            Self::UmAnimGraphUpdate => "UM_AnimGraphUpdate",
27268            Self::UmHapticsManagerPulse => "UM_HapticsManagerPulse",
27269            Self::UmHapticsManagerEffect => "UM_HapticsManagerEffect",
27270            Self::UmUpdateCssClasses => "UM_UpdateCssClasses",
27271            Self::UmServerFrameTime => "UM_ServerFrameTime",
27272            Self::UmLagCompensationError => "UM_LagCompensationError",
27273            Self::UmRequestDllStatus => "UM_RequestDllStatus",
27274            Self::UmRequestUtilAction => "UM_RequestUtilAction",
27275            Self::UmUtilActionResponse => "UM_UtilActionResponse",
27276            Self::UmDllStatusResponse => "UM_DllStatusResponse",
27277            Self::UmRequestInventory => "UM_RequestInventory",
27278            Self::UmInventoryResponse => "UM_InventoryResponse",
27279            Self::UmRequestDiagnostic => "UM_RequestDiagnostic",
27280            Self::UmDiagnosticResponse => "UM_DiagnosticResponse",
27281            Self::UmExtraUserData => "UM_ExtraUserData",
27282            Self::UmNotifyResponseFound => "UM_NotifyResponseFound",
27283            Self::UmPlayResponseConditional => "UM_PlayResponseConditional",
27284            Self::UmMaxBase => "UM_MAX_BASE",
27285        }
27286    }
27287    /// Creates an enum from field names used in the ProtoBuf definition.
27288    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
27289        match value {
27290            "UM_AchievementEvent" => Some(Self::UmAchievementEvent),
27291            "UM_CloseCaption" => Some(Self::UmCloseCaption),
27292            "UM_CloseCaptionDirect" => Some(Self::UmCloseCaptionDirect),
27293            "UM_CurrentTimescale" => Some(Self::UmCurrentTimescale),
27294            "UM_DesiredTimescale" => Some(Self::UmDesiredTimescale),
27295            "UM_Fade" => Some(Self::UmFade),
27296            "UM_GameTitle" => Some(Self::UmGameTitle),
27297            "UM_HudMsg" => Some(Self::UmHudMsg),
27298            "UM_HudText" => Some(Self::UmHudText),
27299            "UM_ColoredText" => Some(Self::UmColoredText),
27300            "UM_RequestState" => Some(Self::UmRequestState),
27301            "UM_ResetHUD" => Some(Self::UmResetHud),
27302            "UM_Rumble" => Some(Self::UmRumble),
27303            "UM_SayText" => Some(Self::UmSayText),
27304            "UM_SayText2" => Some(Self::UmSayText2),
27305            "UM_SayTextChannel" => Some(Self::UmSayTextChannel),
27306            "UM_Shake" => Some(Self::UmShake),
27307            "UM_ShakeDir" => Some(Self::UmShakeDir),
27308            "UM_WaterShake" => Some(Self::UmWaterShake),
27309            "UM_TextMsg" => Some(Self::UmTextMsg),
27310            "UM_ScreenTilt" => Some(Self::UmScreenTilt),
27311            "UM_VoiceMask" => Some(Self::UmVoiceMask),
27312            "UM_SendAudio" => Some(Self::UmSendAudio),
27313            "UM_ItemPickup" => Some(Self::UmItemPickup),
27314            "UM_AmmoDenied" => Some(Self::UmAmmoDenied),
27315            "UM_ShowMenu" => Some(Self::UmShowMenu),
27316            "UM_CreditsMsg" => Some(Self::UmCreditsMsg),
27317            "UM_CloseCaptionPlaceholder" => Some(Self::UmCloseCaptionPlaceholder),
27318            "UM_CameraTransition" => Some(Self::UmCameraTransition),
27319            "UM_AudioParameter" => Some(Self::UmAudioParameter),
27320            "UM_ParticleManager" => Some(Self::UmParticleManager),
27321            "UM_HudError" => Some(Self::UmHudError),
27322            "UM_CustomGameEvent" => Some(Self::UmCustomGameEvent),
27323            "UM_AnimGraphUpdate" => Some(Self::UmAnimGraphUpdate),
27324            "UM_HapticsManagerPulse" => Some(Self::UmHapticsManagerPulse),
27325            "UM_HapticsManagerEffect" => Some(Self::UmHapticsManagerEffect),
27326            "UM_UpdateCssClasses" => Some(Self::UmUpdateCssClasses),
27327            "UM_ServerFrameTime" => Some(Self::UmServerFrameTime),
27328            "UM_LagCompensationError" => Some(Self::UmLagCompensationError),
27329            "UM_RequestDllStatus" => Some(Self::UmRequestDllStatus),
27330            "UM_RequestUtilAction" => Some(Self::UmRequestUtilAction),
27331            "UM_UtilActionResponse" => Some(Self::UmUtilActionResponse),
27332            "UM_DllStatusResponse" => Some(Self::UmDllStatusResponse),
27333            "UM_RequestInventory" => Some(Self::UmRequestInventory),
27334            "UM_InventoryResponse" => Some(Self::UmInventoryResponse),
27335            "UM_RequestDiagnostic" => Some(Self::UmRequestDiagnostic),
27336            "UM_DiagnosticResponse" => Some(Self::UmDiagnosticResponse),
27337            "UM_ExtraUserData" => Some(Self::UmExtraUserData),
27338            "UM_NotifyResponseFound" => Some(Self::UmNotifyResponseFound),
27339            "UM_PlayResponseConditional" => Some(Self::UmPlayResponseConditional),
27340            "UM_MAX_BASE" => Some(Self::UmMaxBase),
27341            _ => None,
27342        }
27343    }
27344}
27345#[derive(serde::Serialize, serde::Deserialize)]
27346#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
27347#[repr(i32)]
27348pub enum EBaseEntityMessages {
27349    EmPlayJingle = 136,
27350    EmScreenOverlay = 137,
27351    EmRemoveAllDecals = 138,
27352    EmPropagateForce = 139,
27353    EmDoSpark = 140,
27354    EmFixAngle = 141,
27355}
27356impl EBaseEntityMessages {
27357    /// String value of the enum field names used in the ProtoBuf definition.
27358    ///
27359    /// The values are not transformed in any way and thus are considered stable
27360    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
27361    pub fn as_str_name(&self) -> &'static str {
27362        match self {
27363            Self::EmPlayJingle => "EM_PlayJingle",
27364            Self::EmScreenOverlay => "EM_ScreenOverlay",
27365            Self::EmRemoveAllDecals => "EM_RemoveAllDecals",
27366            Self::EmPropagateForce => "EM_PropagateForce",
27367            Self::EmDoSpark => "EM_DoSpark",
27368            Self::EmFixAngle => "EM_FixAngle",
27369        }
27370    }
27371    /// Creates an enum from field names used in the ProtoBuf definition.
27372    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
27373        match value {
27374            "EM_PlayJingle" => Some(Self::EmPlayJingle),
27375            "EM_ScreenOverlay" => Some(Self::EmScreenOverlay),
27376            "EM_RemoveAllDecals" => Some(Self::EmRemoveAllDecals),
27377            "EM_PropagateForce" => Some(Self::EmPropagateForce),
27378            "EM_DoSpark" => Some(Self::EmDoSpark),
27379            "EM_FixAngle" => Some(Self::EmFixAngle),
27380            _ => None,
27381        }
27382    }
27383}
27384#[derive(serde::Serialize, serde::Deserialize)]
27385#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
27386#[repr(i32)]
27387pub enum ERollType {
27388    RollNone = -1,
27389    RollStats = 0,
27390    RollCredits = 1,
27391    RollLateJoinLogo = 2,
27392    RollOuttro = 3,
27393}
27394impl ERollType {
27395    /// String value of the enum field names used in the ProtoBuf definition.
27396    ///
27397    /// The values are not transformed in any way and thus are considered stable
27398    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
27399    pub fn as_str_name(&self) -> &'static str {
27400        match self {
27401            Self::RollNone => "ROLL_NONE",
27402            Self::RollStats => "ROLL_STATS",
27403            Self::RollCredits => "ROLL_CREDITS",
27404            Self::RollLateJoinLogo => "ROLL_LATE_JOIN_LOGO",
27405            Self::RollOuttro => "ROLL_OUTTRO",
27406        }
27407    }
27408    /// Creates an enum from field names used in the ProtoBuf definition.
27409    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
27410        match value {
27411            "ROLL_NONE" => Some(Self::RollNone),
27412            "ROLL_STATS" => Some(Self::RollStats),
27413            "ROLL_CREDITS" => Some(Self::RollCredits),
27414            "ROLL_LATE_JOIN_LOGO" => Some(Self::RollLateJoinLogo),
27415            "ROLL_OUTTRO" => Some(Self::RollOuttro),
27416            _ => None,
27417        }
27418    }
27419}
27420#[derive(serde::Serialize, serde::Deserialize)]
27421#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
27422#[repr(i32)]
27423pub enum ParticleMessage {
27424    GameParticleManagerEventCreate = 0,
27425    GameParticleManagerEventUpdate = 1,
27426    GameParticleManagerEventUpdateForward = 2,
27427    GameParticleManagerEventUpdateOrientation = 3,
27428    GameParticleManagerEventUpdateFallback = 4,
27429    GameParticleManagerEventUpdateEnt = 5,
27430    GameParticleManagerEventUpdateOffset = 6,
27431    GameParticleManagerEventDestroy = 7,
27432    GameParticleManagerEventDestroyInvolving = 8,
27433    GameParticleManagerEventRelease = 9,
27434    GameParticleManagerEventLatency = 10,
27435    GameParticleManagerEventShouldDraw = 11,
27436    GameParticleManagerEventFrozen = 12,
27437    GameParticleManagerEventChangeControlPointAttachment = 13,
27438    GameParticleManagerEventUpdateEntityPosition = 14,
27439    GameParticleManagerEventSetFowProperties = 15,
27440    GameParticleManagerEventSetText = 16,
27441    GameParticleManagerEventSetShouldCheckFow = 17,
27442    GameParticleManagerEventSetControlPointModel = 18,
27443    GameParticleManagerEventSetControlPointSnapshot = 19,
27444    GameParticleManagerEventSetTextureAttribute = 20,
27445    GameParticleManagerEventSetSceneObjectGenericFlag = 21,
27446    GameParticleManagerEventSetSceneObjectTintAndDesat = 22,
27447    GameParticleManagerEventDestroyNamed = 23,
27448    GameParticleManagerEventSkipToTime = 24,
27449    GameParticleManagerEventCanFreeze = 25,
27450    GameParticleManagerEventSetNamedValueContext = 26,
27451    GameParticleManagerEventUpdateTransform = 27,
27452    GameParticleManagerEventFreezeTransitionOverride = 28,
27453    GameParticleManagerEventFreezeInvolving = 29,
27454    GameParticleManagerEventAddModellistOverrideElement = 30,
27455    GameParticleManagerEventClearModellistOverride = 31,
27456    GameParticleManagerEventCreatePhysicsSim = 32,
27457    GameParticleManagerEventDestroyPhysicsSim = 33,
27458    GameParticleManagerEventSetVdata = 34,
27459    GameParticleManagerEventSetMaterialOverride = 35,
27460    GameParticleManagerEventAddFan = 36,
27461    GameParticleManagerEventUpdateFan = 37,
27462    GameParticleManagerEventSetClusterGrowth = 38,
27463    GameParticleManagerEventRemoveFan = 39,
27464    GameParticleManagerEventCreateSmokeGrid = 40,
27465}
27466impl ParticleMessage {
27467    /// String value of the enum field names used in the ProtoBuf definition.
27468    ///
27469    /// The values are not transformed in any way and thus are considered stable
27470    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
27471    pub fn as_str_name(&self) -> &'static str {
27472        match self {
27473            Self::GameParticleManagerEventCreate => "GAME_PARTICLE_MANAGER_EVENT_CREATE",
27474            Self::GameParticleManagerEventUpdate => "GAME_PARTICLE_MANAGER_EVENT_UPDATE",
27475            Self::GameParticleManagerEventUpdateForward => {
27476                "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD"
27477            }
27478            Self::GameParticleManagerEventUpdateOrientation => {
27479                "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION"
27480            }
27481            Self::GameParticleManagerEventUpdateFallback => {
27482                "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK"
27483            }
27484            Self::GameParticleManagerEventUpdateEnt => {
27485                "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT"
27486            }
27487            Self::GameParticleManagerEventUpdateOffset => {
27488                "GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET"
27489            }
27490            Self::GameParticleManagerEventDestroy => {
27491                "GAME_PARTICLE_MANAGER_EVENT_DESTROY"
27492            }
27493            Self::GameParticleManagerEventDestroyInvolving => {
27494                "GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING"
27495            }
27496            Self::GameParticleManagerEventRelease => {
27497                "GAME_PARTICLE_MANAGER_EVENT_RELEASE"
27498            }
27499            Self::GameParticleManagerEventLatency => {
27500                "GAME_PARTICLE_MANAGER_EVENT_LATENCY"
27501            }
27502            Self::GameParticleManagerEventShouldDraw => {
27503                "GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW"
27504            }
27505            Self::GameParticleManagerEventFrozen => "GAME_PARTICLE_MANAGER_EVENT_FROZEN",
27506            Self::GameParticleManagerEventChangeControlPointAttachment => {
27507                "GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT"
27508            }
27509            Self::GameParticleManagerEventUpdateEntityPosition => {
27510                "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION"
27511            }
27512            Self::GameParticleManagerEventSetFowProperties => {
27513                "GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES"
27514            }
27515            Self::GameParticleManagerEventSetText => {
27516                "GAME_PARTICLE_MANAGER_EVENT_SET_TEXT"
27517            }
27518            Self::GameParticleManagerEventSetShouldCheckFow => {
27519                "GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW"
27520            }
27521            Self::GameParticleManagerEventSetControlPointModel => {
27522                "GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL"
27523            }
27524            Self::GameParticleManagerEventSetControlPointSnapshot => {
27525                "GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT"
27526            }
27527            Self::GameParticleManagerEventSetTextureAttribute => {
27528                "GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE"
27529            }
27530            Self::GameParticleManagerEventSetSceneObjectGenericFlag => {
27531                "GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG"
27532            }
27533            Self::GameParticleManagerEventSetSceneObjectTintAndDesat => {
27534                "GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT"
27535            }
27536            Self::GameParticleManagerEventDestroyNamed => {
27537                "GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED"
27538            }
27539            Self::GameParticleManagerEventSkipToTime => {
27540                "GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME"
27541            }
27542            Self::GameParticleManagerEventCanFreeze => {
27543                "GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE"
27544            }
27545            Self::GameParticleManagerEventSetNamedValueContext => {
27546                "GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT"
27547            }
27548            Self::GameParticleManagerEventUpdateTransform => {
27549                "GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM"
27550            }
27551            Self::GameParticleManagerEventFreezeTransitionOverride => {
27552                "GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE"
27553            }
27554            Self::GameParticleManagerEventFreezeInvolving => {
27555                "GAME_PARTICLE_MANAGER_EVENT_FREEZE_INVOLVING"
27556            }
27557            Self::GameParticleManagerEventAddModellistOverrideElement => {
27558                "GAME_PARTICLE_MANAGER_EVENT_ADD_MODELLIST_OVERRIDE_ELEMENT"
27559            }
27560            Self::GameParticleManagerEventClearModellistOverride => {
27561                "GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE"
27562            }
27563            Self::GameParticleManagerEventCreatePhysicsSim => {
27564                "GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM"
27565            }
27566            Self::GameParticleManagerEventDestroyPhysicsSim => {
27567                "GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM"
27568            }
27569            Self::GameParticleManagerEventSetVdata => {
27570                "GAME_PARTICLE_MANAGER_EVENT_SET_VDATA"
27571            }
27572            Self::GameParticleManagerEventSetMaterialOverride => {
27573                "GAME_PARTICLE_MANAGER_EVENT_SET_MATERIAL_OVERRIDE"
27574            }
27575            Self::GameParticleManagerEventAddFan => "GAME_PARTICLE_MANAGER_EVENT_ADD_FAN",
27576            Self::GameParticleManagerEventUpdateFan => {
27577                "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FAN"
27578            }
27579            Self::GameParticleManagerEventSetClusterGrowth => {
27580                "GAME_PARTICLE_MANAGER_EVENT_SET_CLUSTER_GROWTH"
27581            }
27582            Self::GameParticleManagerEventRemoveFan => {
27583                "GAME_PARTICLE_MANAGER_EVENT_REMOVE_FAN"
27584            }
27585            Self::GameParticleManagerEventCreateSmokeGrid => {
27586                "GAME_PARTICLE_MANAGER_EVENT_CREATE_SMOKE_GRID"
27587            }
27588        }
27589    }
27590    /// Creates an enum from field names used in the ProtoBuf definition.
27591    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
27592        match value {
27593            "GAME_PARTICLE_MANAGER_EVENT_CREATE" => {
27594                Some(Self::GameParticleManagerEventCreate)
27595            }
27596            "GAME_PARTICLE_MANAGER_EVENT_UPDATE" => {
27597                Some(Self::GameParticleManagerEventUpdate)
27598            }
27599            "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD" => {
27600                Some(Self::GameParticleManagerEventUpdateForward)
27601            }
27602            "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION" => {
27603                Some(Self::GameParticleManagerEventUpdateOrientation)
27604            }
27605            "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK" => {
27606                Some(Self::GameParticleManagerEventUpdateFallback)
27607            }
27608            "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT" => {
27609                Some(Self::GameParticleManagerEventUpdateEnt)
27610            }
27611            "GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET" => {
27612                Some(Self::GameParticleManagerEventUpdateOffset)
27613            }
27614            "GAME_PARTICLE_MANAGER_EVENT_DESTROY" => {
27615                Some(Self::GameParticleManagerEventDestroy)
27616            }
27617            "GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING" => {
27618                Some(Self::GameParticleManagerEventDestroyInvolving)
27619            }
27620            "GAME_PARTICLE_MANAGER_EVENT_RELEASE" => {
27621                Some(Self::GameParticleManagerEventRelease)
27622            }
27623            "GAME_PARTICLE_MANAGER_EVENT_LATENCY" => {
27624                Some(Self::GameParticleManagerEventLatency)
27625            }
27626            "GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW" => {
27627                Some(Self::GameParticleManagerEventShouldDraw)
27628            }
27629            "GAME_PARTICLE_MANAGER_EVENT_FROZEN" => {
27630                Some(Self::GameParticleManagerEventFrozen)
27631            }
27632            "GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT" => {
27633                Some(Self::GameParticleManagerEventChangeControlPointAttachment)
27634            }
27635            "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION" => {
27636                Some(Self::GameParticleManagerEventUpdateEntityPosition)
27637            }
27638            "GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES" => {
27639                Some(Self::GameParticleManagerEventSetFowProperties)
27640            }
27641            "GAME_PARTICLE_MANAGER_EVENT_SET_TEXT" => {
27642                Some(Self::GameParticleManagerEventSetText)
27643            }
27644            "GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW" => {
27645                Some(Self::GameParticleManagerEventSetShouldCheckFow)
27646            }
27647            "GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL" => {
27648                Some(Self::GameParticleManagerEventSetControlPointModel)
27649            }
27650            "GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT" => {
27651                Some(Self::GameParticleManagerEventSetControlPointSnapshot)
27652            }
27653            "GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE" => {
27654                Some(Self::GameParticleManagerEventSetTextureAttribute)
27655            }
27656            "GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG" => {
27657                Some(Self::GameParticleManagerEventSetSceneObjectGenericFlag)
27658            }
27659            "GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT" => {
27660                Some(Self::GameParticleManagerEventSetSceneObjectTintAndDesat)
27661            }
27662            "GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED" => {
27663                Some(Self::GameParticleManagerEventDestroyNamed)
27664            }
27665            "GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME" => {
27666                Some(Self::GameParticleManagerEventSkipToTime)
27667            }
27668            "GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE" => {
27669                Some(Self::GameParticleManagerEventCanFreeze)
27670            }
27671            "GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT" => {
27672                Some(Self::GameParticleManagerEventSetNamedValueContext)
27673            }
27674            "GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM" => {
27675                Some(Self::GameParticleManagerEventUpdateTransform)
27676            }
27677            "GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE" => {
27678                Some(Self::GameParticleManagerEventFreezeTransitionOverride)
27679            }
27680            "GAME_PARTICLE_MANAGER_EVENT_FREEZE_INVOLVING" => {
27681                Some(Self::GameParticleManagerEventFreezeInvolving)
27682            }
27683            "GAME_PARTICLE_MANAGER_EVENT_ADD_MODELLIST_OVERRIDE_ELEMENT" => {
27684                Some(Self::GameParticleManagerEventAddModellistOverrideElement)
27685            }
27686            "GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE" => {
27687                Some(Self::GameParticleManagerEventClearModellistOverride)
27688            }
27689            "GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM" => {
27690                Some(Self::GameParticleManagerEventCreatePhysicsSim)
27691            }
27692            "GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM" => {
27693                Some(Self::GameParticleManagerEventDestroyPhysicsSim)
27694            }
27695            "GAME_PARTICLE_MANAGER_EVENT_SET_VDATA" => {
27696                Some(Self::GameParticleManagerEventSetVdata)
27697            }
27698            "GAME_PARTICLE_MANAGER_EVENT_SET_MATERIAL_OVERRIDE" => {
27699                Some(Self::GameParticleManagerEventSetMaterialOverride)
27700            }
27701            "GAME_PARTICLE_MANAGER_EVENT_ADD_FAN" => {
27702                Some(Self::GameParticleManagerEventAddFan)
27703            }
27704            "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FAN" => {
27705                Some(Self::GameParticleManagerEventUpdateFan)
27706            }
27707            "GAME_PARTICLE_MANAGER_EVENT_SET_CLUSTER_GROWTH" => {
27708                Some(Self::GameParticleManagerEventSetClusterGrowth)
27709            }
27710            "GAME_PARTICLE_MANAGER_EVENT_REMOVE_FAN" => {
27711                Some(Self::GameParticleManagerEventRemoveFan)
27712            }
27713            "GAME_PARTICLE_MANAGER_EVENT_CREATE_SMOKE_GRID" => {
27714                Some(Self::GameParticleManagerEventCreateSmokeGrid)
27715            }
27716            _ => None,
27717        }
27718    }
27719}
27720#[derive(serde::Serialize, serde::Deserialize)]
27721#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
27722#[repr(i32)]
27723pub enum EHapticPulseType {
27724    VrHandHapticPulseLight = 0,
27725    VrHandHapticPulseMedium = 1,
27726    VrHandHapticPulseStrong = 2,
27727}
27728impl EHapticPulseType {
27729    /// String value of the enum field names used in the ProtoBuf definition.
27730    ///
27731    /// The values are not transformed in any way and thus are considered stable
27732    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
27733    pub fn as_str_name(&self) -> &'static str {
27734        match self {
27735            Self::VrHandHapticPulseLight => "VR_HAND_HAPTIC_PULSE_LIGHT",
27736            Self::VrHandHapticPulseMedium => "VR_HAND_HAPTIC_PULSE_MEDIUM",
27737            Self::VrHandHapticPulseStrong => "VR_HAND_HAPTIC_PULSE_STRONG",
27738        }
27739    }
27740    /// Creates an enum from field names used in the ProtoBuf definition.
27741    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
27742        match value {
27743            "VR_HAND_HAPTIC_PULSE_LIGHT" => Some(Self::VrHandHapticPulseLight),
27744            "VR_HAND_HAPTIC_PULSE_MEDIUM" => Some(Self::VrHandHapticPulseMedium),
27745            "VR_HAND_HAPTIC_PULSE_STRONG" => Some(Self::VrHandHapticPulseStrong),
27746            _ => None,
27747        }
27748    }
27749}