Skip to main content

source2_demo_protobufs/
common.rs

1#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2pub struct CMsgProtoBufHeader {
3    #[prost(fixed64, optional, tag = "1")]
4    pub client_steam_id: ::core::option::Option<u64>,
5    #[prost(int32, optional, tag = "2")]
6    pub client_session_id: ::core::option::Option<i32>,
7    #[prost(uint32, optional, tag = "3")]
8    pub source_app_id: ::core::option::Option<u32>,
9    #[prost(fixed64, optional, tag = "10", default = "18446744073709551615")]
10    pub job_id_source: ::core::option::Option<u64>,
11    #[prost(fixed64, optional, tag = "11", default = "18446744073709551615")]
12    pub job_id_target: ::core::option::Option<u64>,
13    #[prost(string, optional, tag = "12")]
14    pub target_job_name: ::core::option::Option<::prost::alloc::string::String>,
15    #[prost(int32, optional, tag = "13", default = "2")]
16    pub eresult: ::core::option::Option<i32>,
17    #[prost(string, optional, tag = "14")]
18    pub error_message: ::core::option::Option<::prost::alloc::string::String>,
19    #[prost(enumeration = "GcProtoBufMsgSrc", optional, tag = "200", default = "Unspecified")]
20    pub gc_msg_src: ::core::option::Option<i32>,
21    #[prost(int32, optional, tag = "201", default = "-1")]
22    pub gc_dir_index_source: ::core::option::Option<i32>,
23}
24#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25pub struct CGcSystemMsgGetAccountDetails {
26    #[prost(fixed64, optional, tag = "1")]
27    pub steamid: ::core::option::Option<u64>,
28    #[prost(uint32, optional, tag = "2")]
29    pub appid: ::core::option::Option<u32>,
30}
31#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
32pub struct CGcSystemMsgGetAccountDetailsResponse {
33    #[prost(uint32, optional, tag = "1", default = "2")]
34    pub eresult_deprecated: ::core::option::Option<u32>,
35    #[prost(string, optional, tag = "2")]
36    pub account_name: ::core::option::Option<::prost::alloc::string::String>,
37    #[prost(string, optional, tag = "3")]
38    pub persona_name: ::core::option::Option<::prost::alloc::string::String>,
39    #[prost(bool, optional, tag = "26")]
40    pub is_profile_created: ::core::option::Option<bool>,
41    #[prost(bool, optional, tag = "4")]
42    pub is_profile_public: ::core::option::Option<bool>,
43    #[prost(bool, optional, tag = "5")]
44    pub is_inventory_public: ::core::option::Option<bool>,
45    #[prost(bool, optional, tag = "7")]
46    pub is_vac_banned: ::core::option::Option<bool>,
47    #[prost(bool, optional, tag = "8")]
48    pub is_cyber_cafe: ::core::option::Option<bool>,
49    #[prost(bool, optional, tag = "9")]
50    pub is_school_account: ::core::option::Option<bool>,
51    #[prost(bool, optional, tag = "10")]
52    pub is_limited: ::core::option::Option<bool>,
53    #[prost(bool, optional, tag = "11")]
54    pub is_subscribed: ::core::option::Option<bool>,
55    #[prost(uint32, optional, tag = "12")]
56    pub package: ::core::option::Option<u32>,
57    #[prost(bool, optional, tag = "13")]
58    pub is_free_trial_account: ::core::option::Option<bool>,
59    #[prost(uint32, optional, tag = "14")]
60    pub free_trial_expiration: ::core::option::Option<u32>,
61    #[prost(bool, optional, tag = "15")]
62    pub is_low_violence: ::core::option::Option<bool>,
63    #[prost(bool, optional, tag = "16")]
64    pub is_account_locked_down: ::core::option::Option<bool>,
65    #[prost(bool, optional, tag = "17")]
66    pub is_community_banned: ::core::option::Option<bool>,
67    #[prost(bool, optional, tag = "18")]
68    pub is_trade_banned: ::core::option::Option<bool>,
69    #[prost(uint32, optional, tag = "19")]
70    pub trade_ban_expiration: ::core::option::Option<u32>,
71    #[prost(uint32, optional, tag = "20")]
72    pub accountid: ::core::option::Option<u32>,
73    #[prost(uint32, optional, tag = "21")]
74    pub suspension_end_time: ::core::option::Option<u32>,
75    #[prost(string, optional, tag = "22")]
76    pub currency: ::core::option::Option<::prost::alloc::string::String>,
77    #[prost(uint32, optional, tag = "23")]
78    pub steam_level: ::core::option::Option<u32>,
79    #[prost(uint32, optional, tag = "24")]
80    pub friend_count: ::core::option::Option<u32>,
81    #[prost(uint32, optional, tag = "25")]
82    pub account_creation_time: ::core::option::Option<u32>,
83    #[prost(bool, optional, tag = "27")]
84    pub is_steamguard_enabled: ::core::option::Option<bool>,
85    #[prost(bool, optional, tag = "28")]
86    pub is_phone_verified: ::core::option::Option<bool>,
87    #[prost(bool, optional, tag = "29")]
88    pub is_two_factor_auth_enabled: ::core::option::Option<bool>,
89    #[prost(uint32, optional, tag = "30")]
90    pub two_factor_enabled_time: ::core::option::Option<u32>,
91    #[prost(uint32, optional, tag = "31")]
92    pub phone_verification_time: ::core::option::Option<u32>,
93    #[prost(uint64, optional, tag = "33")]
94    pub phone_id: ::core::option::Option<u64>,
95    #[prost(bool, optional, tag = "34")]
96    pub is_phone_identifying: ::core::option::Option<bool>,
97    #[prost(uint32, optional, tag = "35")]
98    pub rt_identity_linked: ::core::option::Option<u32>,
99    #[prost(uint32, optional, tag = "36")]
100    pub rt_birth_date: ::core::option::Option<u32>,
101    #[prost(string, optional, tag = "37")]
102    pub txn_country_code: ::core::option::Option<::prost::alloc::string::String>,
103    #[prost(bool, optional, tag = "38")]
104    pub has_accepted_china_ssa: ::core::option::Option<bool>,
105    #[prost(bool, optional, tag = "39")]
106    pub is_banned_steam_china: ::core::option::Option<bool>,
107}
108#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
109pub struct CIpLocationInfo {
110    #[prost(uint32, optional, tag = "1")]
111    pub ip: ::core::option::Option<u32>,
112    #[prost(float, optional, tag = "2")]
113    pub latitude: ::core::option::Option<f32>,
114    #[prost(float, optional, tag = "3")]
115    pub longitude: ::core::option::Option<f32>,
116    #[prost(string, optional, tag = "4")]
117    pub country: ::core::option::Option<::prost::alloc::string::String>,
118    #[prost(string, optional, tag = "5")]
119    pub state: ::core::option::Option<::prost::alloc::string::String>,
120    #[prost(string, optional, tag = "6")]
121    pub city: ::core::option::Option<::prost::alloc::string::String>,
122}
123#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
124pub struct CGcMsgGetIpLocationResponse {
125    #[prost(message, repeated, tag = "1")]
126    pub infos: ::prost::alloc::vec::Vec<CIpLocationInfo>,
127}
128#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
129#[repr(i32)]
130pub enum EgcPlatform {
131    KEGcPlatformNone = 0,
132    KEGcPlatformPc = 1,
133    KEGcPlatformMac = 2,
134    KEGcPlatformLinux = 3,
135    KEGcPlatformAndroid = 4,
136    KEGcPlatformIOs = 5,
137}
138#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
139#[repr(i32)]
140pub enum GcProtoBufMsgSrc {
141    Unspecified = 0,
142    FromSystem = 1,
143    FromSteamId = 2,
144    FromGc = 3,
145    ReplySystem = 4,
146    SpoofedSteamId = 5,
147}
148#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
149#[repr(i32)]
150pub enum EProtoDebugVisiblity {
151    KEProtoDebugVisibilityAlways = 0,
152    KEProtoDebugVisibilityServer = 70,
153    KEProtoDebugVisibilityValveServer = 80,
154    KEProtoDebugVisibilityGc = 90,
155    KEProtoDebugVisibilityNever = 100,
156}
157#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
158#[repr(i32)]
159pub enum EProtoExecutionSite {
160    KEProtoExecutionSiteUnknown = 0,
161    KEProtoExecutionSiteSteamClient = 3,
162}
163#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
164pub struct CMsgSteamLearnDataSourceDescObject {
165    #[prost(message, repeated, tag = "1")]
166    pub elements: ::prost::alloc::vec::Vec<CMsgSteamLearnDataSourceDescElement>,
167}
168#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
169pub struct CMsgSteamLearnDataSourceDescElement {
170    #[prost(string, optional, tag = "1")]
171    pub name: ::core::option::Option<::prost::alloc::string::String>,
172    #[prost(enumeration = "ESteamLearnDataType", optional, tag = "2", default = "SteamlearnDatatypeInvalid")]
173    pub data_type: ::core::option::Option<i32>,
174    #[prost(message, optional, tag = "3")]
175    pub object: ::core::option::Option<CMsgSteamLearnDataSourceDescObject>,
176    #[prost(uint32, optional, tag = "4")]
177    pub count: ::core::option::Option<u32>,
178}
179#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
180pub struct CMsgSteamLearnDataSource {
181    #[prost(uint32, optional, tag = "1")]
182    pub id: ::core::option::Option<u32>,
183    #[prost(string, optional, tag = "2")]
184    pub name: ::core::option::Option<::prost::alloc::string::String>,
185    #[prost(uint32, optional, tag = "3")]
186    pub version: ::core::option::Option<u32>,
187    #[prost(string, optional, tag = "4")]
188    pub source_description: ::core::option::Option<::prost::alloc::string::String>,
189    #[prost(message, optional, tag = "5")]
190    pub structure: ::core::option::Option<CMsgSteamLearnDataSourceDescObject>,
191    #[prost(uint32, optional, tag = "6")]
192    pub structure_crc: ::core::option::Option<u32>,
193    #[prost(uint32, optional, tag = "7")]
194    pub cache_duration_seconds: ::core::option::Option<u32>,
195}
196#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
197pub struct CMsgSteamLearnDataObject {
198    #[prost(message, repeated, tag = "1")]
199    pub elements: ::prost::alloc::vec::Vec<CMsgSteamLearnDataElement>,
200}
201#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
202pub struct CMsgSteamLearnDataElement {
203    #[prost(string, optional, tag = "1")]
204    pub name: ::core::option::Option<::prost::alloc::string::String>,
205    #[prost(int32, repeated, packed = "false", tag = "20")]
206    pub data_int32s: ::prost::alloc::vec::Vec<i32>,
207    #[prost(float, repeated, packed = "false", tag = "21")]
208    pub data_floats: ::prost::alloc::vec::Vec<f32>,
209    #[prost(bool, repeated, packed = "false", tag = "22")]
210    pub data_bools: ::prost::alloc::vec::Vec<bool>,
211    #[prost(string, repeated, tag = "23")]
212    pub data_strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
213    #[prost(message, repeated, tag = "24")]
214    pub data_objects: ::prost::alloc::vec::Vec<CMsgSteamLearnDataObject>,
215}
216#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
217pub struct CMsgSteamLearnData {
218    #[prost(uint32, optional, tag = "1")]
219    pub data_source_id: ::core::option::Option<u32>,
220    #[prost(uint64, repeated, packed = "false", tag = "2")]
221    pub keys: ::prost::alloc::vec::Vec<u64>,
222    #[prost(message, optional, tag = "3")]
223    pub data_object: ::core::option::Option<CMsgSteamLearnDataObject>,
224}
225#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
226pub struct CMsgSteamLearnDataList {
227    #[prost(message, repeated, tag = "1")]
228    pub data: ::prost::alloc::vec::Vec<CMsgSteamLearnData>,
229}
230#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
231pub struct CMsgSteamLearnRegisterDataSourceRequest {
232    #[prost(string, optional, tag = "1")]
233    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
234    #[prost(message, optional, tag = "3")]
235    pub data_source: ::core::option::Option<CMsgSteamLearnDataSource>,
236}
237#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
238pub struct CMsgSteamLearnRegisterDataSourceResponse {
239    #[prost(enumeration = "ESteammLearnRegisterDataSourceResult", optional, tag = "1", default = "SteamlearnRegisterDataSourceResultError")]
240    pub result: ::core::option::Option<i32>,
241    #[prost(message, optional, tag = "2")]
242    pub data_source: ::core::option::Option<CMsgSteamLearnDataSource>,
243}
244#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
245pub struct CMsgSteamLearnCacheDataRequest {
246    #[prost(string, optional, tag = "1")]
247    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
248    #[prost(message, optional, tag = "3")]
249    pub data: ::core::option::Option<CMsgSteamLearnData>,
250}
251#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
252pub struct CMsgSteamLearnCacheDataResponse {
253    #[prost(enumeration = "ESteamLearnCacheDataResult", optional, tag = "1", default = "SteamlearnCacheDataError")]
254    pub cache_data_result: ::core::option::Option<i32>,
255}
256#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
257pub struct CMsgSteamLearnSnapshotProjectRequest {
258    #[prost(string, optional, tag = "1")]
259    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
260    #[prost(uint32, optional, tag = "3")]
261    pub project_id: ::core::option::Option<u32>,
262    #[prost(uint32, optional, tag = "7")]
263    pub published_version: ::core::option::Option<u32>,
264    #[prost(uint64, repeated, packed = "false", tag = "4")]
265    pub keys: ::prost::alloc::vec::Vec<u64>,
266    #[prost(message, repeated, tag = "5")]
267    pub data: ::prost::alloc::vec::Vec<CMsgSteamLearnData>,
268    #[prost(uint32, optional, tag = "6")]
269    pub pending_data_limit_seconds: ::core::option::Option<u32>,
270}
271#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
272pub struct CMsgSteamLearnSnapshotProjectResponse {
273    #[prost(enumeration = "ESteamLearnSnapshotProjectResult", optional, tag = "1", default = "SteamlearnSnapshotProjectError")]
274    pub snapshot_result: ::core::option::Option<i32>,
275}
276#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
277pub struct CMsgSteamLearnBatchOperationRequest {
278    #[prost(message, repeated, tag = "1")]
279    pub cache_data_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnCacheDataRequest>,
280    #[prost(message, repeated, tag = "2")]
281    pub snapshot_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnSnapshotProjectRequest>,
282    #[prost(message, repeated, tag = "3")]
283    pub inference_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnInferenceRequest>,
284}
285#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
286pub struct CMsgSteamLearnBatchOperationResponse {
287    #[prost(message, repeated, tag = "1")]
288    pub cache_data_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnCacheDataResponse>,
289    #[prost(message, repeated, tag = "2")]
290    pub snapshot_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnSnapshotProjectResponse>,
291    #[prost(message, repeated, tag = "3")]
292    pub inference_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnInferenceResponse>,
293}
294#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
295pub struct CMsgSteamLearnAccessTokens {
296    #[prost(string, optional, tag = "1")]
297    pub register_data_source_access_token: ::core::option::Option<::prost::alloc::string::String>,
298    #[prost(message, repeated, tag = "2")]
299    pub cache_data_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::CacheDataAccessToken>,
300    #[prost(message, repeated, tag = "3")]
301    pub snapshot_project_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::SnapshotProjectAccessToken>,
302    #[prost(message, repeated, tag = "4")]
303    pub inference_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::InferenceAccessToken>,
304}
305pub mod c_msg_steam_learn_access_tokens {
306    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
307    pub struct CacheDataAccessToken {
308        #[prost(uint32, optional, tag = "1")]
309        pub data_source_id: ::core::option::Option<u32>,
310        #[prost(string, optional, tag = "2")]
311        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
312    }
313    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
314    pub struct SnapshotProjectAccessToken {
315        #[prost(uint32, optional, tag = "1")]
316        pub project_id: ::core::option::Option<u32>,
317        #[prost(string, optional, tag = "2")]
318        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
319    }
320    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
321    pub struct InferenceAccessToken {
322        #[prost(uint32, optional, tag = "1")]
323        pub project_id: ::core::option::Option<u32>,
324        #[prost(string, optional, tag = "2")]
325        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
326    }
327}
328#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
329pub struct CMsgSteamLearnGetAccessTokensRequest {
330    #[prost(uint32, optional, tag = "1")]
331    pub appid: ::core::option::Option<u32>,
332}
333#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
334pub struct CMsgSteamLearnGetAccessTokensResponse {
335    #[prost(enumeration = "ESteamLearnGetAccessTokensResult", optional, tag = "1", default = "SteamlearnGetAccessTokensError")]
336    pub result: ::core::option::Option<i32>,
337    #[prost(message, optional, tag = "2")]
338    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
339}
340#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
341pub struct CMsgInferenceIterateBeamSearch {
342    #[prost(uint32, optional, tag = "1")]
343    pub beam_length: ::core::option::Option<u32>,
344    #[prost(uint32, optional, tag = "2")]
345    pub beam_width: ::core::option::Option<u32>,
346    #[prost(float, optional, tag = "3")]
347    pub item_decay: ::core::option::Option<f32>,
348    #[prost(uint32, optional, tag = "4")]
349    pub next_item_count: ::core::option::Option<u32>,
350    #[prost(message, repeated, tag = "5")]
351    pub item_scalars: ::prost::alloc::vec::Vec<c_msg_inference_iterate_beam_search::CustomItemScalar>,
352    #[prost(uint32, optional, tag = "7")]
353    pub item_sequence_end: ::core::option::Option<u32>,
354    #[prost(float, optional, tag = "8")]
355    pub item_sequence_end_threshold: ::core::option::Option<f32>,
356    #[prost(float, optional, tag = "9")]
357    pub repeat_multiplier: ::core::option::Option<f32>,
358}
359pub mod c_msg_inference_iterate_beam_search {
360    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
361    pub struct CustomItemScalar {
362        #[prost(uint32, optional, tag = "1")]
363        pub item: ::core::option::Option<u32>,
364        #[prost(float, optional, tag = "2")]
365        pub scale: ::core::option::Option<f32>,
366    }
367}
368#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
369pub struct CMsgSteamLearnInferenceRequest {
370    #[prost(string, optional, tag = "1")]
371    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
372    #[prost(uint32, optional, tag = "3")]
373    pub project_id: ::core::option::Option<u32>,
374    #[prost(uint32, optional, tag = "4")]
375    pub published_version: ::core::option::Option<u32>,
376    #[prost(uint32, optional, tag = "5")]
377    pub override_train_id: ::core::option::Option<u32>,
378    #[prost(message, optional, tag = "6")]
379    pub data: ::core::option::Option<CMsgSteamLearnDataList>,
380    #[prost(float, repeated, packed = "false", tag = "7")]
381    pub additional_data: ::prost::alloc::vec::Vec<f32>,
382    #[prost(uint64, repeated, packed = "false", tag = "8")]
383    pub keys: ::prost::alloc::vec::Vec<u64>,
384    #[prost(string, optional, tag = "9")]
385    pub named_inference: ::core::option::Option<::prost::alloc::string::String>,
386    #[prost(message, optional, tag = "13")]
387    pub iterate_beam_search: ::core::option::Option<CMsgInferenceIterateBeamSearch>,
388    #[prost(uint32, optional, tag = "14")]
389    pub debug_spew: ::core::option::Option<u32>,
390}
391#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
392pub struct CMsgSteamLearnInferenceMetadataRequest {
393    #[prost(string, optional, tag = "1")]
394    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
395    #[prost(uint32, optional, tag = "3")]
396    pub project_id: ::core::option::Option<u32>,
397    #[prost(uint32, optional, tag = "4")]
398    pub published_version: ::core::option::Option<u32>,
399    #[prost(uint32, optional, tag = "5")]
400    pub override_train_id: ::core::option::Option<u32>,
401}
402#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
403pub struct CMsgSteamLearnInferenceMetadataBackendRequest {
404    #[prost(uint32, optional, tag = "1")]
405    pub project_id: ::core::option::Option<u32>,
406    #[prost(uint32, optional, tag = "2")]
407    pub fetch_id: ::core::option::Option<u32>,
408}
409#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
410pub struct CMsgSteamLearnInferenceMetadataResponse {
411    #[prost(enumeration = "ESteamLearnInferenceMetadataResult", optional, tag = "1", default = "SteamlearnInferenceMetadataError")]
412    pub inference_metadata_result: ::core::option::Option<i32>,
413    #[prost(message, optional, tag = "2")]
414    pub row_range: ::core::option::Option<c_msg_steam_learn_inference_metadata_response::RowRange>,
415    #[prost(message, repeated, tag = "3")]
416    pub ranges: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::Range>,
417    #[prost(message, repeated, tag = "4")]
418    pub std_devs: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::StdDev>,
419    #[prost(message, repeated, tag = "5")]
420    pub compact_tables: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::CompactTable>,
421    #[prost(message, repeated, tag = "9")]
422    pub sequence_tables: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::SequenceTable>,
423    #[prost(message, repeated, tag = "6")]
424    pub kmeans: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::KMeans>,
425    #[prost(message, repeated, tag = "8")]
426    pub app_info: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::AppInfoEntry>,
427    #[prost(message, optional, tag = "7")]
428    pub snapshot_histogram: ::core::option::Option<c_msg_steam_learn_inference_metadata_response::SnapshotHistogram>,
429}
430pub mod c_msg_steam_learn_inference_metadata_response {
431    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
432    pub struct RowRange {
433        #[prost(uint64, optional, tag = "1")]
434        pub min_row: ::core::option::Option<u64>,
435        #[prost(uint64, optional, tag = "2")]
436        pub max_row: ::core::option::Option<u64>,
437    }
438    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
439    pub struct Range {
440        #[prost(string, optional, tag = "1")]
441        pub data_element_path: ::core::option::Option<::prost::alloc::string::String>,
442        #[prost(float, optional, tag = "2")]
443        pub min_value: ::core::option::Option<f32>,
444        #[prost(float, optional, tag = "3")]
445        pub max_value: ::core::option::Option<f32>,
446    }
447    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
448    pub struct StdDev {
449        #[prost(string, optional, tag = "1")]
450        pub data_element_path: ::core::option::Option<::prost::alloc::string::String>,
451        #[prost(float, optional, tag = "2")]
452        pub mean: ::core::option::Option<f32>,
453        #[prost(float, optional, tag = "3")]
454        pub std_dev: ::core::option::Option<f32>,
455    }
456    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
457    pub struct CompactTable {
458        #[prost(string, optional, tag = "1")]
459        pub name: ::core::option::Option<::prost::alloc::string::String>,
460        #[prost(message, repeated, tag = "2")]
461        pub map_values: ::prost::alloc::vec::Vec<compact_table::MapValuesEntry>,
462        #[prost(message, repeated, tag = "3")]
463        pub map_mappings: ::prost::alloc::vec::Vec<compact_table::MapMappingsEntry>,
464    }
465    pub mod compact_table {
466        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
467        pub struct Entry {
468            #[prost(uint32, optional, tag = "1")]
469            pub value: ::core::option::Option<u32>,
470            #[prost(uint32, optional, tag = "2")]
471            pub mapping: ::core::option::Option<u32>,
472            #[prost(uint64, optional, tag = "3")]
473            pub count: ::core::option::Option<u64>,
474        }
475        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
476        pub struct MapValuesEntry {
477            #[prost(uint32, optional, tag = "1")]
478            pub key: ::core::option::Option<u32>,
479            #[prost(message, optional, tag = "2")]
480            pub value: ::core::option::Option<Entry>,
481        }
482        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
483        pub struct MapMappingsEntry {
484            #[prost(uint32, optional, tag = "1")]
485            pub key: ::core::option::Option<u32>,
486            #[prost(message, optional, tag = "2")]
487            pub value: ::core::option::Option<Entry>,
488        }
489    }
490    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
491    pub struct SequenceTable {
492        #[prost(string, optional, tag = "1")]
493        pub name: ::core::option::Option<::prost::alloc::string::String>,
494        #[prost(message, repeated, tag = "2")]
495        pub map_values: ::prost::alloc::vec::Vec<sequence_table::MapValuesEntry>,
496        #[prost(message, repeated, tag = "3")]
497        pub map_mappings: ::prost::alloc::vec::Vec<sequence_table::MapMappingsEntry>,
498        #[prost(uint64, optional, tag = "4")]
499        pub total_count: ::core::option::Option<u64>,
500    }
501    pub mod sequence_table {
502        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
503        pub struct Entry {
504            #[prost(uint32, repeated, packed = "false", tag = "1")]
505            pub values: ::prost::alloc::vec::Vec<u32>,
506            #[prost(uint32, optional, tag = "2")]
507            pub crc: ::core::option::Option<u32>,
508            #[prost(uint32, optional, tag = "3")]
509            pub count: ::core::option::Option<u32>,
510        }
511        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
512        pub struct MapValuesEntry {
513            #[prost(uint32, optional, tag = "1")]
514            pub key: ::core::option::Option<u32>,
515            #[prost(message, optional, tag = "2")]
516            pub value: ::core::option::Option<Entry>,
517        }
518        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
519        pub struct MapMappingsEntry {
520            #[prost(string, optional, tag = "1")]
521            pub key: ::core::option::Option<::prost::alloc::string::String>,
522            #[prost(message, optional, tag = "2")]
523            pub value: ::core::option::Option<Entry>,
524        }
525    }
526    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
527    pub struct KMeans {
528        #[prost(string, optional, tag = "1")]
529        pub name: ::core::option::Option<::prost::alloc::string::String>,
530        #[prost(message, repeated, tag = "2")]
531        pub clusters: ::prost::alloc::vec::Vec<k_means::Cluster>,
532    }
533    pub mod k_means {
534        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
535        pub struct Cluster {
536            #[prost(float, optional, tag = "1")]
537            pub x: ::core::option::Option<f32>,
538            #[prost(float, optional, tag = "2")]
539            pub y: ::core::option::Option<f32>,
540            #[prost(float, optional, tag = "3")]
541            pub radius: ::core::option::Option<f32>,
542            #[prost(float, optional, tag = "4")]
543            pub radius_75pct: ::core::option::Option<f32>,
544            #[prost(float, optional, tag = "5")]
545            pub radius_50pct: ::core::option::Option<f32>,
546            #[prost(float, optional, tag = "6")]
547            pub radius_25pct: ::core::option::Option<f32>,
548        }
549    }
550    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
551    pub struct SnapshotHistogram {
552        #[prost(float, optional, tag = "1")]
553        pub min_value: ::core::option::Option<f32>,
554        #[prost(float, optional, tag = "2")]
555        pub max_value: ::core::option::Option<f32>,
556        #[prost(uint32, optional, tag = "3")]
557        pub num_buckets: ::core::option::Option<u32>,
558        #[prost(uint32, repeated, packed = "false", tag = "4")]
559        pub bucket_counts: ::prost::alloc::vec::Vec<u32>,
560    }
561    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
562    pub struct AppInfo {
563        #[prost(string, optional, tag = "1")]
564        pub country_allow: ::core::option::Option<::prost::alloc::string::String>,
565        #[prost(string, optional, tag = "2")]
566        pub country_deny: ::core::option::Option<::prost::alloc::string::String>,
567        #[prost(bool, optional, tag = "3")]
568        pub platform_win: ::core::option::Option<bool>,
569        #[prost(bool, optional, tag = "4")]
570        pub platform_mac: ::core::option::Option<bool>,
571        #[prost(bool, optional, tag = "5")]
572        pub platform_linux: ::core::option::Option<bool>,
573        #[prost(bool, optional, tag = "6")]
574        pub adult_violence: ::core::option::Option<bool>,
575        #[prost(bool, optional, tag = "7")]
576        pub adult_sex: ::core::option::Option<bool>,
577    }
578    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
579    pub struct AppInfoEntry {
580        #[prost(uint32, optional, tag = "1")]
581        pub key: ::core::option::Option<u32>,
582        #[prost(message, optional, tag = "2")]
583        pub value: ::core::option::Option<AppInfo>,
584    }
585}
586#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
587pub struct CMsgSteamLearnInferenceBackendResponse {
588    #[prost(message, repeated, tag = "1")]
589    pub outputs: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_backend_response::Output>,
590}
591pub mod c_msg_steam_learn_inference_backend_response {
592    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
593    pub struct Sequence {
594        #[prost(float, repeated, packed = "false", tag = "1")]
595        pub value: ::prost::alloc::vec::Vec<f32>,
596    }
597    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
598    pub struct RegressionOutput {
599        #[prost(float, optional, tag = "2")]
600        pub value: ::core::option::Option<f32>,
601    }
602    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
603    pub struct NamedInferenceOutput {
604        #[prost(float, repeated, packed = "false", tag = "3")]
605        pub value: ::prost::alloc::vec::Vec<f32>,
606    }
607    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
608    pub struct BinaryCrossEntropyOutput {
609        #[prost(float, optional, tag = "1")]
610        pub value: ::core::option::Option<f32>,
611    }
612    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
613    pub struct MutliBinaryCrossEntropyOutput {
614        #[prost(float, repeated, packed = "false", tag = "1")]
615        pub weight: ::prost::alloc::vec::Vec<f32>,
616        #[prost(float, repeated, packed = "false", tag = "2")]
617        pub value: ::prost::alloc::vec::Vec<f32>,
618        #[prost(message, repeated, tag = "3")]
619        pub value_sequence: ::prost::alloc::vec::Vec<Sequence>,
620    }
621    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
622    pub struct CategoricalCrossEntropyOutput {
623        #[prost(float, repeated, packed = "false", tag = "1")]
624        pub weight: ::prost::alloc::vec::Vec<f32>,
625        #[prost(float, repeated, packed = "false", tag = "2")]
626        pub value: ::prost::alloc::vec::Vec<f32>,
627        #[prost(message, repeated, tag = "3")]
628        pub value_sequence: ::prost::alloc::vec::Vec<Sequence>,
629    }
630    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
631    pub struct Output {
632        #[prost(oneof = "output::ResponseType", tags = "1, 2, 3, 4, 5")]
633        pub response_type: ::core::option::Option<output::ResponseType>,
634    }
635    pub mod output {
636        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Oneof)]
637        pub enum ResponseType {
638            #[prost(message, tag = "1")]
639            BinaryCrossentropy(super::BinaryCrossEntropyOutput),
640            #[prost(message, tag = "2")]
641            CategoricalCrossentropy(super::CategoricalCrossEntropyOutput),
642            #[prost(message, tag = "3")]
643            MultiBinaryCrossentropy(super::MutliBinaryCrossEntropyOutput),
644            #[prost(message, tag = "4")]
645            Regression(super::RegressionOutput),
646            #[prost(message, tag = "5")]
647            NamedInference(super::NamedInferenceOutput),
648        }
649    }
650}
651#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
652pub struct CMsgSteamLearnInferenceResponse {
653    #[prost(enumeration = "ESteamLearnInferenceResult", optional, tag = "1", default = "SteamlearnInferenceError")]
654    pub inference_result: ::core::option::Option<i32>,
655    #[prost(message, optional, tag = "2")]
656    pub backend_response: ::core::option::Option<CMsgSteamLearnInferenceBackendResponse>,
657    #[prost(uint64, repeated, packed = "false", tag = "3")]
658    pub keys: ::prost::alloc::vec::Vec<u64>,
659}
660#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
661#[repr(i32)]
662pub enum ESteamLearnDataType {
663    SteamlearnDatatypeInvalid = 0,
664    SteamlearnDatatypeInt32 = 1,
665    SteamlearnDatatypeFloat32 = 2,
666    SteamlearnDatatypeBool = 3,
667    SteamlearnDatatypeString = 4,
668    SteamlearnDatatypeObject = 5,
669}
670#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
671#[repr(i32)]
672pub enum ESteammLearnRegisterDataSourceResult {
673    SteamlearnRegisterDataSourceResultError = 0,
674    SteamlearnRegisterDataSourceResultSuccessCreated = 1,
675    SteamlearnRegisterDataSourceResultSuccessFound = 2,
676    SteamlearnRegisterDataSourceResultErrorGeneric = 3,
677    SteamlearnRegisterDataSourceResultErrorInvalidName = 4,
678    SteamlearnRegisterDataSourceResultErrorInvalidVersion = 5,
679    SteamlearnRegisterDataSourceResultErrorDataChanged = 6,
680    SteamlearnRegisterDataSourceResultErrorDataInvalid = 7,
681    SteamlearnRegisterDataSourceResultErrorForbidden = 8,
682    SteamlearnRegisterDataSourceResultErrorInvalidTimestamp = 9,
683    SteamlearnRegisterDataSourceResultDisabled = 10,
684}
685#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
686#[repr(i32)]
687pub enum ESteamLearnCacheDataResult {
688    SteamlearnCacheDataError = 0,
689    SteamlearnCacheDataSuccess = 1,
690    SteamlearnCacheDataErrorUnknownDataSource = 2,
691    SteamlearnCacheDataErrorUncachedDataSource = 3,
692    SteamlearnCacheDataErrorInvalidKeys = 4,
693    SteamlearnCacheDataErrorForbidden = 5,
694    SteamlearnCacheDataErrorInvalidTimestamp = 6,
695    SteamlearnCacheDataDisabled = 7,
696}
697#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
698#[repr(i32)]
699pub enum ESteamLearnSnapshotProjectResult {
700    SteamlearnSnapshotProjectError = 0,
701    SteamlearnSnapshotProjectSuccessStored = 1,
702    SteamlearnSnapshotProjectSuccessQueued = 2,
703    SteamlearnSnapshotProjectErrorInvalidProjectId = 3,
704    SteamlearnSnapshotProjectErrorUnknownDataSource = 4,
705    SteamlearnSnapshotProjectErrorInvalidDataSourceKey = 5,
706    SteamlearnSnapshotProjectErrorMissingCacheDuration = 6,
707    SteamlearnSnapshotProjectErrorNoPublishedConfig = 7,
708    SteamlearnSnapshotProjectErrorForbidden = 8,
709    SteamlearnSnapshotProjectErrorInvalidTimestamp = 9,
710    SteamlearnSnapshotProjectErrorInternalDataSourceError = 10,
711    SteamlearnSnapshotProjectDisabled = 11,
712    SteamlearnSnapshotProjectErrorInvalidPublishedVersion = 12,
713}
714#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
715#[repr(i32)]
716pub enum ESteamLearnGetAccessTokensResult {
717    SteamlearnGetAccessTokensError = 0,
718    SteamlearnGetAccessTokensSuccess = 1,
719}
720#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
721#[repr(i32)]
722pub enum ESteamLearnInferenceResult {
723    SteamlearnInferenceError = 0,
724    SteamlearnInferenceSuccess = 1,
725    SteamlearnInferenceErrorInvalidProjectId = 2,
726    SteamlearnInferenceErrorMissingCachedSchemaData = 3,
727    SteamlearnInferenceErrorNoPublishedConfig = 4,
728    SteamlearnInferenceErrorForbidden = 5,
729    SteamlearnInferenceErrorInvalidTimestamp = 6,
730    SteamlearnInferenceErrorInvalidPublishedVersion = 7,
731    SteamlearnInferenceErrorNoFetchIdFound = 8,
732    SteamlearnInferenceErrorTooBusy = 9,
733    SteamlearnInferenceErrorUnsuppliedDataFail = 10,
734    SteamlearnInferenceErrorUnsuppliedDataNoKeys = 11,
735    SteamlearnInferenceDisabled = 12,
736    SteamlearnInferenceErrorNoOutput = 13,
737    SteamlearnInferenceErrorInvalidNamedInference = 14,
738}
739#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
740#[repr(i32)]
741pub enum ESteamLearnInferenceMetadataResult {
742    SteamlearnInferenceMetadataError = 0,
743    SteamlearnInferenceMetadataSuccess = 1,
744    SteamlearnInferenceMetadataErrorInvalidProjectId = 2,
745    SteamlearnInferenceMetadataErrorNoPublishedConfig = 3,
746    SteamlearnInferenceMetadataErrorForbidden = 4,
747    SteamlearnInferenceMetadataErrorInvalidTimestamp = 5,
748    SteamlearnInferenceMetadataErrorInvalidPublishedVersion = 6,
749    SteamlearnInferenceMetadataErrorNoFetchIdFound = 7,
750}
751#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
752pub struct CExtraMsgBlock {
753    #[prost(uint32, optional, tag = "1")]
754    pub msg_type: ::core::option::Option<u32>,
755    #[prost(bytes = "vec", optional, tag = "2")]
756    pub contents: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
757    #[prost(uint64, optional, tag = "3")]
758    pub msg_key: ::core::option::Option<u64>,
759    #[prost(bool, optional, tag = "4")]
760    pub is_compressed: ::core::option::Option<bool>,
761}
762#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
763pub struct CMsgSteamLearnServerInfo {
764    #[prost(message, optional, tag = "4")]
765    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
766    #[prost(message, repeated, tag = "5")]
767    pub project_infos: ::prost::alloc::vec::Vec<c_msg_steam_learn_server_info::ProjectInfo>,
768}
769pub mod c_msg_steam_learn_server_info {
770    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
771    pub struct ProjectInfo {
772        #[prost(uint32, optional, tag = "1")]
773        pub project_id: ::core::option::Option<u32>,
774        #[prost(uint32, optional, tag = "2")]
775        pub snapshot_published_version: ::core::option::Option<u32>,
776        #[prost(uint32, optional, tag = "3")]
777        pub inference_published_version: ::core::option::Option<u32>,
778        #[prost(uint32, optional, tag = "6")]
779        pub snapshot_percentage: ::core::option::Option<u32>,
780        #[prost(bool, optional, tag = "7")]
781        pub snapshot_enabled: ::core::option::Option<bool>,
782    }
783}
784#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
785pub struct CMsgGcAssertJobData {
786    #[prost(string, optional, tag = "1")]
787    pub message_type: ::core::option::Option<::prost::alloc::string::String>,
788    #[prost(bytes = "vec", optional, tag = "2")]
789    pub message_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
790}
791#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
792pub struct CMsgGcConCommand {
793    #[prost(string, optional, tag = "1")]
794    pub command: ::core::option::Option<::prost::alloc::string::String>,
795}
796#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
797pub struct CMsgSdoAssert {
798    #[prost(int32, optional, tag = "1")]
799    pub sdo_type: ::core::option::Option<i32>,
800    #[prost(message, repeated, tag = "2")]
801    pub requests: ::prost::alloc::vec::Vec<c_msg_sdo_assert::Request>,
802}
803pub mod c_msg_sdo_assert {
804    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
805    pub struct Request {
806        #[prost(uint64, repeated, packed = "false", tag = "1")]
807        pub key: ::prost::alloc::vec::Vec<u64>,
808        #[prost(string, optional, tag = "2")]
809        pub requesting_job: ::core::option::Option<::prost::alloc::string::String>,
810    }
811}
812#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
813pub struct CMsgSoidOwner {
814    #[prost(uint32, optional, tag = "1")]
815    pub r#type: ::core::option::Option<u32>,
816    #[prost(uint64, optional, tag = "2")]
817    pub id: ::core::option::Option<u64>,
818}
819#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
820pub struct CMsgSoSingleObject {
821    #[prost(int32, optional, tag = "2")]
822    pub type_id: ::core::option::Option<i32>,
823    #[prost(bytes = "vec", optional, tag = "3")]
824    pub object_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
825    #[prost(fixed64, optional, tag = "4")]
826    pub version: ::core::option::Option<u64>,
827    #[prost(message, optional, tag = "5")]
828    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
829    #[prost(uint32, optional, tag = "6")]
830    pub service_id: ::core::option::Option<u32>,
831}
832#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
833pub struct CMsgSoMultipleObjects {
834    #[prost(message, repeated, tag = "2")]
835    pub objects_modified: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
836    #[prost(fixed64, optional, tag = "3")]
837    pub version: ::core::option::Option<u64>,
838    #[prost(message, repeated, tag = "4")]
839    pub objects_added: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
840    #[prost(message, repeated, tag = "5")]
841    pub objects_removed: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
842    #[prost(message, optional, tag = "6")]
843    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
844    #[prost(uint32, optional, tag = "7")]
845    pub service_id: ::core::option::Option<u32>,
846}
847pub mod c_msg_so_multiple_objects {
848    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
849    pub struct SingleObject {
850        #[prost(int32, optional, tag = "1")]
851        pub type_id: ::core::option::Option<i32>,
852        #[prost(bytes = "vec", optional, tag = "2")]
853        pub object_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
854    }
855}
856#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
857pub struct CMsgSoCacheSubscribed {
858    #[prost(message, repeated, tag = "2")]
859    pub objects: ::prost::alloc::vec::Vec<c_msg_so_cache_subscribed::SubscribedType>,
860    #[prost(fixed64, optional, tag = "3")]
861    pub version: ::core::option::Option<u64>,
862    #[prost(message, optional, tag = "4")]
863    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
864    #[prost(uint32, optional, tag = "5")]
865    pub service_id: ::core::option::Option<u32>,
866    #[prost(uint32, repeated, packed = "false", tag = "6")]
867    pub service_list: ::prost::alloc::vec::Vec<u32>,
868    #[prost(fixed64, optional, tag = "7")]
869    pub sync_version: ::core::option::Option<u64>,
870}
871pub mod c_msg_so_cache_subscribed {
872    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
873    pub struct SubscribedType {
874        #[prost(int32, optional, tag = "1")]
875        pub type_id: ::core::option::Option<i32>,
876        #[prost(bytes = "vec", repeated, tag = "2")]
877        pub object_data: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
878    }
879}
880#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
881pub struct CMsgSoCacheSubscribedUpToDate {
882    #[prost(fixed64, optional, tag = "1")]
883    pub version: ::core::option::Option<u64>,
884    #[prost(message, optional, tag = "2")]
885    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
886    #[prost(uint32, optional, tag = "3")]
887    pub service_id: ::core::option::Option<u32>,
888    #[prost(uint32, repeated, packed = "false", tag = "4")]
889    pub service_list: ::prost::alloc::vec::Vec<u32>,
890    #[prost(fixed64, optional, tag = "5")]
891    pub sync_version: ::core::option::Option<u64>,
892}
893#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
894pub struct CMsgSoCacheUnsubscribed {
895    #[prost(message, optional, tag = "2")]
896    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
897}
898#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
899pub struct CMsgSoCacheSubscriptionCheck {
900    #[prost(fixed64, optional, tag = "2")]
901    pub version: ::core::option::Option<u64>,
902    #[prost(message, optional, tag = "3")]
903    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
904    #[prost(uint32, optional, tag = "4")]
905    pub service_id: ::core::option::Option<u32>,
906    #[prost(uint32, repeated, packed = "false", tag = "5")]
907    pub service_list: ::prost::alloc::vec::Vec<u32>,
908    #[prost(fixed64, optional, tag = "6")]
909    pub sync_version: ::core::option::Option<u64>,
910}
911#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
912pub struct CMsgSoCacheSubscriptionRefresh {
913    #[prost(message, optional, tag = "2")]
914    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
915}
916#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
917pub struct CMsgSoCacheVersion {
918    #[prost(fixed64, optional, tag = "1")]
919    pub version: ::core::option::Option<u64>,
920}
921#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
922pub struct CMsgGcMultiplexMessage {
923    #[prost(uint32, optional, tag = "1")]
924    pub msgtype: ::core::option::Option<u32>,
925    #[prost(bytes = "vec", optional, tag = "2")]
926    pub payload: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
927    #[prost(fixed64, repeated, packed = "false", tag = "3")]
928    pub steamids: ::prost::alloc::vec::Vec<u64>,
929}
930#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
931pub struct CMsgGcToGcSubGcStarting {
932    #[prost(int32, optional, tag = "1", default = "-1")]
933    pub dir_index: ::core::option::Option<i32>,
934}
935#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
936pub struct CGcToGcMsgMasterAck {
937    #[prost(int32, optional, tag = "1", default = "-1")]
938    pub dir_index: ::core::option::Option<i32>,
939    #[prost(string, optional, tag = "3")]
940    pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
941    #[prost(string, optional, tag = "4")]
942    pub process_name: ::core::option::Option<::prost::alloc::string::String>,
943    #[prost(message, repeated, tag = "6")]
944    pub directory: ::prost::alloc::vec::Vec<cgc_to_gc_msg_master_ack::Process>,
945}
946pub mod cgc_to_gc_msg_master_ack {
947    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
948    pub struct Process {
949        #[prost(int32, optional, tag = "1", default = "-1")]
950        pub dir_index: ::core::option::Option<i32>,
951        #[prost(uint32, repeated, packed = "false", tag = "2")]
952        pub type_instances: ::prost::alloc::vec::Vec<u32>,
953    }
954}
955#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
956pub struct CGcToGcMsgMasterAckResponse {
957    #[prost(int32, optional, tag = "1", default = "2")]
958    pub eresult: ::core::option::Option<i32>,
959}
960#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
961pub struct CMsgGcToGcUniverseStartup {
962    #[prost(bool, optional, tag = "1")]
963    pub is_initial_startup: ::core::option::Option<bool>,
964}
965#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
966pub struct CMsgGcToGcUniverseStartupResponse {
967    #[prost(int32, optional, tag = "1")]
968    pub eresult: ::core::option::Option<i32>,
969}
970#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
971pub struct CGcToGcMsgMasterStartupComplete {
972    #[prost(message, repeated, tag = "1")]
973    pub gc_info: ::prost::alloc::vec::Vec<cgc_to_gc_msg_master_startup_complete::GcInfo>,
974}
975pub mod cgc_to_gc_msg_master_startup_complete {
976    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
977    pub struct GcInfo {
978        #[prost(int32, optional, tag = "1", default = "-1")]
979        pub dir_index: ::core::option::Option<i32>,
980        #[prost(string, optional, tag = "2")]
981        pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
982    }
983}
984#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
985pub struct CGcToGcMsgRouted {
986    #[prost(uint32, optional, tag = "1")]
987    pub msg_type: ::core::option::Option<u32>,
988    #[prost(fixed64, optional, tag = "2")]
989    pub sender_id: ::core::option::Option<u64>,
990    #[prost(bytes = "vec", optional, tag = "3")]
991    pub net_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
992}
993#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
994pub struct CGcToGcMsgRoutedReply {
995    #[prost(uint32, optional, tag = "1")]
996    pub msg_type: ::core::option::Option<u32>,
997    #[prost(bytes = "vec", optional, tag = "2")]
998    pub net_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
999}
1000#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1001pub struct CMsgGcUpdateSubGcSessionInfo {
1002    #[prost(message, repeated, tag = "1")]
1003    pub updates: ::prost::alloc::vec::Vec<c_msg_gc_update_sub_gc_session_info::CMsgUpdate>,
1004}
1005pub mod c_msg_gc_update_sub_gc_session_info {
1006    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1007    pub struct CMsgUpdate {
1008        #[prost(fixed64, optional, tag = "1")]
1009        pub steamid: ::core::option::Option<u64>,
1010        #[prost(fixed32, optional, tag = "2")]
1011        pub ip: ::core::option::Option<u32>,
1012        #[prost(bool, optional, tag = "3")]
1013        pub trusted: ::core::option::Option<bool>,
1014    }
1015}
1016#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1017pub struct CMsgGcRequestSubGcSessionInfo {
1018    #[prost(fixed64, optional, tag = "1")]
1019    pub steamid: ::core::option::Option<u64>,
1020}
1021#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1022pub struct CMsgGcRequestSubGcSessionInfoResponse {
1023    #[prost(fixed32, optional, tag = "1")]
1024    pub ip: ::core::option::Option<u32>,
1025    #[prost(bool, optional, tag = "2")]
1026    pub trusted: ::core::option::Option<bool>,
1027    #[prost(uint32, optional, tag = "3")]
1028    pub port: ::core::option::Option<u32>,
1029    #[prost(bool, optional, tag = "4")]
1030    pub success: ::core::option::Option<bool>,
1031}
1032#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1033pub struct CMsgSoCacheHaveVersion {
1034    #[prost(message, optional, tag = "1")]
1035    pub soid: ::core::option::Option<CMsgSoidOwner>,
1036    #[prost(fixed64, optional, tag = "2")]
1037    pub version: ::core::option::Option<u64>,
1038    #[prost(uint32, optional, tag = "3")]
1039    pub service_id: ::core::option::Option<u32>,
1040    #[prost(uint32, optional, tag = "4")]
1041    pub cached_file_version: ::core::option::Option<u32>,
1042}
1043#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1044pub struct CMsgClientHello {
1045    #[prost(uint32, optional, tag = "1")]
1046    pub version: ::core::option::Option<u32>,
1047    #[prost(message, repeated, tag = "2")]
1048    pub socache_have_versions: ::prost::alloc::vec::Vec<CMsgSoCacheHaveVersion>,
1049    #[prost(uint32, optional, tag = "3")]
1050    pub client_session_need: ::core::option::Option<u32>,
1051    #[prost(enumeration = "PartnerAccountType", optional, tag = "4", default = "PartnerNone")]
1052    pub client_launcher: ::core::option::Option<i32>,
1053    #[prost(string, optional, tag = "5")]
1054    pub secret_key: ::core::option::Option<::prost::alloc::string::String>,
1055    #[prost(uint32, optional, tag = "6")]
1056    pub client_language: ::core::option::Option<u32>,
1057    #[prost(enumeration = "ESourceEngine", optional, tag = "7", default = "KEseSource1")]
1058    pub engine: ::core::option::Option<i32>,
1059    #[prost(bytes = "vec", optional, tag = "8")]
1060    pub steamdatagram_login: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1061    #[prost(uint32, optional, tag = "9")]
1062    pub platform_id: ::core::option::Option<u32>,
1063    #[prost(bytes = "vec", optional, tag = "10")]
1064    pub game_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1065    #[prost(int32, optional, tag = "11")]
1066    pub os_type: ::core::option::Option<i32>,
1067    #[prost(uint32, optional, tag = "12")]
1068    pub render_system: ::core::option::Option<u32>,
1069    #[prost(uint32, optional, tag = "13")]
1070    pub render_system_req: ::core::option::Option<u32>,
1071    #[prost(uint32, optional, tag = "14")]
1072    pub screen_width: ::core::option::Option<u32>,
1073    #[prost(uint32, optional, tag = "15")]
1074    pub screen_height: ::core::option::Option<u32>,
1075    #[prost(uint32, optional, tag = "16")]
1076    pub screen_refresh: ::core::option::Option<u32>,
1077    #[prost(uint32, optional, tag = "17")]
1078    pub render_width: ::core::option::Option<u32>,
1079    #[prost(uint32, optional, tag = "18")]
1080    pub render_height: ::core::option::Option<u32>,
1081    #[prost(uint32, optional, tag = "19")]
1082    pub swap_width: ::core::option::Option<u32>,
1083    #[prost(uint32, optional, tag = "20")]
1084    pub swap_height: ::core::option::Option<u32>,
1085    #[prost(bool, optional, tag = "22")]
1086    pub is_steam_china: ::core::option::Option<bool>,
1087    #[prost(bool, optional, tag = "24")]
1088    pub is_steam_china_client: ::core::option::Option<bool>,
1089    #[prost(string, optional, tag = "23")]
1090    pub platform_name: ::core::option::Option<::prost::alloc::string::String>,
1091}
1092#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1093pub struct CMsgClientWelcome {
1094    #[prost(uint32, optional, tag = "1")]
1095    pub version: ::core::option::Option<u32>,
1096    #[prost(bytes = "vec", optional, tag = "2")]
1097    pub game_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1098    #[prost(message, repeated, tag = "3")]
1099    pub outofdate_subscribed_caches: ::prost::alloc::vec::Vec<CMsgSoCacheSubscribed>,
1100    #[prost(message, repeated, tag = "4")]
1101    pub uptodate_subscribed_caches: ::prost::alloc::vec::Vec<CMsgSoCacheSubscriptionCheck>,
1102    #[prost(message, optional, tag = "5")]
1103    pub location: ::core::option::Option<c_msg_client_welcome::Location>,
1104    #[prost(uint32, optional, tag = "9")]
1105    pub gc_socache_file_version: ::core::option::Option<u32>,
1106    #[prost(string, optional, tag = "10")]
1107    pub txn_country_code: ::core::option::Option<::prost::alloc::string::String>,
1108    #[prost(bytes = "vec", optional, tag = "11")]
1109    pub game_data2: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1110    #[prost(uint32, optional, tag = "12")]
1111    pub rtime32_gc_welcome_timestamp: ::core::option::Option<u32>,
1112    #[prost(uint32, optional, tag = "13")]
1113    pub currency: ::core::option::Option<u32>,
1114    #[prost(uint32, optional, tag = "14")]
1115    pub balance: ::core::option::Option<u32>,
1116    #[prost(string, optional, tag = "15")]
1117    pub balance_url: ::core::option::Option<::prost::alloc::string::String>,
1118    #[prost(bool, optional, tag = "16")]
1119    pub has_accepted_china_ssa: ::core::option::Option<bool>,
1120    #[prost(bool, optional, tag = "17")]
1121    pub is_banned_steam_china: ::core::option::Option<bool>,
1122    #[prost(message, optional, tag = "18")]
1123    pub additional_welcome_msgs: ::core::option::Option<CExtraMsgBlock>,
1124    #[prost(message, optional, tag = "20")]
1125    pub steam_learn_server_info: ::core::option::Option<CMsgSteamLearnServerInfo>,
1126}
1127pub mod c_msg_client_welcome {
1128    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1129    pub struct Location {
1130        #[prost(float, optional, tag = "1")]
1131        pub latitude: ::core::option::Option<f32>,
1132        #[prost(float, optional, tag = "2")]
1133        pub longitude: ::core::option::Option<f32>,
1134        #[prost(string, optional, tag = "3")]
1135        pub country: ::core::option::Option<::prost::alloc::string::String>,
1136    }
1137}
1138#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1139pub struct CMsgConnectionStatus {
1140    #[prost(enumeration = "GcConnectionStatus", optional, tag = "1", default = "HaveSession")]
1141    pub status: ::core::option::Option<i32>,
1142    #[prost(uint32, optional, tag = "2")]
1143    pub client_session_need: ::core::option::Option<u32>,
1144    #[prost(int32, optional, tag = "3")]
1145    pub queue_position: ::core::option::Option<i32>,
1146    #[prost(int32, optional, tag = "4")]
1147    pub queue_size: ::core::option::Option<i32>,
1148    #[prost(int32, optional, tag = "5")]
1149    pub wait_seconds: ::core::option::Option<i32>,
1150    #[prost(int32, optional, tag = "6")]
1151    pub estimated_wait_seconds_remaining: ::core::option::Option<i32>,
1152}
1153#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1154pub struct CMsgGcToGcsoCacheSubscribe {
1155    #[prost(fixed64, optional, tag = "1")]
1156    pub subscriber: ::core::option::Option<u64>,
1157    #[prost(fixed64, optional, tag = "2")]
1158    pub subscribe_to_id: ::core::option::Option<u64>,
1159    #[prost(fixed64, optional, tag = "3")]
1160    pub sync_version: ::core::option::Option<u64>,
1161    #[prost(message, repeated, tag = "4")]
1162    pub have_versions: ::prost::alloc::vec::Vec<c_msg_gc_to_gcso_cache_subscribe::CMsgHaveVersions>,
1163    #[prost(uint32, optional, tag = "5")]
1164    pub subscribe_to_type: ::core::option::Option<u32>,
1165}
1166pub mod c_msg_gc_to_gcso_cache_subscribe {
1167    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1168    pub struct CMsgHaveVersions {
1169        #[prost(uint32, optional, tag = "1")]
1170        pub service_id: ::core::option::Option<u32>,
1171        #[prost(uint64, optional, tag = "2")]
1172        pub version: ::core::option::Option<u64>,
1173    }
1174}
1175#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1176pub struct CMsgGcToGcsoCacheUnsubscribe {
1177    #[prost(fixed64, optional, tag = "1")]
1178    pub subscriber: ::core::option::Option<u64>,
1179    #[prost(fixed64, optional, tag = "2")]
1180    pub unsubscribe_from_id: ::core::option::Option<u64>,
1181    #[prost(uint32, optional, tag = "3")]
1182    pub unsubscribe_from_type: ::core::option::Option<u32>,
1183}
1184#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1185pub struct CMsgGcClientPing {}
1186#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1187pub struct CMsgGcToGcForwardAccountDetails {
1188    #[prost(fixed64, optional, tag = "1")]
1189    pub steamid: ::core::option::Option<u64>,
1190    #[prost(message, optional, tag = "2")]
1191    pub account_details: ::core::option::Option<CGcSystemMsgGetAccountDetailsResponse>,
1192    #[prost(uint32, optional, tag = "3")]
1193    pub age_seconds: ::core::option::Option<u32>,
1194}
1195#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1196pub struct CMsgGcToGcLoadSessionSoCache {
1197    #[prost(uint32, optional, tag = "1")]
1198    pub account_id: ::core::option::Option<u32>,
1199    #[prost(message, optional, tag = "2")]
1200    pub forward_account_details: ::core::option::Option<CMsgGcToGcForwardAccountDetails>,
1201}
1202#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1203pub struct CMsgGcToGcLoadSessionSoCacheResponse {}
1204#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1205pub struct CMsgGcToGcUpdateSessionStats {
1206    #[prost(uint32, optional, tag = "1")]
1207    pub user_sessions: ::core::option::Option<u32>,
1208    #[prost(uint32, optional, tag = "2")]
1209    pub server_sessions: ::core::option::Option<u32>,
1210    #[prost(bool, optional, tag = "3")]
1211    pub in_logon_surge: ::core::option::Option<bool>,
1212}
1213#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1214pub struct CMsgGcToClientRequestDropped {}
1215#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1216pub struct CWorkshopPopulateItemDescriptionsRequest {
1217    #[prost(uint32, optional, tag = "1")]
1218    pub appid: ::core::option::Option<u32>,
1219    #[prost(message, repeated, tag = "2")]
1220    pub languages: ::prost::alloc::vec::Vec<c_workshop_populate_item_descriptions_request::ItemDescriptionsLanguageBlock>,
1221}
1222pub mod c_workshop_populate_item_descriptions_request {
1223    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1224    pub struct SingleItemDescription {
1225        #[prost(uint32, optional, tag = "1")]
1226        pub gameitemid: ::core::option::Option<u32>,
1227        #[prost(string, optional, tag = "2")]
1228        pub item_description: ::core::option::Option<::prost::alloc::string::String>,
1229    }
1230    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1231    pub struct ItemDescriptionsLanguageBlock {
1232        #[prost(string, optional, tag = "1")]
1233        pub language: ::core::option::Option<::prost::alloc::string::String>,
1234        #[prost(message, repeated, tag = "2")]
1235        pub descriptions: ::prost::alloc::vec::Vec<SingleItemDescription>,
1236    }
1237}
1238#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1239pub struct CWorkshopGetContributorsRequest {
1240    #[prost(uint32, optional, tag = "1")]
1241    pub appid: ::core::option::Option<u32>,
1242    #[prost(uint32, optional, tag = "2")]
1243    pub gameitemid: ::core::option::Option<u32>,
1244}
1245#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1246pub struct CWorkshopGetContributorsResponse {
1247    #[prost(fixed64, repeated, packed = "false", tag = "1")]
1248    pub contributors: ::prost::alloc::vec::Vec<u64>,
1249}
1250#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1251pub struct CWorkshopSetItemPaymentRulesRequest {
1252    #[prost(uint32, optional, tag = "1")]
1253    pub appid: ::core::option::Option<u32>,
1254    #[prost(uint32, optional, tag = "2")]
1255    pub gameitemid: ::core::option::Option<u32>,
1256    #[prost(message, repeated, tag = "3")]
1257    pub associated_workshop_files: ::prost::alloc::vec::Vec<c_workshop_set_item_payment_rules_request::WorkshopItemPaymentRule>,
1258    #[prost(message, repeated, tag = "4")]
1259    pub partner_accounts: ::prost::alloc::vec::Vec<c_workshop_set_item_payment_rules_request::PartnerItemPaymentRule>,
1260    #[prost(bool, optional, tag = "5")]
1261    pub validate_only: ::core::option::Option<bool>,
1262    #[prost(bool, optional, tag = "6")]
1263    pub make_workshop_files_subscribable: ::core::option::Option<bool>,
1264    #[prost(message, optional, tag = "7")]
1265    pub associated_workshop_file_for_direct_payments: ::core::option::Option<c_workshop_set_item_payment_rules_request::WorkshopDirectPaymentRule>,
1266}
1267pub mod c_workshop_set_item_payment_rules_request {
1268    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1269    pub struct WorkshopItemPaymentRule {
1270        #[prost(uint64, optional, tag = "1")]
1271        pub workshop_file_id: ::core::option::Option<u64>,
1272        #[prost(float, optional, tag = "2")]
1273        pub revenue_percentage: ::core::option::Option<f32>,
1274        #[prost(string, optional, tag = "3")]
1275        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1276        #[prost(uint32, optional, tag = "4", default = "1")]
1277        pub rule_type: ::core::option::Option<u32>,
1278    }
1279    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1280    pub struct WorkshopDirectPaymentRule {
1281        #[prost(uint64, optional, tag = "1")]
1282        pub workshop_file_id: ::core::option::Option<u64>,
1283        #[prost(string, optional, tag = "2")]
1284        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1285    }
1286    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1287    pub struct PartnerItemPaymentRule {
1288        #[prost(uint32, optional, tag = "1")]
1289        pub account_id: ::core::option::Option<u32>,
1290        #[prost(float, optional, tag = "2")]
1291        pub revenue_percentage: ::core::option::Option<f32>,
1292        #[prost(string, optional, tag = "3")]
1293        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1294    }
1295}
1296#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1297pub struct CWorkshopSetItemPaymentRulesResponse {
1298    #[prost(string, repeated, tag = "1")]
1299    pub validation_errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1300}
1301#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1302pub struct CCommunityClanAnnouncementInfo {
1303    #[prost(uint64, optional, tag = "1")]
1304    pub gid: ::core::option::Option<u64>,
1305    #[prost(uint64, optional, tag = "2")]
1306    pub clanid: ::core::option::Option<u64>,
1307    #[prost(uint64, optional, tag = "3")]
1308    pub posterid: ::core::option::Option<u64>,
1309    #[prost(string, optional, tag = "4")]
1310    pub headline: ::core::option::Option<::prost::alloc::string::String>,
1311    #[prost(uint32, optional, tag = "5")]
1312    pub posttime: ::core::option::Option<u32>,
1313    #[prost(uint32, optional, tag = "6")]
1314    pub updatetime: ::core::option::Option<u32>,
1315    #[prost(string, optional, tag = "7")]
1316    pub body: ::core::option::Option<::prost::alloc::string::String>,
1317    #[prost(int32, optional, tag = "8")]
1318    pub commentcount: ::core::option::Option<i32>,
1319    #[prost(string, repeated, tag = "9")]
1320    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1321    #[prost(int32, optional, tag = "10")]
1322    pub language: ::core::option::Option<i32>,
1323    #[prost(bool, optional, tag = "11")]
1324    pub hidden: ::core::option::Option<bool>,
1325    #[prost(fixed64, optional, tag = "12")]
1326    pub forum_topic_id: ::core::option::Option<u64>,
1327}
1328#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1329pub struct CCommunityGetClanAnnouncementsRequest {
1330    #[prost(uint64, optional, tag = "1")]
1331    pub steamid: ::core::option::Option<u64>,
1332    #[prost(uint32, optional, tag = "2")]
1333    pub offset: ::core::option::Option<u32>,
1334    #[prost(uint32, optional, tag = "3")]
1335    pub count: ::core::option::Option<u32>,
1336    #[prost(uint32, optional, tag = "4")]
1337    pub maxchars: ::core::option::Option<u32>,
1338    #[prost(bool, optional, tag = "5")]
1339    pub strip_html: ::core::option::Option<bool>,
1340    #[prost(string, repeated, tag = "6")]
1341    pub required_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1342    #[prost(bool, optional, tag = "7")]
1343    pub require_no_tags: ::core::option::Option<bool>,
1344    #[prost(uint32, repeated, packed = "false", tag = "8")]
1345    pub language_preference: ::prost::alloc::vec::Vec<u32>,
1346    #[prost(bool, optional, tag = "9")]
1347    pub hidden_only: ::core::option::Option<bool>,
1348    #[prost(bool, optional, tag = "10")]
1349    pub only_gid: ::core::option::Option<bool>,
1350    #[prost(uint32, optional, tag = "11")]
1351    pub rtime_oldest_date: ::core::option::Option<u32>,
1352    #[prost(bool, optional, tag = "12")]
1353    pub include_hidden: ::core::option::Option<bool>,
1354    #[prost(bool, optional, tag = "13")]
1355    pub include_partner_events: ::core::option::Option<bool>,
1356}
1357#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1358pub struct CCommunityGetClanAnnouncementsResponse {
1359    #[prost(uint32, optional, tag = "1")]
1360    pub maxchars: ::core::option::Option<u32>,
1361    #[prost(bool, optional, tag = "2")]
1362    pub strip_html: ::core::option::Option<bool>,
1363    #[prost(message, repeated, tag = "3")]
1364    pub announcements: ::prost::alloc::vec::Vec<CCommunityClanAnnouncementInfo>,
1365}
1366#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1367pub struct CBroadcastPostGameDataFrameRequest {
1368    #[prost(uint32, optional, tag = "1")]
1369    pub appid: ::core::option::Option<u32>,
1370    #[prost(fixed64, optional, tag = "2")]
1371    pub steamid: ::core::option::Option<u64>,
1372    #[prost(fixed64, optional, tag = "3")]
1373    pub broadcast_id: ::core::option::Option<u64>,
1374    #[prost(bytes = "vec", optional, tag = "4")]
1375    pub frame_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1376}
1377#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1378pub struct CMsgSerializedSoCache {
1379    #[prost(uint32, optional, tag = "1")]
1380    pub file_version: ::core::option::Option<u32>,
1381    #[prost(message, repeated, tag = "2")]
1382    pub caches: ::prost::alloc::vec::Vec<c_msg_serialized_so_cache::Cache>,
1383    #[prost(uint32, optional, tag = "3")]
1384    pub gc_socache_file_version: ::core::option::Option<u32>,
1385}
1386pub mod c_msg_serialized_so_cache {
1387    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1388    pub struct TypeCache {
1389        #[prost(uint32, optional, tag = "1")]
1390        pub r#type: ::core::option::Option<u32>,
1391        #[prost(bytes = "vec", repeated, tag = "2")]
1392        pub objects: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
1393        #[prost(uint32, optional, tag = "3")]
1394        pub service_id: ::core::option::Option<u32>,
1395    }
1396    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1397    pub struct Cache {
1398        #[prost(uint32, optional, tag = "1")]
1399        pub r#type: ::core::option::Option<u32>,
1400        #[prost(uint64, optional, tag = "2")]
1401        pub id: ::core::option::Option<u64>,
1402        #[prost(message, repeated, tag = "3")]
1403        pub versions: ::prost::alloc::vec::Vec<cache::Version>,
1404        #[prost(message, repeated, tag = "4")]
1405        pub type_caches: ::prost::alloc::vec::Vec<TypeCache>,
1406    }
1407    pub mod cache {
1408        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1409        pub struct Version {
1410            #[prost(uint32, optional, tag = "1")]
1411            pub service: ::core::option::Option<u32>,
1412            #[prost(uint64, optional, tag = "2")]
1413            pub version: ::core::option::Option<u64>,
1414        }
1415    }
1416}
1417#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1418pub struct CMsgGcToClientPollConvarRequest {
1419    #[prost(string, optional, tag = "1")]
1420    pub convar_name: ::core::option::Option<::prost::alloc::string::String>,
1421    #[prost(uint32, optional, tag = "2")]
1422    pub poll_id: ::core::option::Option<u32>,
1423}
1424#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1425pub struct CMsgGcToClientPollConvarResponse {
1426    #[prost(uint32, optional, tag = "1")]
1427    pub poll_id: ::core::option::Option<u32>,
1428    #[prost(string, optional, tag = "2")]
1429    pub convar_value: ::core::option::Option<::prost::alloc::string::String>,
1430}
1431#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1432pub struct CGcMsgCompressedMsgToClient {
1433    #[prost(uint32, optional, tag = "1")]
1434    pub msg_id: ::core::option::Option<u32>,
1435    #[prost(bytes = "vec", optional, tag = "2")]
1436    pub compressed_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1437}
1438#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1439pub struct CMsgGcToGcMasterBroadcastMessage {
1440    #[prost(uint32, optional, tag = "1")]
1441    pub users_per_second: ::core::option::Option<u32>,
1442    #[prost(bool, optional, tag = "2")]
1443    pub send_to_users: ::core::option::Option<bool>,
1444    #[prost(bool, optional, tag = "3")]
1445    pub send_to_servers: ::core::option::Option<bool>,
1446    #[prost(uint32, optional, tag = "4")]
1447    pub msg_id: ::core::option::Option<u32>,
1448    #[prost(bytes = "vec", optional, tag = "5")]
1449    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1450    #[prost(bool, optional, tag = "6")]
1451    pub trusted_servers_only: ::core::option::Option<bool>,
1452}
1453#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1454pub struct CMsgGcToGcMasterSubscribeToCache {
1455    #[prost(uint32, optional, tag = "1")]
1456    pub soid_type: ::core::option::Option<u32>,
1457    #[prost(fixed64, optional, tag = "2")]
1458    pub soid_id: ::core::option::Option<u64>,
1459    #[prost(uint32, repeated, packed = "false", tag = "3")]
1460    pub account_ids: ::prost::alloc::vec::Vec<u32>,
1461    #[prost(fixed64, repeated, packed = "false", tag = "4")]
1462    pub steam_ids: ::prost::alloc::vec::Vec<u64>,
1463}
1464#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1465pub struct CMsgGcToGcMasterSubscribeToCacheResponse {}
1466#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1467pub struct CMsgGcToGcMasterSubscribeToCacheAsync {
1468    #[prost(message, optional, tag = "1")]
1469    pub subscribe_msg: ::core::option::Option<CMsgGcToGcMasterSubscribeToCache>,
1470}
1471#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1472pub struct CMsgGcToGcMasterUnsubscribeFromCache {
1473    #[prost(uint32, optional, tag = "1")]
1474    pub soid_type: ::core::option::Option<u32>,
1475    #[prost(fixed64, optional, tag = "2")]
1476    pub soid_id: ::core::option::Option<u64>,
1477    #[prost(uint32, repeated, packed = "false", tag = "3")]
1478    pub account_ids: ::prost::alloc::vec::Vec<u32>,
1479    #[prost(fixed64, repeated, packed = "false", tag = "4")]
1480    pub steam_ids: ::prost::alloc::vec::Vec<u64>,
1481}
1482#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1483pub struct CMsgGcToGcMasterDestroyCache {
1484    #[prost(uint32, optional, tag = "1")]
1485    pub soid_type: ::core::option::Option<u32>,
1486    #[prost(fixed64, optional, tag = "2")]
1487    pub soid_id: ::core::option::Option<u64>,
1488}
1489#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1490#[repr(i32)]
1491pub enum ESourceEngine {
1492    KEseSource1 = 0,
1493    KEseSource2 = 1,
1494}
1495#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1496#[repr(i32)]
1497pub enum PartnerAccountType {
1498    PartnerNone = 0,
1499    PartnerPerfectWorld = 1,
1500    PartnerInvalid = 3,
1501}
1502#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1503#[repr(i32)]
1504pub enum GcConnectionStatus {
1505    HaveSession = 0,
1506    GcGoingDown = 1,
1507    NoSession = 2,
1508    NoSessionInLogonQueue = 3,
1509    NoSteam = 4,
1510    Suspended = 5,
1511    SteamGoingDown = 6,
1512}
1513#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1514pub struct CGcStorePurchaseInitLineItem {
1515    #[prost(uint32, optional, tag = "1")]
1516    pub item_def_id: ::core::option::Option<u32>,
1517    #[prost(uint32, optional, tag = "2")]
1518    pub quantity: ::core::option::Option<u32>,
1519    #[prost(uint32, optional, tag = "3")]
1520    pub cost_in_local_currency: ::core::option::Option<u32>,
1521    #[prost(uint32, optional, tag = "4")]
1522    pub purchase_type: ::core::option::Option<u32>,
1523    #[prost(uint64, optional, tag = "5")]
1524    pub source_reference_id: ::core::option::Option<u64>,
1525    #[prost(int32, optional, tag = "6")]
1526    pub price_index: ::core::option::Option<i32>,
1527}
1528#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1529pub struct CMsgGcStorePurchaseInit {
1530    #[prost(string, optional, tag = "1")]
1531    pub country: ::core::option::Option<::prost::alloc::string::String>,
1532    #[prost(int32, optional, tag = "2")]
1533    pub language: ::core::option::Option<i32>,
1534    #[prost(int32, optional, tag = "3")]
1535    pub currency: ::core::option::Option<i32>,
1536    #[prost(message, repeated, tag = "4")]
1537    pub line_items: ::prost::alloc::vec::Vec<CGcStorePurchaseInitLineItem>,
1538}
1539#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1540pub struct CMsgGcStorePurchaseInitResponse {
1541    #[prost(int32, optional, tag = "1")]
1542    pub result: ::core::option::Option<i32>,
1543    #[prost(uint64, optional, tag = "2")]
1544    pub txn_id: ::core::option::Option<u64>,
1545}
1546#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1547pub struct CMsgClientPingData {
1548    #[prost(fixed32, repeated, tag = "4")]
1549    pub relay_codes: ::prost::alloc::vec::Vec<u32>,
1550    #[prost(uint32, repeated, tag = "5")]
1551    pub relay_pings: ::prost::alloc::vec::Vec<u32>,
1552    #[prost(uint32, repeated, tag = "8")]
1553    pub region_codes: ::prost::alloc::vec::Vec<u32>,
1554    #[prost(uint32, repeated, tag = "9")]
1555    pub region_pings: ::prost::alloc::vec::Vec<u32>,
1556    #[prost(uint32, optional, tag = "10")]
1557    pub region_ping_failed_bitmask: ::core::option::Option<u32>,
1558}
1559#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1560pub struct CMsgInviteToParty {
1561    #[prost(fixed64, optional, tag = "1")]
1562    pub steam_id: ::core::option::Option<u64>,
1563    #[prost(uint32, optional, tag = "2")]
1564    pub client_version: ::core::option::Option<u32>,
1565    #[prost(uint32, optional, tag = "3")]
1566    pub team_id: ::core::option::Option<u32>,
1567    #[prost(bool, optional, tag = "4")]
1568    pub as_coach: ::core::option::Option<bool>,
1569    #[prost(message, optional, tag = "5")]
1570    pub ping_data: ::core::option::Option<CMsgClientPingData>,
1571}
1572#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1573pub struct CMsgInviteToLobby {
1574    #[prost(fixed64, optional, tag = "1")]
1575    pub steam_id: ::core::option::Option<u64>,
1576    #[prost(uint32, optional, tag = "2")]
1577    pub client_version: ::core::option::Option<u32>,
1578}
1579#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1580pub struct CMsgInvitationCreated {
1581    #[prost(uint64, optional, tag = "1")]
1582    pub group_id: ::core::option::Option<u64>,
1583    #[prost(fixed64, optional, tag = "2")]
1584    pub steam_id: ::core::option::Option<u64>,
1585    #[prost(bool, optional, tag = "3")]
1586    pub user_offline: ::core::option::Option<bool>,
1587}
1588#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1589pub struct CMsgPartyInviteResponse {
1590    #[prost(uint64, optional, tag = "1")]
1591    pub party_id: ::core::option::Option<u64>,
1592    #[prost(bool, optional, tag = "2")]
1593    pub accept: ::core::option::Option<bool>,
1594    #[prost(uint32, optional, tag = "3")]
1595    pub client_version: ::core::option::Option<u32>,
1596    #[prost(message, optional, tag = "8")]
1597    pub ping_data: ::core::option::Option<CMsgClientPingData>,
1598}
1599#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1600pub struct CMsgLobbyInviteResponse {
1601    #[prost(fixed64, optional, tag = "1")]
1602    pub lobby_id: ::core::option::Option<u64>,
1603    #[prost(bool, optional, tag = "2")]
1604    pub accept: ::core::option::Option<bool>,
1605    #[prost(uint32, optional, tag = "3")]
1606    pub client_version: ::core::option::Option<u32>,
1607    #[prost(fixed64, optional, tag = "6")]
1608    pub custom_game_crc: ::core::option::Option<u64>,
1609    #[prost(fixed32, optional, tag = "7")]
1610    pub custom_game_timestamp: ::core::option::Option<u32>,
1611}
1612#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1613pub struct CMsgKickFromParty {
1614    #[prost(fixed64, optional, tag = "1")]
1615    pub steam_id: ::core::option::Option<u64>,
1616}
1617#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1618pub struct CMsgLeaveParty {}
1619#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1620pub struct CMsgCustomGameInstallStatus {
1621    #[prost(enumeration = "ECustomGameInstallStatus", optional, tag = "1", default = "KECustomGameInstallStatusUnknown")]
1622    pub status: ::core::option::Option<i32>,
1623    #[prost(string, optional, tag = "2")]
1624    pub message: ::core::option::Option<::prost::alloc::string::String>,
1625    #[prost(fixed32, optional, tag = "3")]
1626    pub latest_timestamp_from_steam: ::core::option::Option<u32>,
1627}
1628#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1629pub struct CMsgServerAvailable {
1630    #[prost(message, optional, tag = "1")]
1631    pub custom_game_install_status: ::core::option::Option<CMsgCustomGameInstallStatus>,
1632}
1633#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1634pub struct CMsgLanServerAvailable {
1635    #[prost(fixed64, optional, tag = "1")]
1636    pub lobby_id: ::core::option::Option<u64>,
1637}
1638#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1639pub struct CSoEconGameAccountClient {
1640    #[prost(uint32, optional, tag = "1", default = "0")]
1641    pub additional_backpack_slots: ::core::option::Option<u32>,
1642    #[prost(bool, optional, tag = "2", default = "false")]
1643    pub trial_account: ::core::option::Option<bool>,
1644    #[prost(bool, optional, tag = "3", default = "true")]
1645    pub eligible_for_online_play: ::core::option::Option<bool>,
1646    #[prost(bool, optional, tag = "4")]
1647    pub need_to_choose_most_helpful_friend: ::core::option::Option<bool>,
1648    #[prost(bool, optional, tag = "5")]
1649    pub in_coaches_list: ::core::option::Option<bool>,
1650    #[prost(fixed32, optional, tag = "6")]
1651    pub trade_ban_expiration: ::core::option::Option<u32>,
1652    #[prost(fixed32, optional, tag = "7")]
1653    pub duel_ban_expiration: ::core::option::Option<u32>,
1654    #[prost(bool, optional, tag = "9", default = "false")]
1655    pub made_first_purchase: ::core::option::Option<bool>,
1656}
1657#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1658pub struct CMsgApplyStrangePart {
1659    #[prost(uint64, optional, tag = "1")]
1660    pub strange_part_item_id: ::core::option::Option<u64>,
1661    #[prost(uint64, optional, tag = "2")]
1662    pub item_item_id: ::core::option::Option<u64>,
1663}
1664#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1665pub struct CMsgApplyPennantUpgrade {
1666    #[prost(uint64, optional, tag = "1")]
1667    pub upgrade_item_id: ::core::option::Option<u64>,
1668    #[prost(uint64, optional, tag = "2")]
1669    pub pennant_item_id: ::core::option::Option<u64>,
1670}
1671#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1672pub struct CMsgApplyEggEssence {
1673    #[prost(uint64, optional, tag = "1")]
1674    pub essence_item_id: ::core::option::Option<u64>,
1675    #[prost(uint64, optional, tag = "2")]
1676    pub egg_item_id: ::core::option::Option<u64>,
1677}
1678#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1679pub struct CSoEconItemAttribute {
1680    #[prost(uint32, optional, tag = "1", default = "65535")]
1681    pub def_index: ::core::option::Option<u32>,
1682    #[prost(uint32, optional, tag = "2")]
1683    pub value: ::core::option::Option<u32>,
1684    #[prost(bytes = "vec", optional, tag = "3")]
1685    pub value_bytes: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1686}
1687#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1688pub struct CSoEconItemEquipped {
1689    #[prost(uint32, optional, tag = "1")]
1690    pub new_class: ::core::option::Option<u32>,
1691    #[prost(uint32, optional, tag = "2")]
1692    pub new_slot: ::core::option::Option<u32>,
1693}
1694#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1695pub struct CSoEconItem {
1696    #[prost(uint64, optional, tag = "1")]
1697    pub id: ::core::option::Option<u64>,
1698    #[prost(uint32, optional, tag = "2")]
1699    pub account_id: ::core::option::Option<u32>,
1700    #[prost(uint32, optional, tag = "3")]
1701    pub inventory: ::core::option::Option<u32>,
1702    #[prost(uint32, optional, tag = "4")]
1703    pub def_index: ::core::option::Option<u32>,
1704    #[prost(uint32, optional, tag = "5", default = "1")]
1705    pub quantity: ::core::option::Option<u32>,
1706    #[prost(uint32, optional, tag = "6", default = "1")]
1707    pub level: ::core::option::Option<u32>,
1708    #[prost(uint32, optional, tag = "7", default = "4")]
1709    pub quality: ::core::option::Option<u32>,
1710    #[prost(uint32, optional, tag = "8", default = "0")]
1711    pub flags: ::core::option::Option<u32>,
1712    #[prost(uint32, optional, tag = "9", default = "0")]
1713    pub origin: ::core::option::Option<u32>,
1714    #[prost(message, repeated, tag = "12")]
1715    pub attribute: ::prost::alloc::vec::Vec<CSoEconItemAttribute>,
1716    #[prost(message, optional, boxed, tag = "13")]
1717    pub interior_item: ::core::option::Option<::prost::alloc::boxed::Box<CSoEconItem>>,
1718    #[prost(uint32, optional, tag = "15", default = "0")]
1719    pub style: ::core::option::Option<u32>,
1720    #[prost(uint64, optional, tag = "16")]
1721    pub original_id: ::core::option::Option<u64>,
1722    #[prost(message, repeated, tag = "18")]
1723    pub equipped_state: ::prost::alloc::vec::Vec<CSoEconItemEquipped>,
1724}
1725#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1726pub struct CMsgSortItems {
1727    #[prost(uint32, optional, tag = "1")]
1728    pub sort_type: ::core::option::Option<u32>,
1729}
1730#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1731pub struct CMsgItemAcknowledged {
1732    #[prost(uint32, optional, tag = "1")]
1733    pub account_id: ::core::option::Option<u32>,
1734    #[prost(uint32, optional, tag = "2")]
1735    pub inventory: ::core::option::Option<u32>,
1736    #[prost(uint32, optional, tag = "3")]
1737    pub def_index: ::core::option::Option<u32>,
1738    #[prost(uint32, optional, tag = "4")]
1739    pub quality: ::core::option::Option<u32>,
1740    #[prost(uint32, optional, tag = "5")]
1741    pub rarity: ::core::option::Option<u32>,
1742    #[prost(uint32, optional, tag = "6")]
1743    pub origin: ::core::option::Option<u32>,
1744}
1745#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1746pub struct CMsgSetItemPositions {
1747    #[prost(message, repeated, tag = "1")]
1748    pub item_positions: ::prost::alloc::vec::Vec<c_msg_set_item_positions::ItemPosition>,
1749}
1750pub mod c_msg_set_item_positions {
1751    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1752    pub struct ItemPosition {
1753        #[prost(uint64, optional, tag = "1")]
1754        pub item_id: ::core::option::Option<u64>,
1755        #[prost(uint32, optional, tag = "2")]
1756        pub position: ::core::option::Option<u32>,
1757    }
1758}
1759#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1760pub struct CMsgGcStorePurchaseCancel {
1761    #[prost(uint64, optional, tag = "1")]
1762    pub txn_id: ::core::option::Option<u64>,
1763}
1764#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1765pub struct CMsgGcStorePurchaseCancelResponse {
1766    #[prost(uint32, optional, tag = "1")]
1767    pub result: ::core::option::Option<u32>,
1768}
1769#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1770pub struct CMsgGcStorePurchaseFinalize {
1771    #[prost(uint64, optional, tag = "1")]
1772    pub txn_id: ::core::option::Option<u64>,
1773}
1774#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1775pub struct CMsgGcStorePurchaseFinalizeResponse {
1776    #[prost(uint32, optional, tag = "1")]
1777    pub result: ::core::option::Option<u32>,
1778    #[prost(uint64, repeated, packed = "false", tag = "2")]
1779    pub item_ids: ::prost::alloc::vec::Vec<u64>,
1780}
1781#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1782pub struct CMsgGcToGcBannedWordListUpdated {
1783    #[prost(uint32, optional, tag = "1")]
1784    pub group_id: ::core::option::Option<u32>,
1785}
1786#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1787pub struct CMsgGcToGcDirtySdoCache {
1788    #[prost(uint32, optional, tag = "1")]
1789    pub sdo_type: ::core::option::Option<u32>,
1790    #[prost(uint64, optional, tag = "2")]
1791    pub key_uint64: ::core::option::Option<u64>,
1792}
1793#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1794pub struct CMsgSdoNoMemcached {}
1795#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1796pub struct CMsgGcToGcUpdateSqlKeyValue {
1797    #[prost(string, optional, tag = "1")]
1798    pub key_name: ::core::option::Option<::prost::alloc::string::String>,
1799}
1800#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1801pub struct CMsgGcServerVersionUpdated {
1802    #[prost(uint32, optional, tag = "1")]
1803    pub server_version: ::core::option::Option<u32>,
1804}
1805#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1806pub struct CMsgGcClientVersionUpdated {
1807    #[prost(uint32, optional, tag = "1")]
1808    pub client_version: ::core::option::Option<u32>,
1809}
1810#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1811pub struct CMsgGcToGcWebApiAccountChanged {}
1812#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1813pub struct CMsgExtractGems {
1814    #[prost(uint64, optional, tag = "1")]
1815    pub tool_item_id: ::core::option::Option<u64>,
1816    #[prost(uint64, optional, tag = "2")]
1817    pub item_item_id: ::core::option::Option<u64>,
1818    #[prost(uint32, optional, tag = "3", default = "65535")]
1819    pub item_socket_id: ::core::option::Option<u32>,
1820}
1821#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1822pub struct CMsgExtractGemsResponse {
1823    #[prost(uint64, optional, tag = "1")]
1824    pub item_id: ::core::option::Option<u64>,
1825    #[prost(enumeration = "c_msg_extract_gems_response::EExtractGems", optional, tag = "2", default = "KExtractGemsSucceeded")]
1826    pub response: ::core::option::Option<i32>,
1827}
1828pub mod c_msg_extract_gems_response {
1829    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1830    #[repr(i32)]
1831    pub enum EExtractGems {
1832        KExtractGemsSucceeded = 0,
1833        KExtractGemsFailedToolIsInvalid = 1,
1834        KExtractGemsFailedItemIsInvalid = 2,
1835        KExtractGemsFailedToolCannotRemoveGem = 3,
1836        KExtractGemsFailedFailedToRemoveGem = 4,
1837    }
1838}
1839#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1840pub struct CMsgAddSocket {
1841    #[prost(uint64, optional, tag = "1")]
1842    pub tool_item_id: ::core::option::Option<u64>,
1843    #[prost(uint64, optional, tag = "2")]
1844    pub item_item_id: ::core::option::Option<u64>,
1845    #[prost(bool, optional, tag = "3")]
1846    pub unusual: ::core::option::Option<bool>,
1847}
1848#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1849pub struct CMsgAddSocketResponse {
1850    #[prost(uint64, optional, tag = "1")]
1851    pub item_id: ::core::option::Option<u64>,
1852    #[prost(uint32, repeated, packed = "false", tag = "2")]
1853    pub updated_socket_index: ::prost::alloc::vec::Vec<u32>,
1854    #[prost(enumeration = "c_msg_add_socket_response::EAddSocket", optional, tag = "3", default = "KAddSocketSucceeded")]
1855    pub response: ::core::option::Option<i32>,
1856}
1857pub mod c_msg_add_socket_response {
1858    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1859    #[repr(i32)]
1860    pub enum EAddSocket {
1861        KAddSocketSucceeded = 0,
1862        KAddSocketFailedToolIsInvalid = 1,
1863        KAddSocketFailedItemCannotBeSocketed = 2,
1864        KAddSocketFailedFailedToAddSocket = 3,
1865    }
1866}
1867#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1868pub struct CMsgAddItemToSocketData {
1869    #[prost(uint64, optional, tag = "1")]
1870    pub gem_item_id: ::core::option::Option<u64>,
1871    #[prost(uint32, optional, tag = "2", default = "65535")]
1872    pub socket_index: ::core::option::Option<u32>,
1873}
1874#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1875pub struct CMsgAddItemToSocket {
1876    #[prost(uint64, optional, tag = "1")]
1877    pub item_item_id: ::core::option::Option<u64>,
1878    #[prost(message, repeated, tag = "2")]
1879    pub gems_to_socket: ::prost::alloc::vec::Vec<CMsgAddItemToSocketData>,
1880}
1881#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1882pub struct CMsgAddItemToSocketResponse {
1883    #[prost(uint64, optional, tag = "1")]
1884    pub item_item_id: ::core::option::Option<u64>,
1885    #[prost(uint32, repeated, packed = "false", tag = "2")]
1886    pub updated_socket_index: ::prost::alloc::vec::Vec<u32>,
1887    #[prost(enumeration = "c_msg_add_item_to_socket_response::EAddGem", optional, tag = "3", default = "KAddGemSucceeded")]
1888    pub response: ::core::option::Option<i32>,
1889}
1890pub mod c_msg_add_item_to_socket_response {
1891    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1892    #[repr(i32)]
1893    pub enum EAddGem {
1894        KAddGemSucceeded = 0,
1895        KAddGemFailedGemIsInvalid = 1,
1896        KAddGemFailedItemIsInvalid = 2,
1897        KAddGemFailedFailedToAddGem = 3,
1898        KAddGemFailedInvalidGemTypeForSocket = 4,
1899        KAddGemFailedInvalidGemTypeForHero = 5,
1900        KAddGemFailedInvalidGemTypeForSlot = 6,
1901        KAddGemFailedSocketContainsUnremovableGem = 7,
1902    }
1903}
1904#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1905pub struct CMsgResetStrangeGemCount {
1906    #[prost(uint64, optional, tag = "1")]
1907    pub item_item_id: ::core::option::Option<u64>,
1908    #[prost(uint32, optional, tag = "2", default = "65535")]
1909    pub socket_index: ::core::option::Option<u32>,
1910}
1911#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1912pub struct CMsgResetStrangeGemCountResponse {
1913    #[prost(enumeration = "c_msg_reset_strange_gem_count_response::EResetGem", optional, tag = "1", default = "KResetGemSucceeded")]
1914    pub response: ::core::option::Option<i32>,
1915}
1916pub mod c_msg_reset_strange_gem_count_response {
1917    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1918    #[repr(i32)]
1919    pub enum EResetGem {
1920        KResetGemSucceeded = 0,
1921        KResetGemFailedFailedToResetGem = 1,
1922        KResetGemFailedItemIsInvalid = 2,
1923        KResetGemFailedInvalidSocketId = 3,
1924        KResetGemFailedSocketCannotBeReset = 4,
1925    }
1926}
1927#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1928pub struct CMsgGcToClientPollFileRequest {
1929    #[prost(string, optional, tag = "1")]
1930    pub file_name: ::core::option::Option<::prost::alloc::string::String>,
1931    #[prost(uint32, optional, tag = "2")]
1932    pub client_version: ::core::option::Option<u32>,
1933    #[prost(uint32, optional, tag = "3")]
1934    pub poll_id: ::core::option::Option<u32>,
1935}
1936#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1937pub struct CMsgGcToClientPollFileResponse {
1938    #[prost(uint32, optional, tag = "1")]
1939    pub poll_id: ::core::option::Option<u32>,
1940    #[prost(uint32, optional, tag = "2")]
1941    pub file_size: ::core::option::Option<u32>,
1942    #[prost(uint32, optional, tag = "3")]
1943    pub file_crc: ::core::option::Option<u32>,
1944}
1945#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1946pub struct CMsgGcToGcPerformManualOp {
1947    #[prost(uint64, optional, tag = "1")]
1948    pub op_id: ::core::option::Option<u64>,
1949    #[prost(uint32, optional, tag = "2")]
1950    pub group_code: ::core::option::Option<u32>,
1951}
1952#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1953pub struct CMsgGcToGcPerformManualOpCompleted {
1954    #[prost(bool, optional, tag = "1")]
1955    pub success: ::core::option::Option<bool>,
1956    #[prost(int32, optional, tag = "2", default = "-1")]
1957    pub source_gc: ::core::option::Option<i32>,
1958}
1959#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1960pub struct CMsgGcToGcReloadServerRegionSettings {}
1961#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1962pub struct CMsgGcAdditionalWelcomeMsgList {
1963    #[prost(message, repeated, tag = "1")]
1964    pub welcome_messages: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
1965}
1966#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1967pub struct CMsgApplyRemoteConVars {
1968    #[prost(message, repeated, tag = "1")]
1969    pub con_vars: ::prost::alloc::vec::Vec<c_msg_apply_remote_con_vars::ConVar>,
1970}
1971pub mod c_msg_apply_remote_con_vars {
1972    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1973    pub struct ConVar {
1974        #[prost(string, optional, tag = "1")]
1975        pub name: ::core::option::Option<::prost::alloc::string::String>,
1976        #[prost(string, optional, tag = "2")]
1977        pub value: ::core::option::Option<::prost::alloc::string::String>,
1978        #[prost(uint32, optional, tag = "3")]
1979        pub version_min: ::core::option::Option<u32>,
1980        #[prost(uint32, optional, tag = "4")]
1981        pub version_max: ::core::option::Option<u32>,
1982        #[prost(enumeration = "super::EgcPlatform", optional, tag = "5", default = "KEGcPlatformNone")]
1983        pub platform: ::core::option::Option<i32>,
1984    }
1985}
1986#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1987pub struct CMsgGcToClientApplyRemoteConVars {
1988    #[prost(message, optional, tag = "1")]
1989    pub msg: ::core::option::Option<CMsgApplyRemoteConVars>,
1990}
1991#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1992pub struct CMsgGcToServerApplyRemoteConVars {
1993    #[prost(message, optional, tag = "1")]
1994    pub msg: ::core::option::Option<CMsgApplyRemoteConVars>,
1995}
1996#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1997pub struct CMsgClientToGcIntegrityStatus {
1998    #[prost(string, optional, tag = "1")]
1999    pub report: ::core::option::Option<::prost::alloc::string::String>,
2000    #[prost(bool, optional, tag = "2")]
2001    pub secure_allowed: ::core::option::Option<bool>,
2002    #[prost(message, repeated, tag = "3")]
2003    pub diagnostics: ::prost::alloc::vec::Vec<c_msg_client_to_gc_integrity_status::Keyvalue>,
2004}
2005pub mod c_msg_client_to_gc_integrity_status {
2006    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2007    pub struct Keyvalue {
2008        #[prost(uint32, optional, tag = "1")]
2009        pub id: ::core::option::Option<u32>,
2010        #[prost(uint32, optional, tag = "2")]
2011        pub extended: ::core::option::Option<u32>,
2012        #[prost(uint64, optional, tag = "3")]
2013        pub value: ::core::option::Option<u64>,
2014        #[prost(string, optional, tag = "4")]
2015        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
2016    }
2017}
2018#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2019pub struct CMsgClientToGcAggregateMetrics {
2020    #[prost(message, repeated, tag = "1")]
2021    pub metrics: ::prost::alloc::vec::Vec<c_msg_client_to_gc_aggregate_metrics::SingleMetric>,
2022}
2023pub mod c_msg_client_to_gc_aggregate_metrics {
2024    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2025    pub struct SingleMetric {
2026        #[prost(string, optional, tag = "1")]
2027        pub metric_name: ::core::option::Option<::prost::alloc::string::String>,
2028        #[prost(uint32, optional, tag = "2")]
2029        pub metric_count: ::core::option::Option<u32>,
2030    }
2031}
2032#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2033pub struct CMsgGcToClientAggregateMetricsBackoff {
2034    #[prost(float, optional, tag = "1")]
2035    pub upload_rate_modifier: ::core::option::Option<f32>,
2036}
2037#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2038pub struct CMsgGcToServerSteamLearnAccessTokensChanged {
2039    #[prost(message, optional, tag = "1")]
2040    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
2041}
2042#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2043pub struct CMsgGcToServerSteamLearnUseHttp {
2044    #[prost(bool, optional, tag = "1")]
2045    pub use_http: ::core::option::Option<bool>,
2046}
2047#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2048#[repr(i32)]
2049pub enum EgcBaseMsg {
2050    KEMsgGcInviteToParty = 4501,
2051    KEMsgGcInvitationCreated = 4502,
2052    KEMsgGcPartyInviteResponse = 4503,
2053    KEMsgGcKickFromParty = 4504,
2054    KEMsgGcLeaveParty = 4505,
2055    KEMsgGcServerAvailable = 4506,
2056    KEMsgGcClientConnectToServer = 4507,
2057    KEMsgGcGameServerInfo = 4508,
2058    KEMsgGclanServerAvailable = 4511,
2059    KEMsgGcInviteToLobby = 4512,
2060    KEMsgGcLobbyInviteResponse = 4513,
2061    KEMsgGcToClientPollFileRequest = 4514,
2062    KEMsgGcToClientPollFileResponse = 4515,
2063    KEMsgGcToGcPerformManualOp = 4516,
2064    KEMsgGcToGcPerformManualOpCompleted = 4517,
2065    KEMsgGcToGcReloadServerRegionSettings = 4518,
2066    KEMsgGcAdditionalWelcomeMsgList = 4519,
2067    KEMsgGcToClientApplyRemoteConVars = 4520,
2068    KEMsgGcToServerApplyRemoteConVars = 4521,
2069    KEMsgClientToGcIntegrityStatus = 4522,
2070    KEMsgClientToGcAggregateMetrics = 4523,
2071    KEMsgGcToClientAggregateMetricsBackoff = 4524,
2072    KEMsgGcToServerSteamLearnAccessTokensChanged = 4525,
2073    KEMsgGcToServerSteamLearnUseHttp = 4526,
2074}
2075#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2076#[repr(i32)]
2077pub enum ECustomGameInstallStatus {
2078    KECustomGameInstallStatusUnknown = 0,
2079    KECustomGameInstallStatusReady = 1,
2080    KECustomGameInstallStatusBusy = 2,
2081    KECustomGameInstallStatusFailedGeneric = 101,
2082    KECustomGameInstallStatusFailedInternalError = 102,
2083    KECustomGameInstallStatusRequestedTimestampTooOld = 103,
2084    KECustomGameInstallStatusRequestedTimestampTooNew = 104,
2085    KECustomGameInstallStatusCrcMismatch = 105,
2086    KECustomGameInstallStatusFailedSteam = 106,
2087    KECustomGameInstallStatusFailedCanceled = 107,
2088}
2089#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2090pub struct CDemoFileHeader {
2091    #[prost(string, required, tag = "1")]
2092    pub demo_file_stamp: ::prost::alloc::string::String,
2093    #[prost(int32, optional, tag = "2")]
2094    pub patch_version: ::core::option::Option<i32>,
2095    #[prost(string, optional, tag = "3")]
2096    pub server_name: ::core::option::Option<::prost::alloc::string::String>,
2097    #[prost(string, optional, tag = "4")]
2098    pub client_name: ::core::option::Option<::prost::alloc::string::String>,
2099    #[prost(string, optional, tag = "5")]
2100    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
2101    #[prost(string, optional, tag = "6")]
2102    pub game_directory: ::core::option::Option<::prost::alloc::string::String>,
2103    #[prost(int32, optional, tag = "7")]
2104    pub fullpackets_version: ::core::option::Option<i32>,
2105    #[prost(bool, optional, tag = "8")]
2106    pub allow_clientside_entities: ::core::option::Option<bool>,
2107    #[prost(bool, optional, tag = "9")]
2108    pub allow_clientside_particles: ::core::option::Option<bool>,
2109    #[prost(string, optional, tag = "10")]
2110    pub addons: ::core::option::Option<::prost::alloc::string::String>,
2111    #[prost(string, optional, tag = "11")]
2112    pub demo_version_name: ::core::option::Option<::prost::alloc::string::String>,
2113    #[prost(string, optional, tag = "12")]
2114    pub demo_version_guid: ::core::option::Option<::prost::alloc::string::String>,
2115    #[prost(int32, optional, tag = "13")]
2116    pub build_num: ::core::option::Option<i32>,
2117    #[prost(string, optional, tag = "14")]
2118    pub game: ::core::option::Option<::prost::alloc::string::String>,
2119    #[prost(int32, optional, tag = "15")]
2120    pub server_start_tick: ::core::option::Option<i32>,
2121}
2122#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2123pub struct CGameInfo {
2124    #[prost(message, optional, tag = "4")]
2125    pub dota: ::core::option::Option<c_game_info::CDotaGameInfo>,
2126    #[prost(message, optional, tag = "5")]
2127    pub cs: ::core::option::Option<c_game_info::CCsGameInfo>,
2128}
2129pub mod c_game_info {
2130    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2131    pub struct CDotaGameInfo {
2132        #[prost(uint64, optional, tag = "1")]
2133        pub match_id: ::core::option::Option<u64>,
2134        #[prost(int32, optional, tag = "2")]
2135        pub game_mode: ::core::option::Option<i32>,
2136        #[prost(int32, optional, tag = "3")]
2137        pub game_winner: ::core::option::Option<i32>,
2138        #[prost(message, repeated, tag = "4")]
2139        pub player_info: ::prost::alloc::vec::Vec<c_dota_game_info::CPlayerInfo>,
2140        #[prost(uint32, optional, tag = "5")]
2141        pub leagueid: ::core::option::Option<u32>,
2142        #[prost(message, repeated, tag = "6")]
2143        pub picks_bans: ::prost::alloc::vec::Vec<c_dota_game_info::CHeroSelectEvent>,
2144        #[prost(uint32, optional, tag = "7")]
2145        pub radiant_team_id: ::core::option::Option<u32>,
2146        #[prost(uint32, optional, tag = "8")]
2147        pub dire_team_id: ::core::option::Option<u32>,
2148        #[prost(string, optional, tag = "9")]
2149        pub radiant_team_tag: ::core::option::Option<::prost::alloc::string::String>,
2150        #[prost(string, optional, tag = "10")]
2151        pub dire_team_tag: ::core::option::Option<::prost::alloc::string::String>,
2152        #[prost(uint32, optional, tag = "11")]
2153        pub end_time: ::core::option::Option<u32>,
2154    }
2155    pub mod c_dota_game_info {
2156        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2157        pub struct CPlayerInfo {
2158            #[prost(string, optional, tag = "1")]
2159            pub hero_name: ::core::option::Option<::prost::alloc::string::String>,
2160            #[prost(string, optional, tag = "2")]
2161            pub player_name: ::core::option::Option<::prost::alloc::string::String>,
2162            #[prost(bool, optional, tag = "3")]
2163            pub is_fake_client: ::core::option::Option<bool>,
2164            #[prost(uint64, optional, tag = "4")]
2165            pub steamid: ::core::option::Option<u64>,
2166            #[prost(int32, optional, tag = "5")]
2167            pub game_team: ::core::option::Option<i32>,
2168        }
2169        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2170        pub struct CHeroSelectEvent {
2171            #[prost(bool, optional, tag = "1")]
2172            pub is_pick: ::core::option::Option<bool>,
2173            #[prost(uint32, optional, tag = "2")]
2174            pub team: ::core::option::Option<u32>,
2175            #[prost(int32, optional, tag = "3")]
2176            pub hero_id: ::core::option::Option<i32>,
2177        }
2178    }
2179    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2180    pub struct CCsGameInfo {
2181        #[prost(int32, repeated, packed = "false", tag = "1")]
2182        pub round_start_ticks: ::prost::alloc::vec::Vec<i32>,
2183    }
2184}
2185#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2186pub struct CDemoFileInfo {
2187    #[prost(float, optional, tag = "1")]
2188    pub playback_time: ::core::option::Option<f32>,
2189    #[prost(int32, optional, tag = "2")]
2190    pub playback_ticks: ::core::option::Option<i32>,
2191    #[prost(int32, optional, tag = "3")]
2192    pub playback_frames: ::core::option::Option<i32>,
2193    #[prost(message, optional, tag = "4")]
2194    pub game_info: ::core::option::Option<CGameInfo>,
2195}
2196#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2197pub struct CDemoPacket {
2198    #[prost(bytes = "vec", optional, tag = "3")]
2199    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2200}
2201#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2202pub struct CDemoFullPacket {
2203    #[prost(message, optional, tag = "1")]
2204    pub string_table: ::core::option::Option<CDemoStringTables>,
2205    #[prost(message, optional, tag = "2")]
2206    pub packet: ::core::option::Option<CDemoPacket>,
2207}
2208#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2209pub struct CDemoSaveGame {
2210    #[prost(bytes = "vec", optional, tag = "1")]
2211    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2212    #[prost(fixed64, optional, tag = "2")]
2213    pub steam_id: ::core::option::Option<u64>,
2214    #[prost(fixed64, optional, tag = "3")]
2215    pub signature: ::core::option::Option<u64>,
2216    #[prost(int32, optional, tag = "4")]
2217    pub version: ::core::option::Option<i32>,
2218}
2219#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2220pub struct CDemoSyncTick {}
2221#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2222pub struct CDemoConsoleCmd {
2223    #[prost(string, optional, tag = "1")]
2224    pub cmdstring: ::core::option::Option<::prost::alloc::string::String>,
2225}
2226#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2227pub struct CDemoSendTables {
2228    #[prost(bytes = "vec", optional, tag = "1")]
2229    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2230}
2231#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2232pub struct CDemoClassInfo {
2233    #[prost(message, repeated, tag = "1")]
2234    pub classes: ::prost::alloc::vec::Vec<c_demo_class_info::ClassT>,
2235}
2236pub mod c_demo_class_info {
2237    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2238    pub struct ClassT {
2239        #[prost(int32, optional, tag = "1")]
2240        pub class_id: ::core::option::Option<i32>,
2241        #[prost(string, optional, tag = "2")]
2242        pub network_name: ::core::option::Option<::prost::alloc::string::String>,
2243        #[prost(string, optional, tag = "3")]
2244        pub table_name: ::core::option::Option<::prost::alloc::string::String>,
2245    }
2246}
2247#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2248pub struct CDemoCustomData {
2249    #[prost(int32, optional, tag = "1")]
2250    pub callback_index: ::core::option::Option<i32>,
2251    #[prost(bytes = "vec", optional, tag = "2")]
2252    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2253}
2254#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2255pub struct CDemoCustomDataCallbacks {
2256    #[prost(string, repeated, tag = "1")]
2257    pub save_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2258}
2259#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2260pub struct CDemoAnimationHeader {
2261    #[prost(sint32, optional, tag = "1")]
2262    pub entity_id: ::core::option::Option<i32>,
2263    #[prost(int32, optional, tag = "2")]
2264    pub tick: ::core::option::Option<i32>,
2265    #[prost(bytes = "vec", optional, tag = "3")]
2266    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2267}
2268#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2269pub struct CDemoAnimationData {
2270    #[prost(sint32, optional, tag = "1")]
2271    pub entity_id: ::core::option::Option<i32>,
2272    #[prost(int32, optional, tag = "2")]
2273    pub start_tick: ::core::option::Option<i32>,
2274    #[prost(int32, optional, tag = "3")]
2275    pub end_tick: ::core::option::Option<i32>,
2276    #[prost(bytes = "vec", optional, tag = "4")]
2277    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2278    #[prost(int64, optional, tag = "5")]
2279    pub data_checksum: ::core::option::Option<i64>,
2280}
2281#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2282pub struct CDemoStringTables {
2283    #[prost(message, repeated, tag = "1")]
2284    pub tables: ::prost::alloc::vec::Vec<c_demo_string_tables::TableT>,
2285}
2286pub mod c_demo_string_tables {
2287    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2288    pub struct ItemsT {
2289        #[prost(string, optional, tag = "1")]
2290        pub str: ::core::option::Option<::prost::alloc::string::String>,
2291        #[prost(bytes = "vec", optional, tag = "2")]
2292        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2293    }
2294    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2295    pub struct TableT {
2296        #[prost(string, optional, tag = "1")]
2297        pub table_name: ::core::option::Option<::prost::alloc::string::String>,
2298        #[prost(message, repeated, tag = "2")]
2299        pub items: ::prost::alloc::vec::Vec<ItemsT>,
2300        #[prost(message, repeated, tag = "3")]
2301        pub items_clientside: ::prost::alloc::vec::Vec<ItemsT>,
2302        #[prost(int32, optional, tag = "4")]
2303        pub table_flags: ::core::option::Option<i32>,
2304    }
2305}
2306#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2307pub struct CDemoStop {}
2308#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2309pub struct CDemoUserCmd {
2310    #[prost(int32, optional, tag = "1")]
2311    pub cmd_number: ::core::option::Option<i32>,
2312    #[prost(bytes = "vec", optional, tag = "2")]
2313    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2314}
2315#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2316pub struct CDemoSpawnGroups {
2317    #[prost(bytes = "vec", repeated, tag = "3")]
2318    pub msgs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
2319}
2320#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2321pub struct CDemoSpawnGroupsHltvBroadcast {
2322    #[prost(bytes = "vec", optional, tag = "1")]
2323    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2324}
2325#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2326pub struct CDemoRecovery {
2327    #[prost(message, optional, tag = "1")]
2328    pub initial_spawn_group: ::core::option::Option<c_demo_recovery::DemoInitialSpawnGroupEntry>,
2329    #[prost(bytes = "vec", optional, tag = "2")]
2330    pub spawn_group_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2331}
2332pub mod c_demo_recovery {
2333    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2334    pub struct DemoInitialSpawnGroupEntry {
2335        #[prost(uint32, optional, tag = "1")]
2336        pub spawngrouphandle: ::core::option::Option<u32>,
2337        #[prost(bool, optional, tag = "2")]
2338        pub was_created: ::core::option::Option<bool>,
2339    }
2340}
2341#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2342#[repr(i32)]
2343pub enum EDemoCommands {
2344    DemError = -1,
2345    DemStop = 0,
2346    DemFileHeader = 1,
2347    DemFileInfo = 2,
2348    DemSyncTick = 3,
2349    DemSendTables = 4,
2350    DemClassInfo = 5,
2351    DemStringTables = 6,
2352    DemPacket = 7,
2353    DemSignonPacket = 8,
2354    DemConsoleCmd = 9,
2355    DemCustomData = 10,
2356    DemCustomDataCallbacks = 11,
2357    DemUserCmd = 12,
2358    DemFullPacket = 13,
2359    DemSaveGame = 14,
2360    DemSpawnGroups = 15,
2361    DemAnimationData = 16,
2362    DemAnimationHeader = 17,
2363    DemRecovery = 18,
2364    DemMax = 19,
2365    DemIsCompressed = 64,
2366}
2367#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2368#[repr(i32)]
2369pub enum ENetworkDisconnectionReason {
2370    NetworkDisconnectInvalid = 0,
2371    NetworkDisconnectShutdown = 1,
2372    NetworkDisconnectDisconnectByUser = 2,
2373    NetworkDisconnectDisconnectByServer = 3,
2374    NetworkDisconnectLost = 4,
2375    NetworkDisconnectOverflow = 5,
2376    NetworkDisconnectSteamBanned = 6,
2377    NetworkDisconnectSteamInuse = 7,
2378    NetworkDisconnectSteamTicket = 8,
2379    NetworkDisconnectSteamLogon = 9,
2380    NetworkDisconnectSteamAuthcancelled = 10,
2381    NetworkDisconnectSteamAuthalreadyused = 11,
2382    NetworkDisconnectSteamAuthinvalid = 12,
2383    NetworkDisconnectSteamVacbanstate = 13,
2384    NetworkDisconnectSteamLoggedInElsewhere = 14,
2385    NetworkDisconnectSteamVacCheckTimedout = 15,
2386    NetworkDisconnectSteamDropped = 16,
2387    NetworkDisconnectSteamOwnership = 17,
2388    NetworkDisconnectServerinfoOverflow = 18,
2389    NetworkDisconnectTickmsgOverflow = 19,
2390    NetworkDisconnectStringtablemsgOverflow = 20,
2391    NetworkDisconnectDeltaentmsgOverflow = 21,
2392    NetworkDisconnectTempentmsgOverflow = 22,
2393    NetworkDisconnectSoundsmsgOverflow = 23,
2394    NetworkDisconnectSnapshotoverflow = 24,
2395    NetworkDisconnectSnapshoterror = 25,
2396    NetworkDisconnectReliableoverflow = 26,
2397    NetworkDisconnectBaddeltatick = 27,
2398    NetworkDisconnectNomoresplits = 28,
2399    NetworkDisconnectTimedout = 29,
2400    NetworkDisconnectDisconnected = 30,
2401    NetworkDisconnectLeavingsplit = 31,
2402    NetworkDisconnectDifferentclasstables = 32,
2403    NetworkDisconnectBadrelaypassword = 33,
2404    NetworkDisconnectBadspectatorpassword = 34,
2405    NetworkDisconnectHltvrestricted = 35,
2406    NetworkDisconnectNospectators = 36,
2407    NetworkDisconnectHltvunavailable = 37,
2408    NetworkDisconnectHltvstop = 38,
2409    NetworkDisconnectKicked = 39,
2410    NetworkDisconnectBanadded = 40,
2411    NetworkDisconnectKickbanadded = 41,
2412    NetworkDisconnectHltvdirect = 42,
2413    NetworkDisconnectPureserverClientextra = 43,
2414    NetworkDisconnectPureserverMismatch = 44,
2415    NetworkDisconnectUsercmd = 45,
2416    NetworkDisconnectRejectedByGame = 46,
2417    NetworkDisconnectMessageParseError = 47,
2418    NetworkDisconnectInvalidMessageError = 48,
2419    NetworkDisconnectBadServerPassword = 49,
2420    NetworkDisconnectDirectConnectReservation = 50,
2421    NetworkDisconnectConnectionFailure = 51,
2422    NetworkDisconnectNoPeerGroupHandlers = 52,
2423    NetworkDisconnectReconnection = 53,
2424    NetworkDisconnectLoopshutdown = 54,
2425    NetworkDisconnectLoopdeactivate = 55,
2426    NetworkDisconnectHostEndgame = 56,
2427    NetworkDisconnectLoopLevelloadActivate = 57,
2428    NetworkDisconnectCreateServerFailed = 58,
2429    NetworkDisconnectExiting = 59,
2430    NetworkDisconnectRequestHoststateIdle = 60,
2431    NetworkDisconnectRequestHoststateHltvrelay = 61,
2432    NetworkDisconnectClientConsistencyFail = 62,
2433    NetworkDisconnectClientUnableToCrcMap = 63,
2434    NetworkDisconnectClientNoMap = 64,
2435    NetworkDisconnectClientDifferentMap = 65,
2436    NetworkDisconnectServerRequiresSteam = 66,
2437    NetworkDisconnectSteamDenyMisc = 67,
2438    NetworkDisconnectSteamDenyBadAntiCheat = 68,
2439    NetworkDisconnectServerShutdown = 69,
2440    NetworkDisconnectReplayIncompatible = 71,
2441    NetworkDisconnectConnectRequestTimedout = 72,
2442    NetworkDisconnectServerIncompatible = 73,
2443    NetworkDisconnectLocalproblemManyrelays = 74,
2444    NetworkDisconnectLocalproblemHostedserverprimaryrelay = 75,
2445    NetworkDisconnectLocalproblemNetworkconfig = 76,
2446    NetworkDisconnectLocalproblemOther = 77,
2447    NetworkDisconnectRemoteTimeout = 79,
2448    NetworkDisconnectRemoteTimeoutConnecting = 80,
2449    NetworkDisconnectRemoteOther = 81,
2450    NetworkDisconnectRemoteBadcrypt = 82,
2451    NetworkDisconnectRemoteCertnottrusted = 83,
2452    NetworkDisconnectUnusual = 84,
2453    NetworkDisconnectInternalError = 85,
2454    NetworkDisconnectRejectBadchallenge = 128,
2455    NetworkDisconnectRejectNolobby = 129,
2456    NetworkDisconnectRejectBackgroundMap = 130,
2457    NetworkDisconnectRejectSinglePlayer = 131,
2458    NetworkDisconnectRejectHiddenGame = 132,
2459    NetworkDisconnectRejectLanrestrict = 133,
2460    NetworkDisconnectRejectBadpassword = 134,
2461    NetworkDisconnectRejectServerfull = 135,
2462    NetworkDisconnectRejectInvalidreservation = 136,
2463    NetworkDisconnectRejectFailedchannel = 137,
2464    NetworkDisconnectRejectConnectFromLobby = 138,
2465    NetworkDisconnectRejectReservedForLobby = 139,
2466    NetworkDisconnectRejectInvalidkeylength = 140,
2467    NetworkDisconnectRejectOldprotocol = 141,
2468    NetworkDisconnectRejectNewprotocol = 142,
2469    NetworkDisconnectRejectInvalidconnection = 143,
2470    NetworkDisconnectRejectInvalidcertlen = 144,
2471    NetworkDisconnectRejectInvalidsteamcertlen = 145,
2472    NetworkDisconnectRejectSteam = 146,
2473    NetworkDisconnectRejectServerauthdisabled = 147,
2474    NetworkDisconnectRejectServercdkeyauthinvalid = 148,
2475    NetworkDisconnectRejectBanned = 149,
2476    NetworkDisconnectKickedTeamkilling = 150,
2477    NetworkDisconnectKickedTkStart = 151,
2478    NetworkDisconnectKickedUntrustedaccount = 152,
2479    NetworkDisconnectKickedConvictedaccount = 153,
2480    NetworkDisconnectKickedCompetitivecooldown = 154,
2481    NetworkDisconnectKickedTeamhurting = 155,
2482    NetworkDisconnectKickedHostagekilling = 156,
2483    NetworkDisconnectKickedVotedoff = 157,
2484    NetworkDisconnectKickedIdle = 158,
2485    NetworkDisconnectKickedSuicide = 159,
2486    NetworkDisconnectKickedNosteamlogin = 160,
2487    NetworkDisconnectKickedNosteamticket = 161,
2488    NetworkDisconnectKickedInputautomation = 162,
2489    NetworkDisconnectKickedVacnetabnormalbehavior = 163,
2490    NetworkDisconnectKickedInsecureclient = 164,
2491}
2492#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2493pub struct CMsgVector {
2494    #[prost(float, optional, tag = "1")]
2495    pub x: ::core::option::Option<f32>,
2496    #[prost(float, optional, tag = "2")]
2497    pub y: ::core::option::Option<f32>,
2498    #[prost(float, optional, tag = "3")]
2499    pub z: ::core::option::Option<f32>,
2500    #[prost(float, optional, tag = "4")]
2501    pub w: ::core::option::Option<f32>,
2502}
2503#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2504pub struct CMsgVector2D {
2505    #[prost(float, optional, tag = "1")]
2506    pub x: ::core::option::Option<f32>,
2507    #[prost(float, optional, tag = "2")]
2508    pub y: ::core::option::Option<f32>,
2509}
2510#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2511pub struct CMsgQAngle {
2512    #[prost(float, optional, tag = "1")]
2513    pub x: ::core::option::Option<f32>,
2514    #[prost(float, optional, tag = "2")]
2515    pub y: ::core::option::Option<f32>,
2516    #[prost(float, optional, tag = "3")]
2517    pub z: ::core::option::Option<f32>,
2518}
2519#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2520pub struct CMsgQuaternion {
2521    #[prost(float, optional, tag = "1")]
2522    pub x: ::core::option::Option<f32>,
2523    #[prost(float, optional, tag = "2")]
2524    pub y: ::core::option::Option<f32>,
2525    #[prost(float, optional, tag = "3")]
2526    pub z: ::core::option::Option<f32>,
2527    #[prost(float, optional, tag = "4")]
2528    pub w: ::core::option::Option<f32>,
2529}
2530#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2531pub struct CMsgTransform {
2532    #[prost(message, optional, tag = "1")]
2533    pub position: ::core::option::Option<CMsgVector>,
2534    #[prost(float, optional, tag = "2")]
2535    pub scale: ::core::option::Option<f32>,
2536    #[prost(message, optional, tag = "3")]
2537    pub orientation: ::core::option::Option<CMsgQuaternion>,
2538}
2539#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2540pub struct CMsgRgba {
2541    #[prost(int32, optional, tag = "1")]
2542    pub r: ::core::option::Option<i32>,
2543    #[prost(int32, optional, tag = "2")]
2544    pub g: ::core::option::Option<i32>,
2545    #[prost(int32, optional, tag = "3")]
2546    pub b: ::core::option::Option<i32>,
2547    #[prost(int32, optional, tag = "4")]
2548    pub a: ::core::option::Option<i32>,
2549}
2550#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2551pub struct CMsgPlayerInfo {
2552    #[prost(string, optional, tag = "1")]
2553    pub name: ::core::option::Option<::prost::alloc::string::String>,
2554    #[prost(fixed64, optional, tag = "2")]
2555    pub xuid: ::core::option::Option<u64>,
2556    #[prost(int32, optional, tag = "3")]
2557    pub userid: ::core::option::Option<i32>,
2558    #[prost(fixed64, optional, tag = "4")]
2559    pub steamid: ::core::option::Option<u64>,
2560    #[prost(bool, optional, tag = "5")]
2561    pub fakeplayer: ::core::option::Option<bool>,
2562    #[prost(bool, optional, tag = "6")]
2563    pub ishltv: ::core::option::Option<bool>,
2564}
2565#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2566pub struct CEntityMsg {
2567    #[prost(uint32, optional, tag = "1", default = "16777215")]
2568    pub target_entity: ::core::option::Option<u32>,
2569}
2570#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2571pub struct CMsgCVars {
2572    #[prost(message, repeated, tag = "1")]
2573    pub cvars: ::prost::alloc::vec::Vec<c_msg_c_vars::CVar>,
2574}
2575pub mod c_msg_c_vars {
2576    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2577    pub struct CVar {
2578        #[prost(string, optional, tag = "1")]
2579        pub name: ::core::option::Option<::prost::alloc::string::String>,
2580        #[prost(string, optional, tag = "2")]
2581        pub value: ::core::option::Option<::prost::alloc::string::String>,
2582    }
2583}
2584#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2585pub struct CNetMsgNop {}
2586#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2587pub struct CNetMsgSplitScreenUser {
2588    #[prost(int32, optional, tag = "1")]
2589    pub slot: ::core::option::Option<i32>,
2590}
2591#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2592pub struct CNetMsgTick {
2593    #[prost(uint32, optional, tag = "1")]
2594    pub tick: ::core::option::Option<u32>,
2595    #[prost(uint32, optional, tag = "4")]
2596    pub host_computationtime: ::core::option::Option<u32>,
2597    #[prost(uint32, optional, tag = "5")]
2598    pub host_computationtime_std_deviation: ::core::option::Option<u32>,
2599    #[prost(uint32, optional, tag = "7")]
2600    pub legacy_host_loss: ::core::option::Option<u32>,
2601    #[prost(uint32, optional, tag = "8")]
2602    pub host_unfiltered_frametime: ::core::option::Option<u32>,
2603    #[prost(uint32, optional, tag = "9")]
2604    pub hltv_replay_flags: ::core::option::Option<u32>,
2605    #[prost(uint32, optional, tag = "10")]
2606    pub expected_long_tick: ::core::option::Option<u32>,
2607    #[prost(string, optional, tag = "11")]
2608    pub expected_long_tick_reason: ::core::option::Option<::prost::alloc::string::String>,
2609    #[prost(uint32, optional, tag = "12")]
2610    pub host_frame_dropped_pct_x10: ::core::option::Option<u32>,
2611    #[prost(uint32, optional, tag = "13")]
2612    pub host_frame_irregular_arrival_pct_x10: ::core::option::Option<u32>,
2613}
2614#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2615pub struct CNetMsgStringCmd {
2616    #[prost(string, optional, tag = "1")]
2617    pub command: ::core::option::Option<::prost::alloc::string::String>,
2618    #[prost(uint32, optional, tag = "2")]
2619    pub prediction_sync: ::core::option::Option<u32>,
2620}
2621#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2622pub struct CNetMsgSetConVar {
2623    #[prost(message, optional, tag = "1")]
2624    pub convars: ::core::option::Option<CMsgCVars>,
2625}
2626#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2627pub struct CNetMsgSignonState {
2628    #[prost(enumeration = "SignonStateT", optional, tag = "1", default = "SignonstateNone")]
2629    pub signon_state: ::core::option::Option<i32>,
2630    #[prost(uint32, optional, tag = "2")]
2631    pub spawn_count: ::core::option::Option<u32>,
2632    #[prost(uint32, optional, tag = "3")]
2633    pub num_server_players: ::core::option::Option<u32>,
2634    #[prost(string, repeated, tag = "4")]
2635    pub players_networkids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2636    #[prost(string, optional, tag = "5")]
2637    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
2638    #[prost(string, optional, tag = "6")]
2639    pub addons: ::core::option::Option<::prost::alloc::string::String>,
2640}
2641#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2642pub struct CSvcMsgGameEvent {
2643    #[prost(string, optional, tag = "1")]
2644    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
2645    #[prost(int32, optional, tag = "2")]
2646    pub eventid: ::core::option::Option<i32>,
2647    #[prost(message, repeated, tag = "3")]
2648    pub keys: ::prost::alloc::vec::Vec<csvc_msg_game_event::KeyT>,
2649}
2650pub mod csvc_msg_game_event {
2651    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2652    pub struct KeyT {
2653        #[prost(int32, optional, tag = "1")]
2654        pub r#type: ::core::option::Option<i32>,
2655        #[prost(string, optional, tag = "2")]
2656        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
2657        #[prost(float, optional, tag = "3")]
2658        pub val_float: ::core::option::Option<f32>,
2659        #[prost(int32, optional, tag = "4")]
2660        pub val_long: ::core::option::Option<i32>,
2661        #[prost(int32, optional, tag = "5")]
2662        pub val_short: ::core::option::Option<i32>,
2663        #[prost(int32, optional, tag = "6")]
2664        pub val_byte: ::core::option::Option<i32>,
2665        #[prost(bool, optional, tag = "7")]
2666        pub val_bool: ::core::option::Option<bool>,
2667        #[prost(uint64, optional, tag = "8")]
2668        pub val_uint64: ::core::option::Option<u64>,
2669    }
2670}
2671#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2672pub struct CSvcMsgListGameEvents {
2673    #[prost(message, repeated, tag = "1")]
2674    pub events: ::prost::alloc::vec::Vec<csvc_msg_list_game_events::EventT>,
2675}
2676pub mod csvc_msg_list_game_events {
2677    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2678    pub struct EventT {
2679        #[prost(int32, optional, tag = "1")]
2680        pub tick: ::core::option::Option<i32>,
2681        #[prost(message, optional, tag = "2")]
2682        pub event: ::core::option::Option<super::CSvcMsgGameEvent>,
2683    }
2684}
2685#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2686pub struct CNetMsgSpawnGroupLoad {
2687    #[prost(string, optional, tag = "1")]
2688    pub worldname: ::core::option::Option<::prost::alloc::string::String>,
2689    #[prost(string, optional, tag = "2")]
2690    pub entitylumpname: ::core::option::Option<::prost::alloc::string::String>,
2691    #[prost(string, optional, tag = "3")]
2692    pub entityfiltername: ::core::option::Option<::prost::alloc::string::String>,
2693    #[prost(uint32, optional, tag = "4")]
2694    pub spawngrouphandle: ::core::option::Option<u32>,
2695    #[prost(uint32, optional, tag = "5")]
2696    pub spawngroupownerhandle: ::core::option::Option<u32>,
2697    #[prost(message, optional, tag = "6")]
2698    pub world_offset_pos: ::core::option::Option<CMsgVector>,
2699    #[prost(message, optional, tag = "7")]
2700    pub world_offset_angle: ::core::option::Option<CMsgQAngle>,
2701    #[prost(bytes = "vec", optional, tag = "8")]
2702    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2703    #[prost(uint32, optional, tag = "9")]
2704    pub flags: ::core::option::Option<u32>,
2705    #[prost(int32, optional, tag = "10")]
2706    pub tickcount: ::core::option::Option<i32>,
2707    #[prost(bool, optional, tag = "11")]
2708    pub manifestincomplete: ::core::option::Option<bool>,
2709    #[prost(string, optional, tag = "12")]
2710    pub localnamefixup: ::core::option::Option<::prost::alloc::string::String>,
2711    #[prost(string, optional, tag = "13")]
2712    pub parentnamefixup: ::core::option::Option<::prost::alloc::string::String>,
2713    #[prost(int32, optional, tag = "14")]
2714    pub manifestloadpriority: ::core::option::Option<i32>,
2715    #[prost(uint32, optional, tag = "15")]
2716    pub worldgroupid: ::core::option::Option<u32>,
2717    #[prost(uint32, optional, tag = "16")]
2718    pub creationsequence: ::core::option::Option<u32>,
2719    #[prost(string, optional, tag = "17")]
2720    pub savegamefilename: ::core::option::Option<::prost::alloc::string::String>,
2721    #[prost(uint32, optional, tag = "18")]
2722    pub spawngroupparenthandle: ::core::option::Option<u32>,
2723    #[prost(bool, optional, tag = "19")]
2724    pub leveltransition: ::core::option::Option<bool>,
2725    #[prost(string, optional, tag = "20")]
2726    pub worldgroupname: ::core::option::Option<::prost::alloc::string::String>,
2727}
2728#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2729pub struct CNetMsgSpawnGroupManifestUpdate {
2730    #[prost(uint32, optional, tag = "1")]
2731    pub spawngrouphandle: ::core::option::Option<u32>,
2732    #[prost(bytes = "vec", optional, tag = "2")]
2733    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2734    #[prost(bool, optional, tag = "3")]
2735    pub manifestincomplete: ::core::option::Option<bool>,
2736}
2737#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2738pub struct CNetMsgSpawnGroupSetCreationTick {
2739    #[prost(uint32, optional, tag = "1")]
2740    pub spawngrouphandle: ::core::option::Option<u32>,
2741    #[prost(int32, optional, tag = "2")]
2742    pub tickcount: ::core::option::Option<i32>,
2743    #[prost(uint32, optional, tag = "3")]
2744    pub creationsequence: ::core::option::Option<u32>,
2745}
2746#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2747pub struct CNetMsgSpawnGroupUnload {
2748    #[prost(uint32, optional, tag = "1")]
2749    pub spawngrouphandle: ::core::option::Option<u32>,
2750    #[prost(uint32, optional, tag = "2")]
2751    pub flags: ::core::option::Option<u32>,
2752    #[prost(int32, optional, tag = "3")]
2753    pub tickcount: ::core::option::Option<i32>,
2754}
2755#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2756pub struct CNetMsgSpawnGroupLoadCompleted {
2757    #[prost(uint32, optional, tag = "1")]
2758    pub spawngrouphandle: ::core::option::Option<u32>,
2759}
2760#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2761pub struct CSvcMsgGameSessionConfiguration {
2762    #[prost(bool, optional, tag = "1")]
2763    pub is_multiplayer: ::core::option::Option<bool>,
2764    #[prost(bool, optional, tag = "2")]
2765    pub is_loadsavegame: ::core::option::Option<bool>,
2766    #[prost(bool, optional, tag = "3")]
2767    pub is_background_map: ::core::option::Option<bool>,
2768    #[prost(bool, optional, tag = "4")]
2769    pub is_headless: ::core::option::Option<bool>,
2770    #[prost(uint32, optional, tag = "5")]
2771    pub min_client_limit: ::core::option::Option<u32>,
2772    #[prost(uint32, optional, tag = "6")]
2773    pub max_client_limit: ::core::option::Option<u32>,
2774    #[prost(uint32, optional, tag = "7")]
2775    pub max_clients: ::core::option::Option<u32>,
2776    #[prost(fixed32, optional, tag = "8")]
2777    pub tick_interval: ::core::option::Option<u32>,
2778    #[prost(string, optional, tag = "9")]
2779    pub hostname: ::core::option::Option<::prost::alloc::string::String>,
2780    #[prost(string, optional, tag = "10")]
2781    pub savegamename: ::core::option::Option<::prost::alloc::string::String>,
2782    #[prost(string, optional, tag = "11")]
2783    pub s1_mapname: ::core::option::Option<::prost::alloc::string::String>,
2784    #[prost(string, optional, tag = "12")]
2785    pub gamemode: ::core::option::Option<::prost::alloc::string::String>,
2786    #[prost(string, optional, tag = "13")]
2787    pub server_ip_address: ::core::option::Option<::prost::alloc::string::String>,
2788    #[prost(bytes = "vec", optional, tag = "14")]
2789    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2790    #[prost(bool, optional, tag = "15")]
2791    pub is_localonly: ::core::option::Option<bool>,
2792    #[prost(bool, optional, tag = "19")]
2793    pub no_steam_server: ::core::option::Option<bool>,
2794    #[prost(bool, optional, tag = "16")]
2795    pub is_transition: ::core::option::Option<bool>,
2796    #[prost(string, optional, tag = "17")]
2797    pub previouslevel: ::core::option::Option<::prost::alloc::string::String>,
2798    #[prost(string, optional, tag = "18")]
2799    pub landmarkname: ::core::option::Option<::prost::alloc::string::String>,
2800}
2801#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2802pub struct CNetMsgDebugOverlay {
2803    #[prost(int32, optional, tag = "1")]
2804    pub etype: ::core::option::Option<i32>,
2805    #[prost(message, repeated, tag = "2")]
2806    pub vectors: ::prost::alloc::vec::Vec<CMsgVector>,
2807    #[prost(message, repeated, tag = "3")]
2808    pub colors: ::prost::alloc::vec::Vec<CMsgRgba>,
2809    #[prost(float, repeated, packed = "false", tag = "4")]
2810    pub dimensions: ::prost::alloc::vec::Vec<f32>,
2811    #[prost(float, repeated, packed = "false", tag = "5")]
2812    pub times: ::prost::alloc::vec::Vec<f32>,
2813    #[prost(bool, repeated, packed = "false", tag = "6")]
2814    pub bools: ::prost::alloc::vec::Vec<bool>,
2815    #[prost(uint64, repeated, packed = "false", tag = "7")]
2816    pub uint64s: ::prost::alloc::vec::Vec<u64>,
2817    #[prost(string, repeated, tag = "8")]
2818    pub strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2819}
2820#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2821#[repr(i32)]
2822pub enum SignonStateT {
2823    SignonstateNone = 0,
2824    SignonstateChallenge = 1,
2825    SignonstateConnected = 2,
2826    SignonstateNew = 3,
2827    SignonstatePrespawn = 4,
2828    SignonstateSpawn = 5,
2829    SignonstateFull = 6,
2830    SignonstateChangelevel = 7,
2831}
2832#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2833#[repr(i32)]
2834pub enum NetMessages {
2835    NetNop = 0,
2836    NetDisconnectLegacy = 1,
2837    NetSplitScreenUser = 3,
2838    NetTick = 4,
2839    NetStringCmd = 5,
2840    NetSetConVar = 6,
2841    NetSignonState = 7,
2842    NetSpawnGroupLoad = 8,
2843    NetSpawnGroupManifestUpdate = 9,
2844    NetSpawnGroupSetCreationTick = 11,
2845    NetSpawnGroupUnload = 12,
2846    NetSpawnGroupLoadCompleted = 13,
2847    NetDebugOverlay = 15,
2848}
2849#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2850#[repr(i32)]
2851pub enum SpawnGroupFlagsT {
2852    SpawnGroupLoadEntitiesFromSave = 1,
2853    SpawnGroupDontSpawnEntities = 2,
2854    SpawnGroupSynchronousSpawn = 4,
2855    SpawnGroupIsInitialSpawnGroup = 8,
2856    SpawnGroupCreateClientOnlyEntities = 16,
2857    SpawnGroupBlockUntilLoaded = 64,
2858    SpawnGroupLoadStreamingData = 128,
2859    SpawnGroupCreateNewSceneWorld = 256,
2860}
2861#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2862pub struct CMsgVDebugGameSessionIdEvent {
2863    #[prost(int32, optional, tag = "1")]
2864    pub clientid: ::core::option::Option<i32>,
2865    #[prost(string, optional, tag = "2")]
2866    pub gamesessionid: ::core::option::Option<::prost::alloc::string::String>,
2867}
2868#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2869pub struct CMsgPlaceDecalEvent {
2870    #[prost(message, optional, tag = "1")]
2871    pub position: ::core::option::Option<CMsgVector>,
2872    #[prost(message, optional, tag = "2")]
2873    pub normal: ::core::option::Option<CMsgVector>,
2874    #[prost(message, optional, tag = "3")]
2875    pub saxis: ::core::option::Option<CMsgVector>,
2876    #[prost(int32, optional, tag = "4")]
2877    pub boneindex: ::core::option::Option<i32>,
2878    #[prost(int32, optional, tag = "13")]
2879    pub triangleindex: ::core::option::Option<i32>,
2880    #[prost(uint32, optional, tag = "5")]
2881    pub flags: ::core::option::Option<u32>,
2882    #[prost(fixed32, optional, tag = "6")]
2883    pub color: ::core::option::Option<u32>,
2884    #[prost(int32, optional, tag = "7")]
2885    pub random_seed: ::core::option::Option<i32>,
2886    #[prost(uint32, optional, tag = "8")]
2887    pub decal_group_name: ::core::option::Option<u32>,
2888    #[prost(float, optional, tag = "9")]
2889    pub size_override: ::core::option::Option<f32>,
2890    #[prost(uint32, optional, tag = "10", default = "16777215")]
2891    pub entityhandle: ::core::option::Option<u32>,
2892    #[prost(uint64, optional, tag = "11")]
2893    pub material_id: ::core::option::Option<u64>,
2894    #[prost(uint32, optional, tag = "12")]
2895    pub sequence_name: ::core::option::Option<u32>,
2896    #[prost(message, optional, tag = "14")]
2897    pub position_objectspace: ::core::option::Option<CMsgVector>,
2898}
2899#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2900pub struct CMsgClearWorldDecalsEvent {
2901    #[prost(uint32, optional, tag = "1")]
2902    pub flagstoclear: ::core::option::Option<u32>,
2903}
2904#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2905pub struct CMsgClearEntityDecalsEvent {
2906    #[prost(uint32, optional, tag = "1")]
2907    pub flagstoclear: ::core::option::Option<u32>,
2908}
2909#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2910pub struct CMsgClearDecalsForEntityEvent {
2911    #[prost(uint32, optional, tag = "1")]
2912    pub flagstoclear: ::core::option::Option<u32>,
2913    #[prost(uint32, optional, tag = "2", default = "16777215")]
2914    pub entityhandle: ::core::option::Option<u32>,
2915}
2916#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2917pub struct CMsgSource1LegacyGameEventList {
2918    #[prost(message, repeated, tag = "1")]
2919    pub descriptors: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event_list::DescriptorT>,
2920}
2921pub mod c_msg_source1_legacy_game_event_list {
2922    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2923    pub struct KeyT {
2924        #[prost(int32, optional, tag = "1")]
2925        pub r#type: ::core::option::Option<i32>,
2926        #[prost(string, optional, tag = "2")]
2927        pub name: ::core::option::Option<::prost::alloc::string::String>,
2928    }
2929    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2930    pub struct DescriptorT {
2931        #[prost(int32, optional, tag = "1")]
2932        pub eventid: ::core::option::Option<i32>,
2933        #[prost(string, optional, tag = "2")]
2934        pub name: ::core::option::Option<::prost::alloc::string::String>,
2935        #[prost(message, repeated, tag = "3")]
2936        pub keys: ::prost::alloc::vec::Vec<KeyT>,
2937    }
2938}
2939#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2940pub struct CMsgSource1LegacyListenEvents {
2941    #[prost(int32, optional, tag = "1")]
2942    pub playerslot: ::core::option::Option<i32>,
2943    #[prost(uint32, repeated, packed = "false", tag = "2")]
2944    pub eventarraybits: ::prost::alloc::vec::Vec<u32>,
2945}
2946#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2947pub struct CMsgSource1LegacyGameEvent {
2948    #[prost(string, optional, tag = "1")]
2949    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
2950    #[prost(int32, optional, tag = "2")]
2951    pub eventid: ::core::option::Option<i32>,
2952    #[prost(message, repeated, tag = "3")]
2953    pub keys: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event::KeyT>,
2954    #[prost(int32, optional, tag = "4")]
2955    pub server_tick: ::core::option::Option<i32>,
2956    #[prost(int32, optional, tag = "5")]
2957    pub passthrough: ::core::option::Option<i32>,
2958}
2959pub mod c_msg_source1_legacy_game_event {
2960    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2961    pub struct KeyT {
2962        #[prost(int32, optional, tag = "1")]
2963        pub r#type: ::core::option::Option<i32>,
2964        #[prost(string, optional, tag = "2")]
2965        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
2966        #[prost(float, optional, tag = "3")]
2967        pub val_float: ::core::option::Option<f32>,
2968        #[prost(int32, optional, tag = "4")]
2969        pub val_long: ::core::option::Option<i32>,
2970        #[prost(int32, optional, tag = "5")]
2971        pub val_short: ::core::option::Option<i32>,
2972        #[prost(int32, optional, tag = "6")]
2973        pub val_byte: ::core::option::Option<i32>,
2974        #[prost(bool, optional, tag = "7")]
2975        pub val_bool: ::core::option::Option<bool>,
2976        #[prost(uint64, optional, tag = "8")]
2977        pub val_uint64: ::core::option::Option<u64>,
2978    }
2979}
2980#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2981pub struct CMsgSosStartSoundEvent {
2982    #[prost(int32, optional, tag = "1")]
2983    pub soundevent_guid: ::core::option::Option<i32>,
2984    #[prost(fixed32, optional, tag = "2")]
2985    pub soundevent_hash: ::core::option::Option<u32>,
2986    #[prost(int32, optional, tag = "3", default = "-1")]
2987    pub source_entity_index: ::core::option::Option<i32>,
2988    #[prost(int32, optional, tag = "4")]
2989    pub seed: ::core::option::Option<i32>,
2990    #[prost(bytes = "vec", optional, tag = "5")]
2991    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2992    #[prost(float, optional, tag = "6")]
2993    pub start_time: ::core::option::Option<f32>,
2994}
2995#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2996pub struct CMsgSosStopSoundEvent {
2997    #[prost(int32, optional, tag = "1")]
2998    pub soundevent_guid: ::core::option::Option<i32>,
2999}
3000#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3001pub struct CMsgSosStopSoundEventHash {
3002    #[prost(fixed32, optional, tag = "1")]
3003    pub soundevent_hash: ::core::option::Option<u32>,
3004    #[prost(int32, optional, tag = "2", default = "-1")]
3005    pub source_entity_index: ::core::option::Option<i32>,
3006}
3007#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3008pub struct CMsgSosSetSoundEventParams {
3009    #[prost(int32, optional, tag = "1")]
3010    pub soundevent_guid: ::core::option::Option<i32>,
3011    #[prost(bytes = "vec", optional, tag = "5")]
3012    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3013}
3014#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3015pub struct CMsgSosSetLibraryStackFields {
3016    #[prost(fixed32, optional, tag = "1")]
3017    pub stack_hash: ::core::option::Option<u32>,
3018    #[prost(bytes = "vec", optional, tag = "5")]
3019    pub packed_fields: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3020}
3021#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3022pub struct CMsgClothStiffenAnimEvent {
3023    #[prost(int32, optional, tag = "1", default = "-1")]
3024    pub source_entity_index: ::core::option::Option<i32>,
3025    #[prost(int32, optional, tag = "2")]
3026    pub vertex_set_hash: ::core::option::Option<i32>,
3027    #[prost(float, optional, tag = "3")]
3028    pub intensity: ::core::option::Option<f32>,
3029    #[prost(float, optional, tag = "4")]
3030    pub length: ::core::option::Option<f32>,
3031    #[prost(float, optional, tag = "5")]
3032    pub speed_in: ::core::option::Option<f32>,
3033    #[prost(float, optional, tag = "6")]
3034    pub speed_out: ::core::option::Option<f32>,
3035}
3036#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3037pub struct CMsgClothEffectAnimEvent {
3038    #[prost(int32, optional, tag = "1", default = "-1")]
3039    pub source_entity_index: ::core::option::Option<i32>,
3040    #[prost(int32, optional, tag = "2")]
3041    pub effect_name_hash: ::core::option::Option<i32>,
3042    #[prost(int32, optional, tag = "3")]
3043    pub operation: ::core::option::Option<i32>,
3044    #[prost(int32, optional, tag = "4")]
3045    pub flags: ::core::option::Option<i32>,
3046    #[prost(string, optional, tag = "5")]
3047    pub tags: ::core::option::Option<::prost::alloc::string::String>,
3048    #[prost(message, optional, tag = "6")]
3049    pub pte: ::core::option::Option<CMsgVector>,
3050}
3051#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3052#[repr(i32)]
3053pub enum EBaseGameEvents {
3054    GeVDebugGameSessionIdEvent = 200,
3055    GePlaceDecalEvent = 201,
3056    GeClearWorldDecalsEvent = 202,
3057    GeClearEntityDecalsEvent = 203,
3058    GeClearDecalsForEntityEvent = 204,
3059    GeSource1LegacyGameEventList = 205,
3060    GeSource1LegacyListenEvents = 206,
3061    GeSource1LegacyGameEvent = 207,
3062    GeSosStartSoundEvent = 208,
3063    GeSosStopSoundEvent = 209,
3064    GeSosSetSoundEventParams = 210,
3065    GeSosSetLibraryStackFields = 211,
3066    GeSosStopSoundEventHash = 212,
3067    GeClothStiffenAnimEvent = 213,
3068    GeClothEffectAnimEvent = 214,
3069}
3070#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3071pub struct CMsgSource2SystemSpecs {
3072    #[prost(string, optional, tag = "1")]
3073    pub cpu_id: ::core::option::Option<::prost::alloc::string::String>,
3074    #[prost(string, optional, tag = "2")]
3075    pub cpu_brand: ::core::option::Option<::prost::alloc::string::String>,
3076    #[prost(uint32, optional, tag = "3")]
3077    pub cpu_model: ::core::option::Option<u32>,
3078    #[prost(uint32, optional, tag = "4")]
3079    pub cpu_num_physical: ::core::option::Option<u32>,
3080    #[prost(uint32, optional, tag = "21")]
3081    pub ram_physical_total_mb: ::core::option::Option<u32>,
3082    #[prost(string, optional, tag = "41")]
3083    pub gpu_rendersystem_dll_name: ::core::option::Option<::prost::alloc::string::String>,
3084    #[prost(uint32, optional, tag = "42")]
3085    pub gpu_vendor_id: ::core::option::Option<u32>,
3086    #[prost(string, optional, tag = "43")]
3087    pub gpu_driver_name: ::core::option::Option<::prost::alloc::string::String>,
3088    #[prost(uint32, optional, tag = "44")]
3089    pub gpu_driver_version_high: ::core::option::Option<u32>,
3090    #[prost(uint32, optional, tag = "45")]
3091    pub gpu_driver_version_low: ::core::option::Option<u32>,
3092    #[prost(uint32, optional, tag = "46")]
3093    pub gpu_dx_support_level: ::core::option::Option<u32>,
3094    #[prost(uint32, optional, tag = "47")]
3095    pub gpu_texture_memory_size_mb: ::core::option::Option<u32>,
3096    #[prost(uint32, optional, tag = "51")]
3097    pub backbuffer_width: ::core::option::Option<u32>,
3098    #[prost(uint32, optional, tag = "52")]
3099    pub backbuffer_height: ::core::option::Option<u32>,
3100}
3101#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3102pub struct CMsgSource2VProfLiteReportItem {
3103    #[prost(string, optional, tag = "1")]
3104    pub name: ::core::option::Option<::prost::alloc::string::String>,
3105    #[prost(uint32, optional, tag = "2")]
3106    pub active_samples: ::core::option::Option<u32>,
3107    #[prost(uint32, optional, tag = "4")]
3108    pub active_samples_1secmax: ::core::option::Option<u32>,
3109    #[prost(uint32, optional, tag = "3")]
3110    pub usec_max: ::core::option::Option<u32>,
3111    #[prost(uint32, optional, tag = "11")]
3112    pub usec_avg_active: ::core::option::Option<u32>,
3113    #[prost(uint32, optional, tag = "12")]
3114    pub usec_p50_active: ::core::option::Option<u32>,
3115    #[prost(uint32, optional, tag = "13")]
3116    pub usec_p99_active: ::core::option::Option<u32>,
3117    #[prost(uint32, optional, tag = "21")]
3118    pub usec_avg_all: ::core::option::Option<u32>,
3119    #[prost(uint32, optional, tag = "22")]
3120    pub usec_p50_all: ::core::option::Option<u32>,
3121    #[prost(uint32, optional, tag = "23")]
3122    pub usec_p99_all: ::core::option::Option<u32>,
3123    #[prost(uint32, optional, tag = "31")]
3124    pub usec_1secmax_avg_active: ::core::option::Option<u32>,
3125    #[prost(uint32, optional, tag = "32")]
3126    pub usec_1secmax_p50_active: ::core::option::Option<u32>,
3127    #[prost(uint32, optional, tag = "33")]
3128    pub usec_1secmax_p95_active: ::core::option::Option<u32>,
3129    #[prost(uint32, optional, tag = "34")]
3130    pub usec_1secmax_p99_active: ::core::option::Option<u32>,
3131    #[prost(uint32, optional, tag = "41")]
3132    pub usec_1secmax_avg_all: ::core::option::Option<u32>,
3133    #[prost(uint32, optional, tag = "42")]
3134    pub usec_1secmax_p50_all: ::core::option::Option<u32>,
3135    #[prost(uint32, optional, tag = "43")]
3136    pub usec_1secmax_p95_all: ::core::option::Option<u32>,
3137    #[prost(uint32, optional, tag = "44")]
3138    pub usec_1secmax_p99_all: ::core::option::Option<u32>,
3139}
3140#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3141pub struct CMsgSource2VProfLiteReport {
3142    #[prost(message, optional, tag = "1")]
3143    pub total: ::core::option::Option<CMsgSource2VProfLiteReportItem>,
3144    #[prost(message, repeated, tag = "2")]
3145    pub items: ::prost::alloc::vec::Vec<CMsgSource2VProfLiteReportItem>,
3146    #[prost(uint32, optional, tag = "3")]
3147    pub discarded_frames: ::core::option::Option<u32>,
3148}
3149#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3150pub struct CMsgSource2NetworkFlowQuality {
3151    #[prost(uint32, optional, tag = "1")]
3152    pub duration: ::core::option::Option<u32>,
3153    #[prost(uint64, optional, tag = "5")]
3154    pub bytes_total: ::core::option::Option<u64>,
3155    #[prost(uint64, optional, tag = "6")]
3156    pub bytes_total_reliable: ::core::option::Option<u64>,
3157    #[prost(uint64, optional, tag = "7")]
3158    pub bytes_total_voice: ::core::option::Option<u64>,
3159    #[prost(uint32, optional, tag = "10")]
3160    pub bytes_sec_p95: ::core::option::Option<u32>,
3161    #[prost(uint32, optional, tag = "11")]
3162    pub bytes_sec_p99: ::core::option::Option<u32>,
3163    #[prost(uint32, optional, tag = "20")]
3164    pub enginemsgs_total: ::core::option::Option<u32>,
3165    #[prost(uint32, optional, tag = "21")]
3166    pub enginemsgs_sec_p95: ::core::option::Option<u32>,
3167    #[prost(uint32, optional, tag = "22")]
3168    pub enginemsgs_sec_p99: ::core::option::Option<u32>,
3169    #[prost(uint32, optional, tag = "30")]
3170    pub netframes_total: ::core::option::Option<u32>,
3171    #[prost(uint32, optional, tag = "31")]
3172    pub netframes_dropped: ::core::option::Option<u32>,
3173    #[prost(uint32, optional, tag = "32")]
3174    pub netframes_outoforder: ::core::option::Option<u32>,
3175    #[prost(uint32, optional, tag = "34")]
3176    pub netframes_size_exceeds_mtu: ::core::option::Option<u32>,
3177    #[prost(uint32, optional, tag = "35")]
3178    pub netframes_size_p95: ::core::option::Option<u32>,
3179    #[prost(uint32, optional, tag = "36")]
3180    pub netframes_size_p99: ::core::option::Option<u32>,
3181    #[prost(uint32, optional, tag = "40")]
3182    pub ticks_total: ::core::option::Option<u32>,
3183    #[prost(uint32, optional, tag = "41")]
3184    pub ticks_good: ::core::option::Option<u32>,
3185    #[prost(uint32, optional, tag = "42")]
3186    pub ticks_good_almost_late: ::core::option::Option<u32>,
3187    #[prost(uint32, optional, tag = "43")]
3188    pub ticks_fixed_dropped: ::core::option::Option<u32>,
3189    #[prost(uint32, optional, tag = "44")]
3190    pub ticks_fixed_late: ::core::option::Option<u32>,
3191    #[prost(uint32, optional, tag = "45")]
3192    pub ticks_bad_dropped: ::core::option::Option<u32>,
3193    #[prost(uint32, optional, tag = "46")]
3194    pub ticks_bad_late: ::core::option::Option<u32>,
3195    #[prost(uint32, optional, tag = "47")]
3196    pub ticks_bad_other: ::core::option::Option<u32>,
3197    #[prost(uint32, optional, tag = "50")]
3198    pub tick_missrate_samples_total: ::core::option::Option<u32>,
3199    #[prost(uint32, optional, tag = "51")]
3200    pub tick_missrate_samples_perfect: ::core::option::Option<u32>,
3201    #[prost(uint32, optional, tag = "52")]
3202    pub tick_missrate_samples_perfectnet: ::core::option::Option<u32>,
3203    #[prost(uint32, optional, tag = "53")]
3204    pub tick_missratenet_p75_x10: ::core::option::Option<u32>,
3205    #[prost(uint32, optional, tag = "54")]
3206    pub tick_missratenet_p95_x10: ::core::option::Option<u32>,
3207    #[prost(uint32, optional, tag = "55")]
3208    pub tick_missratenet_p99_x10: ::core::option::Option<u32>,
3209    #[prost(sint32, optional, tag = "61")]
3210    pub recvmargin_p1: ::core::option::Option<i32>,
3211    #[prost(sint32, optional, tag = "62")]
3212    pub recvmargin_p5: ::core::option::Option<i32>,
3213    #[prost(sint32, optional, tag = "63")]
3214    pub recvmargin_p25: ::core::option::Option<i32>,
3215    #[prost(sint32, optional, tag = "64")]
3216    pub recvmargin_p50: ::core::option::Option<i32>,
3217    #[prost(sint32, optional, tag = "65")]
3218    pub recvmargin_p75: ::core::option::Option<i32>,
3219    #[prost(sint32, optional, tag = "66")]
3220    pub recvmargin_p95: ::core::option::Option<i32>,
3221    #[prost(uint32, optional, tag = "70")]
3222    pub netframe_jitter_p50: ::core::option::Option<u32>,
3223    #[prost(uint32, optional, tag = "71")]
3224    pub netframe_jitter_p99: ::core::option::Option<u32>,
3225    #[prost(uint32, optional, tag = "72")]
3226    pub interval_peakjitter_p50: ::core::option::Option<u32>,
3227    #[prost(uint32, optional, tag = "73")]
3228    pub interval_peakjitter_p95: ::core::option::Option<u32>,
3229    #[prost(uint32, optional, tag = "74")]
3230    pub packet_misdelivery_rate_p50_x4: ::core::option::Option<u32>,
3231    #[prost(uint32, optional, tag = "75")]
3232    pub packet_misdelivery_rate_p95_x4: ::core::option::Option<u32>,
3233    #[prost(uint32, optional, tag = "80")]
3234    pub net_ping_p5: ::core::option::Option<u32>,
3235    #[prost(uint32, optional, tag = "81")]
3236    pub net_ping_p50: ::core::option::Option<u32>,
3237    #[prost(uint32, optional, tag = "82")]
3238    pub net_ping_p95: ::core::option::Option<u32>,
3239}
3240#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3241pub struct CMsgSource2PerfIntervalSample {
3242    #[prost(float, optional, tag = "1")]
3243    pub frame_time_max_ms: ::core::option::Option<f32>,
3244    #[prost(float, optional, tag = "2")]
3245    pub frame_time_avg_ms: ::core::option::Option<f32>,
3246    #[prost(float, optional, tag = "3")]
3247    pub frame_time_min_ms: ::core::option::Option<f32>,
3248    #[prost(int32, optional, tag = "4")]
3249    pub frame_count: ::core::option::Option<i32>,
3250    #[prost(float, optional, tag = "5")]
3251    pub frame_time_total_ms: ::core::option::Option<f32>,
3252    #[prost(message, repeated, tag = "6")]
3253    pub tags: ::prost::alloc::vec::Vec<c_msg_source2_perf_interval_sample::Tag>,
3254}
3255pub mod c_msg_source2_perf_interval_sample {
3256    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3257    pub struct Tag {
3258        #[prost(string, optional, tag = "1")]
3259        pub tag: ::core::option::Option<::prost::alloc::string::String>,
3260        #[prost(uint32, optional, tag = "2")]
3261        pub max_value: ::core::option::Option<u32>,
3262    }
3263}
3264#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3265pub struct CSource2MetricsMatchPerfSummaryNotification {
3266    #[prost(uint32, optional, tag = "1")]
3267    pub appid: ::core::option::Option<u32>,
3268    #[prost(string, optional, tag = "2")]
3269    pub game_mode: ::core::option::Option<::prost::alloc::string::String>,
3270    #[prost(uint32, optional, tag = "3")]
3271    pub server_build_id: ::core::option::Option<u32>,
3272    #[prost(fixed32, optional, tag = "4")]
3273    pub server_popid: ::core::option::Option<u32>,
3274    #[prost(message, optional, tag = "10")]
3275    pub server_profile: ::core::option::Option<CMsgSource2VProfLiteReport>,
3276    #[prost(message, repeated, tag = "11")]
3277    pub clients: ::prost::alloc::vec::Vec<c_source2_metrics_match_perf_summary_notification::Client>,
3278    #[prost(string, optional, tag = "20")]
3279    pub map: ::core::option::Option<::prost::alloc::string::String>,
3280}
3281pub mod c_source2_metrics_match_perf_summary_notification {
3282    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3283    pub struct Client {
3284        #[prost(message, optional, tag = "1")]
3285        pub system_specs: ::core::option::Option<super::CMsgSource2SystemSpecs>,
3286        #[prost(message, optional, tag = "2")]
3287        pub profile: ::core::option::Option<super::CMsgSource2VProfLiteReport>,
3288        #[prost(uint32, optional, tag = "3")]
3289        pub build_id: ::core::option::Option<u32>,
3290        #[prost(message, optional, tag = "4")]
3291        pub downstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
3292        #[prost(message, optional, tag = "5")]
3293        pub upstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
3294        #[prost(fixed64, optional, tag = "10")]
3295        pub steamid: ::core::option::Option<u64>,
3296        #[prost(message, repeated, tag = "11")]
3297        pub perf_samples: ::prost::alloc::vec::Vec<super::CMsgSource2PerfIntervalSample>,
3298    }
3299}
3300#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3301pub struct CMsgSource2PlayStatsPackedRecordList {
3302    #[prost(string, optional, tag = "1")]
3303    pub record_name: ::core::option::Option<::prost::alloc::string::String>,
3304    #[prost(message, repeated, tag = "2")]
3305    pub field_defs: ::prost::alloc::vec::Vec<c_msg_source2_play_stats_packed_record_list::FieldDef>,
3306    #[prost(uint32, optional, tag = "3")]
3307    pub record_count: ::core::option::Option<u32>,
3308    #[prost(uint64, repeated, tag = "4")]
3309    pub uint64_vals: ::prost::alloc::vec::Vec<u64>,
3310    #[prost(uint32, repeated, tag = "5")]
3311    pub uint32_vals: ::prost::alloc::vec::Vec<u32>,
3312    #[prost(uint32, repeated, tag = "6")]
3313    pub uint16_vals: ::prost::alloc::vec::Vec<u32>,
3314    #[prost(uint32, repeated, tag = "7")]
3315    pub uint8_vals: ::prost::alloc::vec::Vec<u32>,
3316    #[prost(int64, repeated, tag = "8")]
3317    pub int64_vals: ::prost::alloc::vec::Vec<i64>,
3318    #[prost(int32, repeated, tag = "9")]
3319    pub int32_vals: ::prost::alloc::vec::Vec<i32>,
3320    #[prost(int32, repeated, tag = "10")]
3321    pub int16_vals: ::prost::alloc::vec::Vec<i32>,
3322    #[prost(int32, repeated, tag = "11")]
3323    pub int8_vals: ::prost::alloc::vec::Vec<i32>,
3324    #[prost(double, repeated, tag = "12")]
3325    pub float64_vals: ::prost::alloc::vec::Vec<f64>,
3326    #[prost(float, repeated, tag = "13")]
3327    pub float32_vals: ::prost::alloc::vec::Vec<f32>,
3328    #[prost(bool, repeated, tag = "14")]
3329    pub bool_vals: ::prost::alloc::vec::Vec<bool>,
3330    #[prost(string, repeated, tag = "15")]
3331    pub string_vals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3332    #[prost(string, repeated, tag = "16")]
3333    pub low_cardinality_string_vals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3334    #[prost(fixed32, repeated, tag = "17")]
3335    pub utcdatetime_vals: ::prost::alloc::vec::Vec<u32>,
3336    #[prost(fixed64, repeated, tag = "18")]
3337    pub steamidtrustbucket_vals: ::prost::alloc::vec::Vec<u64>,
3338    #[prost(message, repeated, tag = "19")]
3339    pub trustbucket_vals: ::prost::alloc::vec::Vec<c_msg_source2_play_stats_packed_record_list::SteamIdList>,
3340}
3341pub mod c_msg_source2_play_stats_packed_record_list {
3342    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3343    pub struct FieldDef {
3344        #[prost(string, optional, tag = "1")]
3345        pub field_name: ::core::option::Option<::prost::alloc::string::String>,
3346        #[prost(enumeration = "super::ESource2PlayStatsFieldType", optional, tag = "2", default = "Source2PlayStatsInvalid")]
3347        pub field_type: ::core::option::Option<i32>,
3348    }
3349    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3350    pub struct SteamIdList {
3351        #[prost(fixed64, repeated, tag = "1")]
3352        pub steamid: ::prost::alloc::vec::Vec<u64>,
3353    }
3354}
3355#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3356pub struct CSource2MetricsRecordPlayStatsNotification {
3357    #[prost(message, repeated, tag = "1")]
3358    pub record_types: ::prost::alloc::vec::Vec<CMsgSource2PlayStatsPackedRecordList>,
3359    #[prost(uint32, optional, tag = "2")]
3360    pub appid: ::core::option::Option<u32>,
3361}
3362#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3363pub struct CSource2MetricsFetchMapDataRequest {
3364    #[prost(uint32, optional, tag = "1")]
3365    pub appid: ::core::option::Option<u32>,
3366    #[prost(string, optional, tag = "2")]
3367    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
3368    #[prost(uint32, optional, tag = "3")]
3369    pub game_type: ::core::option::Option<u32>,
3370    #[prost(uint32, optional, tag = "4")]
3371    pub game_mode: ::core::option::Option<u32>,
3372    #[prost(string, optional, tag = "5")]
3373    pub param: ::core::option::Option<::prost::alloc::string::String>,
3374    #[prost(uint32, optional, tag = "6")]
3375    pub time_span: ::core::option::Option<u32>,
3376}
3377#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3378pub struct CSource2MetricsFetchMapDataResponse {
3379    #[prost(message, repeated, tag = "1")]
3380    pub results: ::prost::alloc::vec::Vec<c_source2_metrics_fetch_map_data_response::MapData>,
3381}
3382pub mod c_source2_metrics_fetch_map_data_response {
3383    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3384    pub struct MapData {
3385        #[prost(string, optional, tag = "1")]
3386        pub name: ::core::option::Option<::prost::alloc::string::String>,
3387        #[prost(string, optional, tag = "2")]
3388        pub r#type: ::core::option::Option<::prost::alloc::string::String>,
3389        #[prost(string, optional, tag = "3")]
3390        pub data: ::core::option::Option<::prost::alloc::string::String>,
3391    }
3392}
3393#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3394#[repr(i32)]
3395pub enum ESource2PlayStatsFieldType {
3396    Source2PlayStatsInvalid = 0,
3397    Source2PlayStatsUInt64 = 1,
3398    Source2PlayStatsUInt32 = 2,
3399    Source2PlayStatsUInt16 = 3,
3400    Source2PlayStatsUInt8 = 4,
3401    Source2PlayStatsInt64 = 5,
3402    Source2PlayStatsInt32 = 6,
3403    Source2PlayStatsInt16 = 7,
3404    Source2PlayStatsInt8 = 8,
3405    Source2PlayStatsFloat64 = 9,
3406    Source2PlayStatsFloat32 = 10,
3407    Source2PlayStatsBool = 11,
3408    Source2PlayStatsString = 12,
3409    Source2PlayStatsLowCardinalityString = 13,
3410    Source2PlayStatsUtcDateTime = 14,
3411    Source2PlayStatsSteamIdTrustBucket = 15,
3412    Source2PlayStatsSteamIdTrustBucketMin = 16,
3413}
3414#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3415pub struct CclcMsgClientInfo {
3416    #[prost(fixed32, optional, tag = "1")]
3417    pub send_table_crc: ::core::option::Option<u32>,
3418    #[prost(uint32, optional, tag = "2")]
3419    pub server_count: ::core::option::Option<u32>,
3420    #[prost(bool, optional, tag = "3")]
3421    pub is_hltv: ::core::option::Option<bool>,
3422    #[prost(uint32, optional, tag = "5")]
3423    pub friends_id: ::core::option::Option<u32>,
3424    #[prost(string, optional, tag = "6")]
3425    pub friends_name: ::core::option::Option<::prost::alloc::string::String>,
3426}
3427#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3428pub struct CclcMsgMove {
3429    #[prost(bytes = "vec", optional, tag = "3")]
3430    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3431    #[prost(uint32, optional, tag = "4")]
3432    pub last_command_number: ::core::option::Option<u32>,
3433}
3434#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3435pub struct CMsgVoiceAudio {
3436    #[prost(enumeration = "VoiceDataFormatT", optional, tag = "1", default = "VoicedataFormatSteam")]
3437    pub format: ::core::option::Option<i32>,
3438    #[prost(bytes = "vec", optional, tag = "2")]
3439    pub voice_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3440    #[prost(int32, optional, tag = "3")]
3441    pub sequence_bytes: ::core::option::Option<i32>,
3442    #[prost(uint32, optional, tag = "4")]
3443    pub section_number: ::core::option::Option<u32>,
3444    #[prost(uint32, optional, tag = "5")]
3445    pub sample_rate: ::core::option::Option<u32>,
3446    #[prost(uint32, optional, tag = "6")]
3447    pub uncompressed_sample_offset: ::core::option::Option<u32>,
3448    #[prost(uint32, optional, tag = "7")]
3449    pub num_packets: ::core::option::Option<u32>,
3450    #[prost(uint32, repeated, tag = "8")]
3451    pub packet_offsets: ::prost::alloc::vec::Vec<u32>,
3452    #[prost(float, optional, tag = "9")]
3453    pub voice_level: ::core::option::Option<f32>,
3454}
3455#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3456pub struct CclcMsgVoiceData {
3457    #[prost(message, optional, tag = "1")]
3458    pub audio: ::core::option::Option<CMsgVoiceAudio>,
3459    #[prost(fixed64, optional, tag = "2")]
3460    pub xuid: ::core::option::Option<u64>,
3461    #[prost(uint32, optional, tag = "3")]
3462    pub tick: ::core::option::Option<u32>,
3463}
3464#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3465pub struct CclcMsgBaselineAck {
3466    #[prost(int32, optional, tag = "1")]
3467    pub baseline_tick: ::core::option::Option<i32>,
3468    #[prost(int32, optional, tag = "2")]
3469    pub baseline_nr: ::core::option::Option<i32>,
3470}
3471#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3472pub struct CclcMsgListenEvents {
3473    #[prost(fixed32, repeated, packed = "false", tag = "1")]
3474    pub event_mask: ::prost::alloc::vec::Vec<u32>,
3475}
3476#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3477pub struct CclcMsgRespondCvarValue {
3478    #[prost(int32, optional, tag = "1")]
3479    pub cookie: ::core::option::Option<i32>,
3480    #[prost(int32, optional, tag = "2")]
3481    pub status_code: ::core::option::Option<i32>,
3482    #[prost(string, optional, tag = "3")]
3483    pub name: ::core::option::Option<::prost::alloc::string::String>,
3484    #[prost(string, optional, tag = "4")]
3485    pub value: ::core::option::Option<::prost::alloc::string::String>,
3486}
3487#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3488pub struct CclcMsgLoadingProgress {
3489    #[prost(int32, optional, tag = "1")]
3490    pub progress: ::core::option::Option<i32>,
3491}
3492#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3493pub struct CclcMsgSplitPlayerConnect {
3494    #[prost(string, optional, tag = "1")]
3495    pub playername: ::core::option::Option<::prost::alloc::string::String>,
3496}
3497#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3498pub struct CclcMsgSplitPlayerDisconnect {
3499    #[prost(int32, optional, tag = "1")]
3500    pub slot: ::core::option::Option<i32>,
3501}
3502#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3503pub struct CclcMsgServerStatus {
3504    #[prost(bool, optional, tag = "1")]
3505    pub simplified: ::core::option::Option<bool>,
3506}
3507#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3508pub struct CclcMsgRequestPause {
3509    #[prost(enumeration = "RequestPauseT", optional, tag = "1", default = "RpPause")]
3510    pub pause_type: ::core::option::Option<i32>,
3511    #[prost(int32, optional, tag = "2")]
3512    pub pause_group: ::core::option::Option<i32>,
3513}
3514#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3515pub struct CclcMsgCmdKeyValues {
3516    #[prost(bytes = "vec", optional, tag = "1")]
3517    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3518}
3519#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3520pub struct CclcMsgRconServerDetails {
3521    #[prost(bytes = "vec", optional, tag = "1")]
3522    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3523}
3524#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3525pub struct CclcMsgDiagnostic {
3526    #[prost(message, optional, tag = "1")]
3527    pub system_specs: ::core::option::Option<CMsgSource2SystemSpecs>,
3528    #[prost(message, optional, tag = "2")]
3529    pub vprof_report: ::core::option::Option<CMsgSource2VProfLiteReport>,
3530    #[prost(message, optional, tag = "3")]
3531    pub downstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
3532    #[prost(message, optional, tag = "4")]
3533    pub upstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
3534    #[prost(message, repeated, tag = "5")]
3535    pub perf_samples: ::prost::alloc::vec::Vec<CMsgSource2PerfIntervalSample>,
3536}
3537#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3538pub struct CSvcMsgServerInfo {
3539    #[prost(int32, optional, tag = "1")]
3540    pub protocol: ::core::option::Option<i32>,
3541    #[prost(int32, optional, tag = "2")]
3542    pub server_count: ::core::option::Option<i32>,
3543    #[prost(bool, optional, tag = "3")]
3544    pub is_dedicated: ::core::option::Option<bool>,
3545    #[prost(bool, optional, tag = "4")]
3546    pub is_hltv: ::core::option::Option<bool>,
3547    #[prost(int32, optional, tag = "6")]
3548    pub c_os: ::core::option::Option<i32>,
3549    #[prost(int32, optional, tag = "10")]
3550    pub max_clients: ::core::option::Option<i32>,
3551    #[prost(int32, optional, tag = "11")]
3552    pub max_classes: ::core::option::Option<i32>,
3553    #[prost(int32, optional, tag = "12", default = "-1")]
3554    pub player_slot: ::core::option::Option<i32>,
3555    #[prost(float, optional, tag = "13")]
3556    pub tick_interval: ::core::option::Option<f32>,
3557    #[prost(string, optional, tag = "14")]
3558    pub game_dir: ::core::option::Option<::prost::alloc::string::String>,
3559    #[prost(string, optional, tag = "15")]
3560    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
3561    #[prost(string, optional, tag = "16")]
3562    pub sky_name: ::core::option::Option<::prost::alloc::string::String>,
3563    #[prost(string, optional, tag = "17")]
3564    pub host_name: ::core::option::Option<::prost::alloc::string::String>,
3565    #[prost(string, optional, tag = "18")]
3566    pub addon_name: ::core::option::Option<::prost::alloc::string::String>,
3567    #[prost(message, optional, tag = "19")]
3568    pub game_session_config: ::core::option::Option<CSvcMsgGameSessionConfiguration>,
3569    #[prost(bytes = "vec", optional, tag = "20")]
3570    pub game_session_manifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3571}
3572#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3573pub struct CSvcMsgClassInfo {
3574    #[prost(bool, optional, tag = "1")]
3575    pub create_on_client: ::core::option::Option<bool>,
3576    #[prost(message, repeated, tag = "2")]
3577    pub classes: ::prost::alloc::vec::Vec<csvc_msg_class_info::ClassT>,
3578}
3579pub mod csvc_msg_class_info {
3580    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3581    pub struct ClassT {
3582        #[prost(int32, optional, tag = "1")]
3583        pub class_id: ::core::option::Option<i32>,
3584        #[prost(string, optional, tag = "3")]
3585        pub class_name: ::core::option::Option<::prost::alloc::string::String>,
3586    }
3587}
3588#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3589pub struct CSvcMsgSetPause {
3590    #[prost(bool, optional, tag = "1")]
3591    pub paused: ::core::option::Option<bool>,
3592}
3593#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3594pub struct CSvcMsgVoiceInit {
3595    #[prost(int32, optional, tag = "1")]
3596    pub quality: ::core::option::Option<i32>,
3597    #[prost(string, optional, tag = "2")]
3598    pub codec: ::core::option::Option<::prost::alloc::string::String>,
3599    #[prost(int32, optional, tag = "3", default = "0")]
3600    pub version: ::core::option::Option<i32>,
3601}
3602#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3603pub struct CSvcMsgPrint {
3604    #[prost(string, optional, tag = "1")]
3605    pub text: ::core::option::Option<::prost::alloc::string::String>,
3606}
3607#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3608pub struct CSvcMsgSounds {
3609    #[prost(bool, optional, tag = "1")]
3610    pub reliable_sound: ::core::option::Option<bool>,
3611    #[prost(message, repeated, tag = "2")]
3612    pub sounds: ::prost::alloc::vec::Vec<csvc_msg_sounds::SounddataT>,
3613}
3614pub mod csvc_msg_sounds {
3615    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3616    pub struct SounddataT {
3617        #[prost(sint32, optional, tag = "1")]
3618        pub origin_x: ::core::option::Option<i32>,
3619        #[prost(sint32, optional, tag = "2")]
3620        pub origin_y: ::core::option::Option<i32>,
3621        #[prost(sint32, optional, tag = "3")]
3622        pub origin_z: ::core::option::Option<i32>,
3623        #[prost(uint32, optional, tag = "4")]
3624        pub volume: ::core::option::Option<u32>,
3625        #[prost(float, optional, tag = "5")]
3626        pub delay_value: ::core::option::Option<f32>,
3627        #[prost(int32, optional, tag = "6")]
3628        pub sequence_number: ::core::option::Option<i32>,
3629        #[prost(int32, optional, tag = "7", default = "-1")]
3630        pub entity_index: ::core::option::Option<i32>,
3631        #[prost(int32, optional, tag = "8")]
3632        pub channel: ::core::option::Option<i32>,
3633        #[prost(int32, optional, tag = "9")]
3634        pub pitch: ::core::option::Option<i32>,
3635        #[prost(int32, optional, tag = "10")]
3636        pub flags: ::core::option::Option<i32>,
3637        #[prost(uint32, optional, tag = "11")]
3638        pub sound_num: ::core::option::Option<u32>,
3639        #[prost(fixed32, optional, tag = "12")]
3640        pub sound_num_handle: ::core::option::Option<u32>,
3641        #[prost(int32, optional, tag = "13")]
3642        pub speaker_entity: ::core::option::Option<i32>,
3643        #[prost(int32, optional, tag = "14")]
3644        pub random_seed: ::core::option::Option<i32>,
3645        #[prost(int32, optional, tag = "15")]
3646        pub sound_level: ::core::option::Option<i32>,
3647        #[prost(bool, optional, tag = "16")]
3648        pub is_sentence: ::core::option::Option<bool>,
3649        #[prost(bool, optional, tag = "17")]
3650        pub is_ambient: ::core::option::Option<bool>,
3651        #[prost(uint32, optional, tag = "18")]
3652        pub guid: ::core::option::Option<u32>,
3653        #[prost(fixed64, optional, tag = "19")]
3654        pub sound_resource_id: ::core::option::Option<u64>,
3655    }
3656}
3657#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3658pub struct CSvcMsgPrefetch {
3659    #[prost(int32, optional, tag = "1")]
3660    pub sound_index: ::core::option::Option<i32>,
3661    #[prost(enumeration = "PrefetchType", optional, tag = "2", default = "PftSound")]
3662    pub resource_type: ::core::option::Option<i32>,
3663}
3664#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3665pub struct CSvcMsgSetView {
3666    #[prost(int32, optional, tag = "1", default = "-1")]
3667    pub entity_index: ::core::option::Option<i32>,
3668    #[prost(int32, optional, tag = "2", default = "-1")]
3669    pub slot: ::core::option::Option<i32>,
3670}
3671#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3672pub struct CSvcMsgFixAngle {
3673    #[prost(bool, optional, tag = "1")]
3674    pub relative: ::core::option::Option<bool>,
3675    #[prost(message, optional, tag = "2")]
3676    pub angle: ::core::option::Option<CMsgQAngle>,
3677}
3678#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3679pub struct CSvcMsgCrosshairAngle {
3680    #[prost(message, optional, tag = "1")]
3681    pub angle: ::core::option::Option<CMsgQAngle>,
3682}
3683#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3684pub struct CSvcMsgBspDecal {
3685    #[prost(message, optional, tag = "1")]
3686    pub pos: ::core::option::Option<CMsgVector>,
3687    #[prost(int32, optional, tag = "2")]
3688    pub decal_texture_index: ::core::option::Option<i32>,
3689    #[prost(int32, optional, tag = "3", default = "-1")]
3690    pub entity_index: ::core::option::Option<i32>,
3691    #[prost(int32, optional, tag = "4")]
3692    pub model_index: ::core::option::Option<i32>,
3693    #[prost(bool, optional, tag = "5")]
3694    pub low_priority: ::core::option::Option<bool>,
3695}
3696#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3697pub struct CSvcMsgSplitScreen {
3698    #[prost(enumeration = "ESplitScreenMessageType", optional, tag = "1", default = "MsgSplitscreenAdduser")]
3699    pub r#type: ::core::option::Option<i32>,
3700    #[prost(int32, optional, tag = "2")]
3701    pub slot: ::core::option::Option<i32>,
3702    #[prost(int32, optional, tag = "3", default = "-1")]
3703    pub player_index: ::core::option::Option<i32>,
3704}
3705#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3706pub struct CSvcMsgGetCvarValue {
3707    #[prost(int32, optional, tag = "1")]
3708    pub cookie: ::core::option::Option<i32>,
3709    #[prost(string, optional, tag = "2")]
3710    pub cvar_name: ::core::option::Option<::prost::alloc::string::String>,
3711}
3712#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3713pub struct CSvcMsgMenu {
3714    #[prost(int32, optional, tag = "1")]
3715    pub dialog_type: ::core::option::Option<i32>,
3716    #[prost(bytes = "vec", optional, tag = "2")]
3717    pub menu_key_values: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3718}
3719#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3720pub struct CSvcMsgUserMessage {
3721    #[prost(int32, optional, tag = "1")]
3722    pub msg_type: ::core::option::Option<i32>,
3723    #[prost(bytes = "vec", optional, tag = "2")]
3724    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3725    #[prost(int32, optional, tag = "3")]
3726    pub passthrough: ::core::option::Option<i32>,
3727}
3728#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3729pub struct CSvcMsgSendTable {
3730    #[prost(bool, optional, tag = "1")]
3731    pub is_end: ::core::option::Option<bool>,
3732    #[prost(string, optional, tag = "2")]
3733    pub net_table_name: ::core::option::Option<::prost::alloc::string::String>,
3734    #[prost(bool, optional, tag = "3")]
3735    pub needs_decoder: ::core::option::Option<bool>,
3736    #[prost(message, repeated, tag = "4")]
3737    pub props: ::prost::alloc::vec::Vec<csvc_msg_send_table::SendpropT>,
3738}
3739pub mod csvc_msg_send_table {
3740    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3741    pub struct SendpropT {
3742        #[prost(int32, optional, tag = "1")]
3743        pub r#type: ::core::option::Option<i32>,
3744        #[prost(string, optional, tag = "2")]
3745        pub var_name: ::core::option::Option<::prost::alloc::string::String>,
3746        #[prost(int32, optional, tag = "3")]
3747        pub flags: ::core::option::Option<i32>,
3748        #[prost(int32, optional, tag = "4")]
3749        pub priority: ::core::option::Option<i32>,
3750        #[prost(string, optional, tag = "5")]
3751        pub dt_name: ::core::option::Option<::prost::alloc::string::String>,
3752        #[prost(int32, optional, tag = "6")]
3753        pub num_elements: ::core::option::Option<i32>,
3754        #[prost(float, optional, tag = "7")]
3755        pub low_value: ::core::option::Option<f32>,
3756        #[prost(float, optional, tag = "8")]
3757        pub high_value: ::core::option::Option<f32>,
3758        #[prost(int32, optional, tag = "9")]
3759        pub num_bits: ::core::option::Option<i32>,
3760    }
3761}
3762#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3763pub struct CSvcMsgGameEventList {
3764    #[prost(message, repeated, tag = "1")]
3765    pub descriptors: ::prost::alloc::vec::Vec<csvc_msg_game_event_list::DescriptorT>,
3766}
3767pub mod csvc_msg_game_event_list {
3768    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3769    pub struct KeyT {
3770        #[prost(int32, optional, tag = "1")]
3771        pub r#type: ::core::option::Option<i32>,
3772        #[prost(string, optional, tag = "2")]
3773        pub name: ::core::option::Option<::prost::alloc::string::String>,
3774    }
3775    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3776    pub struct DescriptorT {
3777        #[prost(int32, optional, tag = "1")]
3778        pub eventid: ::core::option::Option<i32>,
3779        #[prost(string, optional, tag = "2")]
3780        pub name: ::core::option::Option<::prost::alloc::string::String>,
3781        #[prost(message, repeated, tag = "3")]
3782        pub keys: ::prost::alloc::vec::Vec<KeyT>,
3783    }
3784}
3785#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3786pub struct CSvcMsgPacketEntities {
3787    #[prost(int32, optional, tag = "1")]
3788    pub max_entries: ::core::option::Option<i32>,
3789    #[prost(int32, optional, tag = "2")]
3790    pub updated_entries: ::core::option::Option<i32>,
3791    #[prost(bool, optional, tag = "3")]
3792    pub legacy_is_delta: ::core::option::Option<bool>,
3793    #[prost(bool, optional, tag = "4")]
3794    pub update_baseline: ::core::option::Option<bool>,
3795    #[prost(int32, optional, tag = "5")]
3796    pub baseline: ::core::option::Option<i32>,
3797    #[prost(int32, optional, tag = "6")]
3798    pub delta_from: ::core::option::Option<i32>,
3799    #[prost(bytes = "vec", optional, tag = "7")]
3800    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3801    #[prost(bool, optional, tag = "8")]
3802    pub pending_full_frame: ::core::option::Option<bool>,
3803    #[prost(uint32, optional, tag = "9")]
3804    pub active_spawngroup_handle: ::core::option::Option<u32>,
3805    #[prost(uint32, optional, tag = "10")]
3806    pub max_spawngroup_creationsequence: ::core::option::Option<u32>,
3807    #[prost(uint32, optional, tag = "11")]
3808    pub last_cmd_number_executed: ::core::option::Option<u32>,
3809    #[prost(sint32, optional, tag = "17")]
3810    pub last_cmd_number_recv_delta: ::core::option::Option<i32>,
3811    #[prost(uint32, optional, tag = "12")]
3812    pub server_tick: ::core::option::Option<u32>,
3813    #[prost(bytes = "vec", optional, tag = "13")]
3814    pub serialized_entities: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3815    #[prost(message, repeated, tag = "15")]
3816    pub alternate_baselines: ::prost::alloc::vec::Vec<csvc_msg_packet_entities::AlternateBaselineT>,
3817    #[prost(uint32, optional, tag = "16")]
3818    pub has_pvs_vis_bits_deprecated: ::core::option::Option<u32>,
3819    #[prost(sint32, repeated, tag = "22")]
3820    pub cmd_recv_status: ::prost::alloc::vec::Vec<i32>,
3821    #[prost(message, optional, tag = "19")]
3822    pub non_transmitted_entities: ::core::option::Option<csvc_msg_packet_entities::NonTransmittedEntitiesT>,
3823    #[prost(uint32, optional, tag = "20")]
3824    pub cq_starved_command_ticks: ::core::option::Option<u32>,
3825    #[prost(uint32, optional, tag = "21")]
3826    pub cq_discarded_command_ticks: ::core::option::Option<u32>,
3827    #[prost(message, optional, tag = "23")]
3828    pub outofpvs_entity_updates: ::core::option::Option<csvc_msg_packet_entities::OutofpvsEntityUpdatesT>,
3829    #[prost(bytes = "vec", optional, tag = "999")]
3830    pub dev_padding: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3831}
3832pub mod csvc_msg_packet_entities {
3833    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3834    pub struct AlternateBaselineT {
3835        #[prost(int32, optional, tag = "1")]
3836        pub entity_index: ::core::option::Option<i32>,
3837        #[prost(int32, optional, tag = "2")]
3838        pub baseline_index: ::core::option::Option<i32>,
3839    }
3840    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3841    pub struct NonTransmittedEntitiesT {
3842        #[prost(int32, optional, tag = "1")]
3843        pub header_count: ::core::option::Option<i32>,
3844        #[prost(bytes = "vec", optional, tag = "2")]
3845        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3846    }
3847    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3848    pub struct OutofpvsEntityUpdatesT {
3849        #[prost(int32, optional, tag = "1")]
3850        pub count: ::core::option::Option<i32>,
3851        #[prost(bytes = "vec", optional, tag = "2")]
3852        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3853    }
3854}
3855#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3856pub struct CSvcMsgTempEntities {
3857    #[prost(bool, optional, tag = "1")]
3858    pub reliable: ::core::option::Option<bool>,
3859    #[prost(int32, optional, tag = "2")]
3860    pub num_entries: ::core::option::Option<i32>,
3861    #[prost(bytes = "vec", optional, tag = "3")]
3862    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3863}
3864#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3865pub struct CSvcMsgCreateStringTable {
3866    #[prost(string, optional, tag = "1")]
3867    pub name: ::core::option::Option<::prost::alloc::string::String>,
3868    #[prost(int32, optional, tag = "2")]
3869    pub num_entries: ::core::option::Option<i32>,
3870    #[prost(bool, optional, tag = "3")]
3871    pub user_data_fixed_size: ::core::option::Option<bool>,
3872    #[prost(int32, optional, tag = "4")]
3873    pub user_data_size: ::core::option::Option<i32>,
3874    #[prost(int32, optional, tag = "5")]
3875    pub user_data_size_bits: ::core::option::Option<i32>,
3876    #[prost(int32, optional, tag = "6")]
3877    pub flags: ::core::option::Option<i32>,
3878    #[prost(bytes = "vec", optional, tag = "7")]
3879    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3880    #[prost(int32, optional, tag = "8")]
3881    pub uncompressed_size: ::core::option::Option<i32>,
3882    #[prost(bool, optional, tag = "9")]
3883    pub data_compressed: ::core::option::Option<bool>,
3884    #[prost(bool, optional, tag = "10")]
3885    pub using_varint_bitcounts: ::core::option::Option<bool>,
3886}
3887#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3888pub struct CSvcMsgUpdateStringTable {
3889    #[prost(int32, optional, tag = "1")]
3890    pub table_id: ::core::option::Option<i32>,
3891    #[prost(int32, optional, tag = "2")]
3892    pub num_changed_entries: ::core::option::Option<i32>,
3893    #[prost(bytes = "vec", optional, tag = "3")]
3894    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3895}
3896#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3897pub struct CSvcMsgVoiceData {
3898    #[prost(message, optional, tag = "1")]
3899    pub audio: ::core::option::Option<CMsgVoiceAudio>,
3900    #[prost(int32, optional, tag = "2", default = "-1")]
3901    pub client: ::core::option::Option<i32>,
3902    #[prost(bool, optional, tag = "3")]
3903    pub proximity: ::core::option::Option<bool>,
3904    #[prost(fixed64, optional, tag = "4")]
3905    pub xuid: ::core::option::Option<u64>,
3906    #[prost(int32, optional, tag = "5")]
3907    pub audible_mask: ::core::option::Option<i32>,
3908    #[prost(uint32, optional, tag = "6")]
3909    pub tick: ::core::option::Option<u32>,
3910    #[prost(int32, optional, tag = "7")]
3911    pub passthrough: ::core::option::Option<i32>,
3912}
3913#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3914pub struct CSvcMsgPacketReliable {
3915    #[prost(int32, optional, tag = "1")]
3916    pub tick: ::core::option::Option<i32>,
3917    #[prost(int32, optional, tag = "2")]
3918    pub messagessize: ::core::option::Option<i32>,
3919    #[prost(bool, optional, tag = "3")]
3920    pub state: ::core::option::Option<bool>,
3921}
3922#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3923pub struct CSvcMsgFullFrameSplit {
3924    #[prost(int32, optional, tag = "1")]
3925    pub tick: ::core::option::Option<i32>,
3926    #[prost(int32, optional, tag = "2")]
3927    pub section: ::core::option::Option<i32>,
3928    #[prost(int32, optional, tag = "3")]
3929    pub total: ::core::option::Option<i32>,
3930    #[prost(bytes = "vec", optional, tag = "4")]
3931    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3932}
3933#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3934pub struct CSvcMsgHltvStatus {
3935    #[prost(string, optional, tag = "1")]
3936    pub master: ::core::option::Option<::prost::alloc::string::String>,
3937    #[prost(int32, optional, tag = "2")]
3938    pub clients: ::core::option::Option<i32>,
3939    #[prost(int32, optional, tag = "3")]
3940    pub slots: ::core::option::Option<i32>,
3941    #[prost(int32, optional, tag = "4")]
3942    pub proxies: ::core::option::Option<i32>,
3943}
3944#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3945pub struct CSvcMsgServerSteamId {
3946    #[prost(uint64, optional, tag = "1")]
3947    pub steam_id: ::core::option::Option<u64>,
3948}
3949#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3950pub struct CSvcMsgCmdKeyValues {
3951    #[prost(bytes = "vec", optional, tag = "1")]
3952    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3953}
3954#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3955pub struct CSvcMsgRconServerDetails {
3956    #[prost(bytes = "vec", optional, tag = "1")]
3957    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3958    #[prost(string, optional, tag = "2")]
3959    pub details: ::core::option::Option<::prost::alloc::string::String>,
3960}
3961#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3962pub struct CMsgIpcAddress {
3963    #[prost(fixed64, optional, tag = "1")]
3964    pub computer_guid: ::core::option::Option<u64>,
3965    #[prost(uint32, optional, tag = "2")]
3966    pub process_id: ::core::option::Option<u32>,
3967}
3968#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3969pub struct CMsgServerPeer {
3970    #[prost(int32, optional, tag = "1", default = "-1")]
3971    pub player_slot: ::core::option::Option<i32>,
3972    #[prost(fixed64, optional, tag = "2")]
3973    pub steamid: ::core::option::Option<u64>,
3974    #[prost(message, optional, tag = "3")]
3975    pub ipc: ::core::option::Option<CMsgIpcAddress>,
3976    #[prost(bool, optional, tag = "4")]
3977    pub they_hear_you: ::core::option::Option<bool>,
3978    #[prost(bool, optional, tag = "5")]
3979    pub you_hear_them: ::core::option::Option<bool>,
3980    #[prost(bool, optional, tag = "6")]
3981    pub is_listenserver_host: ::core::option::Option<bool>,
3982}
3983#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3984pub struct CSvcMsgPeerList {
3985    #[prost(message, repeated, tag = "1")]
3986    pub peer: ::prost::alloc::vec::Vec<CMsgServerPeer>,
3987}
3988#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3989pub struct CSvcMsgClearAllStringTables {
3990    #[prost(string, optional, tag = "1")]
3991    pub mapname: ::core::option::Option<::prost::alloc::string::String>,
3992    #[prost(bool, optional, tag = "3")]
3993    pub create_tables_skipped: ::core::option::Option<bool>,
3994}
3995#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3996pub struct ProtoFlattenedSerializerFieldT {
3997    #[prost(int32, optional, tag = "1")]
3998    pub var_type_sym: ::core::option::Option<i32>,
3999    #[prost(int32, optional, tag = "2")]
4000    pub var_name_sym: ::core::option::Option<i32>,
4001    #[prost(int32, optional, tag = "3")]
4002    pub bit_count: ::core::option::Option<i32>,
4003    #[prost(float, optional, tag = "4")]
4004    pub low_value: ::core::option::Option<f32>,
4005    #[prost(float, optional, tag = "5")]
4006    pub high_value: ::core::option::Option<f32>,
4007    #[prost(int32, optional, tag = "6")]
4008    pub encode_flags: ::core::option::Option<i32>,
4009    #[prost(int32, optional, tag = "7")]
4010    pub field_serializer_name_sym: ::core::option::Option<i32>,
4011    #[prost(int32, optional, tag = "8")]
4012    pub field_serializer_version: ::core::option::Option<i32>,
4013    #[prost(int32, optional, tag = "9")]
4014    pub send_node_sym: ::core::option::Option<i32>,
4015    #[prost(int32, optional, tag = "10")]
4016    pub var_encoder_sym: ::core::option::Option<i32>,
4017    #[prost(message, repeated, tag = "11")]
4018    pub polymorphic_types: ::prost::alloc::vec::Vec<proto_flattened_serializer_field_t::PolymorphicFieldT>,
4019    #[prost(int32, optional, tag = "12")]
4020    pub var_serializer_sym: ::core::option::Option<i32>,
4021}
4022pub mod proto_flattened_serializer_field_t {
4023    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4024    pub struct PolymorphicFieldT {
4025        #[prost(int32, optional, tag = "1")]
4026        pub polymorphic_field_serializer_name_sym: ::core::option::Option<i32>,
4027        #[prost(int32, optional, tag = "2")]
4028        pub polymorphic_field_serializer_version: ::core::option::Option<i32>,
4029    }
4030}
4031#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4032pub struct ProtoFlattenedSerializerT {
4033    #[prost(int32, optional, tag = "1")]
4034    pub serializer_name_sym: ::core::option::Option<i32>,
4035    #[prost(int32, optional, tag = "2")]
4036    pub serializer_version: ::core::option::Option<i32>,
4037    #[prost(int32, repeated, packed = "false", tag = "3")]
4038    pub fields_index: ::prost::alloc::vec::Vec<i32>,
4039}
4040#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4041pub struct CSvcMsgFlattenedSerializer {
4042    #[prost(message, repeated, tag = "1")]
4043    pub serializers: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerT>,
4044    #[prost(string, repeated, tag = "2")]
4045    pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4046    #[prost(message, repeated, tag = "3")]
4047    pub fields: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerFieldT>,
4048}
4049#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4050pub struct CSvcMsgStopSound {
4051    #[prost(fixed32, optional, tag = "1")]
4052    pub guid: ::core::option::Option<u32>,
4053}
4054#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4055pub struct CBidirMsgRebroadcastGameEvent {
4056    #[prost(bool, optional, tag = "1")]
4057    pub posttoserver: ::core::option::Option<bool>,
4058    #[prost(int32, optional, tag = "2")]
4059    pub buftype: ::core::option::Option<i32>,
4060    #[prost(uint32, optional, tag = "3")]
4061    pub clientbitcount: ::core::option::Option<u32>,
4062    #[prost(uint64, optional, tag = "4")]
4063    pub receivingclients: ::core::option::Option<u64>,
4064}
4065#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4066pub struct CBidirMsgRebroadcastSource {
4067    #[prost(int32, optional, tag = "1")]
4068    pub eventsource: ::core::option::Option<i32>,
4069}
4070#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4071pub struct CBidirMsgPredictionEvent {
4072    #[prost(uint32, optional, tag = "1")]
4073    pub event_id: ::core::option::Option<u32>,
4074    #[prost(bytes = "vec", optional, tag = "2")]
4075    pub event_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4076    #[prost(uint32, optional, tag = "3")]
4077    pub sync_type: ::core::option::Option<u32>,
4078    #[prost(uint32, optional, tag = "4")]
4079    pub sync_val_uint32: ::core::option::Option<u32>,
4080}
4081pub mod c_bidir_msg_prediction_event {
4082    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4083    #[repr(i32)]
4084    pub enum ESyncType {
4085        StTick = 0,
4086        StUserCmdNum = 1,
4087    }
4088}
4089#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4090pub struct CMsgServerNetworkStats {
4091    #[prost(bool, optional, tag = "1")]
4092    pub dedicated: ::core::option::Option<bool>,
4093    #[prost(int32, optional, tag = "2")]
4094    pub cpu_usage: ::core::option::Option<i32>,
4095    #[prost(int32, optional, tag = "3")]
4096    pub memory_used_mb: ::core::option::Option<i32>,
4097    #[prost(int32, optional, tag = "4")]
4098    pub memory_free_mb: ::core::option::Option<i32>,
4099    #[prost(int32, optional, tag = "5")]
4100    pub uptime: ::core::option::Option<i32>,
4101    #[prost(int32, optional, tag = "6")]
4102    pub spawn_count: ::core::option::Option<i32>,
4103    #[prost(int32, optional, tag = "8")]
4104    pub num_clients: ::core::option::Option<i32>,
4105    #[prost(int32, optional, tag = "9")]
4106    pub num_bots: ::core::option::Option<i32>,
4107    #[prost(int32, optional, tag = "10")]
4108    pub num_spectators: ::core::option::Option<i32>,
4109    #[prost(int32, optional, tag = "11")]
4110    pub num_tv_relays: ::core::option::Option<i32>,
4111    #[prost(float, optional, tag = "12")]
4112    pub fps: ::core::option::Option<f32>,
4113    #[prost(message, repeated, tag = "17")]
4114    pub ports: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Port>,
4115    #[prost(float, optional, tag = "18")]
4116    pub avg_ping_ms: ::core::option::Option<f32>,
4117    #[prost(float, optional, tag = "19")]
4118    pub avg_engine_latency_out: ::core::option::Option<f32>,
4119    #[prost(float, optional, tag = "20")]
4120    pub avg_packets_out: ::core::option::Option<f32>,
4121    #[prost(float, optional, tag = "21")]
4122    pub avg_packets_in: ::core::option::Option<f32>,
4123    #[prost(float, optional, tag = "22")]
4124    pub avg_loss_out: ::core::option::Option<f32>,
4125    #[prost(float, optional, tag = "23")]
4126    pub avg_loss_in: ::core::option::Option<f32>,
4127    #[prost(float, optional, tag = "24")]
4128    pub avg_data_out: ::core::option::Option<f32>,
4129    #[prost(float, optional, tag = "25")]
4130    pub avg_data_in: ::core::option::Option<f32>,
4131    #[prost(uint64, optional, tag = "26")]
4132    pub total_data_in: ::core::option::Option<u64>,
4133    #[prost(uint64, optional, tag = "27")]
4134    pub total_packets_in: ::core::option::Option<u64>,
4135    #[prost(uint64, optional, tag = "28")]
4136    pub total_data_out: ::core::option::Option<u64>,
4137    #[prost(uint64, optional, tag = "29")]
4138    pub total_packets_out: ::core::option::Option<u64>,
4139    #[prost(message, repeated, tag = "30")]
4140    pub players: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Player>,
4141}
4142pub mod c_msg_server_network_stats {
4143    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4144    pub struct Port {
4145        #[prost(int32, optional, tag = "1")]
4146        pub port: ::core::option::Option<i32>,
4147        #[prost(string, optional, tag = "2")]
4148        pub name: ::core::option::Option<::prost::alloc::string::String>,
4149    }
4150    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4151    pub struct Player {
4152        #[prost(uint64, optional, tag = "1")]
4153        pub steamid: ::core::option::Option<u64>,
4154        #[prost(string, optional, tag = "2")]
4155        pub remote_addr: ::core::option::Option<::prost::alloc::string::String>,
4156        #[prost(int32, optional, tag = "4")]
4157        pub ping_avg_ms: ::core::option::Option<i32>,
4158        #[prost(float, optional, tag = "5")]
4159        pub packet_loss_pct: ::core::option::Option<f32>,
4160        #[prost(bool, optional, tag = "6")]
4161        pub is_bot: ::core::option::Option<bool>,
4162        #[prost(float, optional, tag = "7")]
4163        pub loss_in: ::core::option::Option<f32>,
4164        #[prost(float, optional, tag = "8")]
4165        pub loss_out: ::core::option::Option<f32>,
4166        #[prost(int32, optional, tag = "9")]
4167        pub engine_latency_ms: ::core::option::Option<i32>,
4168    }
4169}
4170#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4171pub struct CSvcMsgHltvReplay {
4172    #[prost(int32, optional, tag = "1")]
4173    pub delay: ::core::option::Option<i32>,
4174    #[prost(int32, optional, tag = "2", default = "-1")]
4175    pub primary_target: ::core::option::Option<i32>,
4176    #[prost(int32, optional, tag = "3")]
4177    pub replay_stop_at: ::core::option::Option<i32>,
4178    #[prost(int32, optional, tag = "4")]
4179    pub replay_start_at: ::core::option::Option<i32>,
4180    #[prost(int32, optional, tag = "5")]
4181    pub replay_slowdown_begin: ::core::option::Option<i32>,
4182    #[prost(int32, optional, tag = "6")]
4183    pub replay_slowdown_end: ::core::option::Option<i32>,
4184    #[prost(float, optional, tag = "7")]
4185    pub replay_slowdown_rate: ::core::option::Option<f32>,
4186    #[prost(int32, optional, tag = "8")]
4187    pub reason: ::core::option::Option<i32>,
4188}
4189#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4190pub struct CclcMsgHltvReplay {
4191    #[prost(int32, optional, tag = "1")]
4192    pub request: ::core::option::Option<i32>,
4193    #[prost(float, optional, tag = "2")]
4194    pub slowdown_length: ::core::option::Option<f32>,
4195    #[prost(float, optional, tag = "3")]
4196    pub slowdown_rate: ::core::option::Option<f32>,
4197    #[prost(int32, optional, tag = "4", default = "-1")]
4198    pub primary_target: ::core::option::Option<i32>,
4199    #[prost(float, optional, tag = "5")]
4200    pub event_time: ::core::option::Option<f32>,
4201}
4202#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4203pub struct CSvcMsgBroadcastCommand {
4204    #[prost(string, optional, tag = "1")]
4205    pub cmd: ::core::option::Option<::prost::alloc::string::String>,
4206}
4207#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4208pub struct CclcMsgHltvFixupOperatorTick {
4209    #[prost(int32, optional, tag = "1")]
4210    pub tick: ::core::option::Option<i32>,
4211    #[prost(bytes = "vec", optional, tag = "2")]
4212    pub props_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4213    #[prost(message, optional, tag = "3")]
4214    pub origin: ::core::option::Option<CMsgVector>,
4215    #[prost(message, optional, tag = "4")]
4216    pub eye_angles: ::core::option::Option<CMsgQAngle>,
4217    #[prost(int32, optional, tag = "5")]
4218    pub observer_mode: ::core::option::Option<i32>,
4219    #[prost(bool, optional, tag = "6")]
4220    pub cameraman_scoreboard: ::core::option::Option<bool>,
4221    #[prost(int32, optional, tag = "7")]
4222    pub observer_target: ::core::option::Option<i32>,
4223    #[prost(message, optional, tag = "8")]
4224    pub view_offset: ::core::option::Option<CMsgVector>,
4225}
4226#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4227pub struct CSvcMsgHltvFixupOperatorStatus {
4228    #[prost(uint32, optional, tag = "1")]
4229    pub mode: ::core::option::Option<u32>,
4230    #[prost(string, optional, tag = "2")]
4231    pub override_operator_name: ::core::option::Option<::prost::alloc::string::String>,
4232}
4233#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4234pub struct CMsgServerUserCmd {
4235    #[prost(bytes = "vec", optional, tag = "1")]
4236    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4237    #[prost(int32, optional, tag = "2")]
4238    pub cmd_number: ::core::option::Option<i32>,
4239    #[prost(int32, optional, tag = "3", default = "-1")]
4240    pub player_slot: ::core::option::Option<i32>,
4241    #[prost(int32, optional, tag = "4")]
4242    pub server_tick_executed: ::core::option::Option<i32>,
4243    #[prost(int32, optional, tag = "5")]
4244    pub client_tick: ::core::option::Option<i32>,
4245}
4246#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4247pub struct CSvcMsgUserCommands {
4248    #[prost(message, repeated, tag = "1")]
4249    pub commands: ::prost::alloc::vec::Vec<CMsgServerUserCmd>,
4250}
4251#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4252pub struct CSvcMsgNextMsgPredicted {
4253    #[prost(int32, optional, tag = "1", default = "-1")]
4254    pub predicted_by_player_slot: ::core::option::Option<i32>,
4255    #[prost(uint32, optional, tag = "2")]
4256    pub message_type_id: ::core::option::Option<u32>,
4257}
4258#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4259#[repr(i32)]
4260pub enum ClcMessages {
4261    ClcClientInfo = 20,
4262    ClcMove = 21,
4263    ClcVoiceData = 22,
4264    ClcBaselineAck = 23,
4265    ClcRespondCvarValue = 25,
4266    ClcLoadingProgress = 27,
4267    ClcSplitPlayerConnect = 28,
4268    ClcSplitPlayerDisconnect = 30,
4269    ClcServerStatus = 31,
4270    ClcRequestPause = 33,
4271    ClcCmdKeyValues = 34,
4272    ClcRconServerDetails = 35,
4273    ClcHltvReplay = 36,
4274    ClcDiagnostic = 37,
4275}
4276#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4277#[repr(i32)]
4278pub enum SvcMessages {
4279    SvcServerInfo = 40,
4280    SvcFlattenedSerializer = 41,
4281    SvcClassInfo = 42,
4282    SvcSetPause = 43,
4283    SvcCreateStringTable = 44,
4284    SvcUpdateStringTable = 45,
4285    SvcVoiceInit = 46,
4286    SvcVoiceData = 47,
4287    SvcPrint = 48,
4288    SvcSounds = 49,
4289    SvcSetView = 50,
4290    SvcClearAllStringTables = 51,
4291    SvcCmdKeyValues = 52,
4292    SvcBspDecal = 53,
4293    SvcSplitScreen = 54,
4294    SvcPacketEntities = 55,
4295    SvcPrefetch = 56,
4296    SvcMenu = 57,
4297    SvcGetCvarValue = 58,
4298    SvcStopSound = 59,
4299    SvcPeerList = 60,
4300    SvcPacketReliable = 61,
4301    SvcHltvStatus = 62,
4302    SvcServerSteamId = 63,
4303    SvcFullFrameSplit = 70,
4304    SvcRconServerDetails = 71,
4305    SvcUserMessage = 72,
4306    SvcBroadcastCommand = 74,
4307    SvcHltvFixupOperatorStatus = 75,
4308    SvcUserCmds = 76,
4309    SvcNextMsgPredicted = 77,
4310}
4311#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4312#[repr(i32)]
4313pub enum VoiceDataFormatT {
4314    VoicedataFormatSteam = 0,
4315    VoicedataFormatEngine = 1,
4316    VoicedataFormatOpus = 2,
4317}
4318#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4319#[repr(i32)]
4320pub enum RequestPauseT {
4321    RpPause = 0,
4322    RpUnpause = 1,
4323    RpTogglepause = 2,
4324}
4325#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4326#[repr(i32)]
4327pub enum PrefetchType {
4328    PftSound = 0,
4329}
4330#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4331#[repr(i32)]
4332pub enum ESplitScreenMessageType {
4333    MsgSplitscreenAdduser = 0,
4334    MsgSplitscreenRemoveuser = 1,
4335}
4336#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4337#[repr(i32)]
4338pub enum EQueryCvarValueStatus {
4339    ValueIntact = 0,
4340    CvarNotFound = 1,
4341    NotACvar = 2,
4342    CvarProtected = 3,
4343}
4344#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4345#[repr(i32)]
4346pub enum DialogType {
4347    DialogMsg = 0,
4348    DialogMenu = 1,
4349    DialogText = 2,
4350    DialogEntry = 3,
4351    DialogAskconnect = 4,
4352}
4353#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4354#[repr(i32)]
4355pub enum SvcMessagesLowFrequency {
4356    SvcDummy = 600,
4357}
4358#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4359#[repr(i32)]
4360pub enum BidirectionalMessages {
4361    BiRebroadcastGameEvent = 16,
4362    BiRebroadcastSource = 17,
4363    BiGameEventDeprecated = 18,
4364    BiPredictionEvent = 19,
4365}
4366#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4367#[repr(i32)]
4368pub enum ReplayEventTypeT {
4369    ReplayEventCancel = 0,
4370    ReplayEventDeath = 1,
4371    ReplayEventGeneric = 2,
4372    ReplayEventStuckNeedFullUpdate = 3,
4373    ReplayEventVictory = 4,
4374}
4375#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4376pub struct CUserMessageAchievementEvent {
4377    #[prost(uint32, optional, tag = "1")]
4378    pub achievement: ::core::option::Option<u32>,
4379}
4380#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4381pub struct CUserMessageCloseCaption {
4382    #[prost(fixed32, optional, tag = "1")]
4383    pub hash: ::core::option::Option<u32>,
4384    #[prost(float, optional, tag = "2")]
4385    pub duration: ::core::option::Option<f32>,
4386    #[prost(bool, optional, tag = "3")]
4387    pub from_player: ::core::option::Option<bool>,
4388    #[prost(int32, optional, tag = "4", default = "-1")]
4389    pub ent_index: ::core::option::Option<i32>,
4390}
4391#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4392pub struct CUserMessageCloseCaptionDirect {
4393    #[prost(fixed32, optional, tag = "1")]
4394    pub hash: ::core::option::Option<u32>,
4395    #[prost(float, optional, tag = "2")]
4396    pub duration: ::core::option::Option<f32>,
4397    #[prost(bool, optional, tag = "3")]
4398    pub from_player: ::core::option::Option<bool>,
4399    #[prost(int32, optional, tag = "4", default = "-1")]
4400    pub ent_index: ::core::option::Option<i32>,
4401}
4402#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4403pub struct CUserMessageCloseCaptionPlaceholder {
4404    #[prost(string, optional, tag = "1")]
4405    pub string: ::core::option::Option<::prost::alloc::string::String>,
4406    #[prost(float, optional, tag = "2")]
4407    pub duration: ::core::option::Option<f32>,
4408    #[prost(bool, optional, tag = "3")]
4409    pub from_player: ::core::option::Option<bool>,
4410    #[prost(int32, optional, tag = "4", default = "-1")]
4411    pub ent_index: ::core::option::Option<i32>,
4412}
4413#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4414pub struct CUserMessageCurrentTimescale {
4415    #[prost(float, optional, tag = "1")]
4416    pub current: ::core::option::Option<f32>,
4417}
4418#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4419pub struct CUserMessageDesiredTimescale {
4420    #[prost(float, optional, tag = "1")]
4421    pub desired: ::core::option::Option<f32>,
4422    #[prost(float, optional, tag = "2")]
4423    pub acceleration: ::core::option::Option<f32>,
4424    #[prost(float, optional, tag = "3")]
4425    pub minblendrate: ::core::option::Option<f32>,
4426    #[prost(float, optional, tag = "4")]
4427    pub blenddeltamultiplier: ::core::option::Option<f32>,
4428}
4429#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4430pub struct CUserMessageFade {
4431    #[prost(uint32, optional, tag = "1")]
4432    pub duration: ::core::option::Option<u32>,
4433    #[prost(uint32, optional, tag = "2")]
4434    pub hold_time: ::core::option::Option<u32>,
4435    #[prost(uint32, optional, tag = "3")]
4436    pub flags: ::core::option::Option<u32>,
4437    #[prost(fixed32, optional, tag = "4")]
4438    pub color: ::core::option::Option<u32>,
4439}
4440#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4441pub struct CUserMessageShake {
4442    #[prost(uint32, optional, tag = "1")]
4443    pub command: ::core::option::Option<u32>,
4444    #[prost(float, optional, tag = "2")]
4445    pub amplitude: ::core::option::Option<f32>,
4446    #[prost(float, optional, tag = "3")]
4447    pub frequency: ::core::option::Option<f32>,
4448    #[prost(float, optional, tag = "4")]
4449    pub duration: ::core::option::Option<f32>,
4450}
4451#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4452pub struct CUserMessageShakeDir {
4453    #[prost(message, optional, tag = "1")]
4454    pub shake: ::core::option::Option<CUserMessageShake>,
4455    #[prost(message, optional, tag = "2")]
4456    pub direction: ::core::option::Option<CMsgVector>,
4457}
4458#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4459pub struct CUserMessageWaterShake {
4460    #[prost(uint32, optional, tag = "1")]
4461    pub command: ::core::option::Option<u32>,
4462    #[prost(float, optional, tag = "2")]
4463    pub amplitude: ::core::option::Option<f32>,
4464    #[prost(float, optional, tag = "3")]
4465    pub frequency: ::core::option::Option<f32>,
4466    #[prost(float, optional, tag = "4")]
4467    pub duration: ::core::option::Option<f32>,
4468}
4469#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4470pub struct CUserMessageScreenTilt {
4471    #[prost(uint32, optional, tag = "1")]
4472    pub command: ::core::option::Option<u32>,
4473    #[prost(bool, optional, tag = "2")]
4474    pub ease_in_out: ::core::option::Option<bool>,
4475    #[prost(message, optional, tag = "3")]
4476    pub angle: ::core::option::Option<CMsgVector>,
4477    #[prost(float, optional, tag = "4")]
4478    pub duration: ::core::option::Option<f32>,
4479    #[prost(float, optional, tag = "5")]
4480    pub time: ::core::option::Option<f32>,
4481}
4482#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4483pub struct CUserMessageSayText {
4484    #[prost(int32, optional, tag = "1", default = "-1")]
4485    pub playerindex: ::core::option::Option<i32>,
4486    #[prost(string, optional, tag = "2")]
4487    pub text: ::core::option::Option<::prost::alloc::string::String>,
4488    #[prost(bool, optional, tag = "3")]
4489    pub chat: ::core::option::Option<bool>,
4490}
4491#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4492pub struct CUserMessageSayText2 {
4493    #[prost(int32, optional, tag = "1", default = "-1")]
4494    pub entityindex: ::core::option::Option<i32>,
4495    #[prost(bool, optional, tag = "2")]
4496    pub chat: ::core::option::Option<bool>,
4497    #[prost(string, optional, tag = "3")]
4498    pub messagename: ::core::option::Option<::prost::alloc::string::String>,
4499    #[prost(string, optional, tag = "4")]
4500    pub param1: ::core::option::Option<::prost::alloc::string::String>,
4501    #[prost(string, optional, tag = "5")]
4502    pub param2: ::core::option::Option<::prost::alloc::string::String>,
4503    #[prost(string, optional, tag = "6")]
4504    pub param3: ::core::option::Option<::prost::alloc::string::String>,
4505    #[prost(string, optional, tag = "7")]
4506    pub param4: ::core::option::Option<::prost::alloc::string::String>,
4507}
4508#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4509pub struct CUserMessageHudMsg {
4510    #[prost(uint32, optional, tag = "1")]
4511    pub channel: ::core::option::Option<u32>,
4512    #[prost(float, optional, tag = "2")]
4513    pub x: ::core::option::Option<f32>,
4514    #[prost(float, optional, tag = "3")]
4515    pub y: ::core::option::Option<f32>,
4516    #[prost(fixed32, optional, tag = "4")]
4517    pub color1: ::core::option::Option<u32>,
4518    #[prost(fixed32, optional, tag = "5")]
4519    pub color2: ::core::option::Option<u32>,
4520    #[prost(uint32, optional, tag = "6")]
4521    pub effect: ::core::option::Option<u32>,
4522    #[prost(string, optional, tag = "11")]
4523    pub message: ::core::option::Option<::prost::alloc::string::String>,
4524}
4525#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4526pub struct CUserMessageHudText {
4527    #[prost(string, optional, tag = "1")]
4528    pub message: ::core::option::Option<::prost::alloc::string::String>,
4529}
4530#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4531pub struct CUserMessageTextMsg {
4532    #[prost(uint32, optional, tag = "1")]
4533    pub dest: ::core::option::Option<u32>,
4534    #[prost(string, repeated, tag = "2")]
4535    pub param: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4536}
4537#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4538pub struct CUserMessageGameTitle {}
4539#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4540pub struct CUserMessageResetHud {}
4541#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4542pub struct CUserMessageSendAudio {
4543    #[prost(string, optional, tag = "1")]
4544    pub soundname: ::core::option::Option<::prost::alloc::string::String>,
4545    #[prost(bool, optional, tag = "2")]
4546    pub stop: ::core::option::Option<bool>,
4547}
4548#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4549pub struct CUserMessageAudioParameter {
4550    #[prost(uint32, optional, tag = "1")]
4551    pub parameter_type: ::core::option::Option<u32>,
4552    #[prost(uint32, optional, tag = "2")]
4553    pub name_hash_code: ::core::option::Option<u32>,
4554    #[prost(float, optional, tag = "3")]
4555    pub value: ::core::option::Option<f32>,
4556    #[prost(uint32, optional, tag = "4")]
4557    pub int_value: ::core::option::Option<u32>,
4558}
4559#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4560pub struct CUserMessageVoiceMask {
4561    #[prost(uint32, repeated, packed = "false", tag = "1")]
4562    pub gamerules_masks: ::prost::alloc::vec::Vec<u32>,
4563    #[prost(uint32, repeated, packed = "false", tag = "2")]
4564    pub ban_masks: ::prost::alloc::vec::Vec<u32>,
4565    #[prost(bool, optional, tag = "3")]
4566    pub mod_enable: ::core::option::Option<bool>,
4567}
4568#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4569pub struct CUserMessageRequestState {}
4570#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4571pub struct CUserMessageRumble {
4572    #[prost(int32, optional, tag = "1")]
4573    pub index: ::core::option::Option<i32>,
4574    #[prost(int32, optional, tag = "2")]
4575    pub data: ::core::option::Option<i32>,
4576    #[prost(int32, optional, tag = "3")]
4577    pub flags: ::core::option::Option<i32>,
4578}
4579#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4580pub struct CUserMessageSayTextChannel {
4581    #[prost(int32, optional, tag = "1")]
4582    pub player: ::core::option::Option<i32>,
4583    #[prost(int32, optional, tag = "2")]
4584    pub channel: ::core::option::Option<i32>,
4585    #[prost(string, optional, tag = "3")]
4586    pub text: ::core::option::Option<::prost::alloc::string::String>,
4587}
4588#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4589pub struct CUserMessageColoredText {
4590    #[prost(uint32, optional, tag = "1")]
4591    pub color: ::core::option::Option<u32>,
4592    #[prost(string, optional, tag = "2")]
4593    pub text: ::core::option::Option<::prost::alloc::string::String>,
4594    #[prost(bool, optional, tag = "3")]
4595    pub reset: ::core::option::Option<bool>,
4596    #[prost(int32, optional, tag = "4", default = "-1")]
4597    pub context_player_slot: ::core::option::Option<i32>,
4598    #[prost(int32, optional, tag = "5")]
4599    pub context_value: ::core::option::Option<i32>,
4600    #[prost(int32, optional, tag = "6")]
4601    pub context_team_id: ::core::option::Option<i32>,
4602}
4603#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4604pub struct CUserMessageItemPickup {
4605    #[prost(string, optional, tag = "1")]
4606    pub itemname: ::core::option::Option<::prost::alloc::string::String>,
4607}
4608#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4609pub struct CUserMessageAmmoDenied {
4610    #[prost(uint32, optional, tag = "1")]
4611    pub ammo_id: ::core::option::Option<u32>,
4612}
4613#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4614pub struct CUserMessageShowMenu {
4615    #[prost(uint32, optional, tag = "1")]
4616    pub validslots: ::core::option::Option<u32>,
4617    #[prost(uint32, optional, tag = "2")]
4618    pub displaytime: ::core::option::Option<u32>,
4619    #[prost(bool, optional, tag = "3")]
4620    pub needmore: ::core::option::Option<bool>,
4621    #[prost(string, optional, tag = "4")]
4622    pub menustring: ::core::option::Option<::prost::alloc::string::String>,
4623}
4624#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4625pub struct CUserMessageCreditsMsg {
4626    #[prost(enumeration = "ERollType", optional, tag = "1", default = "RollNone")]
4627    pub rolltype: ::core::option::Option<i32>,
4628    #[prost(float, optional, tag = "2")]
4629    pub logo_length: ::core::option::Option<f32>,
4630}
4631#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4632pub struct CEntityMessagePlayJingle {
4633    #[prost(message, optional, tag = "1")]
4634    pub entity_msg: ::core::option::Option<CEntityMsg>,
4635}
4636#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4637pub struct CEntityMessageScreenOverlay {
4638    #[prost(bool, optional, tag = "1")]
4639    pub start_effect: ::core::option::Option<bool>,
4640    #[prost(message, optional, tag = "2")]
4641    pub entity_msg: ::core::option::Option<CEntityMsg>,
4642}
4643#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4644pub struct CEntityMessageRemoveAllDecals {
4645    #[prost(bool, optional, tag = "1")]
4646    pub remove_decals: ::core::option::Option<bool>,
4647    #[prost(message, optional, tag = "2")]
4648    pub entity_msg: ::core::option::Option<CEntityMsg>,
4649}
4650#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4651pub struct CEntityMessagePropagateForce {
4652    #[prost(message, optional, tag = "1")]
4653    pub impulse: ::core::option::Option<CMsgVector>,
4654    #[prost(message, optional, tag = "2")]
4655    pub entity_msg: ::core::option::Option<CEntityMsg>,
4656}
4657#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4658pub struct CEntityMessageDoSpark {
4659    #[prost(message, optional, tag = "1")]
4660    pub origin: ::core::option::Option<CMsgVector>,
4661    #[prost(int32, optional, tag = "2", default = "-1")]
4662    pub entityindex: ::core::option::Option<i32>,
4663    #[prost(float, optional, tag = "3")]
4664    pub radius: ::core::option::Option<f32>,
4665    #[prost(fixed32, optional, tag = "4")]
4666    pub color: ::core::option::Option<u32>,
4667    #[prost(uint32, optional, tag = "5")]
4668    pub beams: ::core::option::Option<u32>,
4669    #[prost(float, optional, tag = "6")]
4670    pub thick: ::core::option::Option<f32>,
4671    #[prost(float, optional, tag = "7")]
4672    pub duration: ::core::option::Option<f32>,
4673    #[prost(message, optional, tag = "8")]
4674    pub entity_msg: ::core::option::Option<CEntityMsg>,
4675}
4676#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4677pub struct CEntityMessageFixAngle {
4678    #[prost(bool, optional, tag = "1")]
4679    pub relative: ::core::option::Option<bool>,
4680    #[prost(message, optional, tag = "2")]
4681    pub angle: ::core::option::Option<CMsgQAngle>,
4682    #[prost(message, optional, tag = "3")]
4683    pub entity_msg: ::core::option::Option<CEntityMsg>,
4684}
4685#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4686pub struct CUserMessageCameraTransition {
4687    #[prost(uint32, optional, tag = "1")]
4688    pub camera_type: ::core::option::Option<u32>,
4689    #[prost(float, optional, tag = "2")]
4690    pub duration: ::core::option::Option<f32>,
4691    #[prost(message, optional, tag = "3")]
4692    pub params_data_driven: ::core::option::Option<c_user_message_camera_transition::TransitionDataDriven>,
4693}
4694pub mod c_user_message_camera_transition {
4695    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4696    pub struct TransitionDataDriven {
4697        #[prost(string, optional, tag = "1")]
4698        pub filename: ::core::option::Option<::prost::alloc::string::String>,
4699        #[prost(int32, optional, tag = "2", default = "-1")]
4700        pub attach_ent_index: ::core::option::Option<i32>,
4701        #[prost(float, optional, tag = "3")]
4702        pub duration: ::core::option::Option<f32>,
4703    }
4704}
4705#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4706pub struct CUserMsgParticleManager {
4707    #[prost(enumeration = "ParticleMessage", optional, tag = "1", default = "GameParticleManagerEventCreate")]
4708    pub r#type: ::core::option::Option<i32>,
4709    #[prost(uint32, optional, tag = "2")]
4710    pub index: ::core::option::Option<u32>,
4711    #[prost(message, optional, tag = "3")]
4712    pub release_particle_index: ::core::option::Option<c_user_msg_particle_manager::ReleaseParticleIndex>,
4713    #[prost(message, optional, tag = "4")]
4714    pub create_particle: ::core::option::Option<c_user_msg_particle_manager::CreateParticle>,
4715    #[prost(message, optional, tag = "5")]
4716    pub destroy_particle: ::core::option::Option<c_user_msg_particle_manager::DestroyParticle>,
4717    #[prost(message, optional, tag = "6")]
4718    pub destroy_particle_involving: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleInvolving>,
4719    #[prost(message, optional, tag = "7")]
4720    pub update_particle: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleObsolete>,
4721    #[prost(message, optional, tag = "8")]
4722    pub update_particle_fwd: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFwdObsolete>,
4723    #[prost(message, optional, tag = "9")]
4724    pub update_particle_orient: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOrientObsolete>,
4725    #[prost(message, optional, tag = "10")]
4726    pub update_particle_fallback: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFallback>,
4727    #[prost(message, optional, tag = "11")]
4728    pub update_particle_offset: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOffset>,
4729    #[prost(message, optional, tag = "12")]
4730    pub update_particle_ent: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleEnt>,
4731    #[prost(message, optional, tag = "14")]
4732    pub update_particle_should_draw: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleShouldDraw>,
4733    #[prost(message, optional, tag = "15")]
4734    pub update_particle_set_frozen: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleSetFrozen>,
4735    #[prost(message, optional, tag = "16")]
4736    pub change_control_point_attachment: ::core::option::Option<c_user_msg_particle_manager::ChangeControlPointAttachment>,
4737    #[prost(message, optional, tag = "17")]
4738    pub update_entity_position: ::core::option::Option<c_user_msg_particle_manager::UpdateEntityPosition>,
4739    #[prost(message, optional, tag = "18")]
4740    pub set_particle_fow_properties: ::core::option::Option<c_user_msg_particle_manager::SetParticleFoWProperties>,
4741    #[prost(message, optional, tag = "19")]
4742    pub set_particle_text: ::core::option::Option<c_user_msg_particle_manager::SetParticleText>,
4743    #[prost(message, optional, tag = "20")]
4744    pub set_particle_should_check_fow: ::core::option::Option<c_user_msg_particle_manager::SetParticleShouldCheckFoW>,
4745    #[prost(message, optional, tag = "21")]
4746    pub set_control_point_model: ::core::option::Option<c_user_msg_particle_manager::SetControlPointModel>,
4747    #[prost(message, optional, tag = "22")]
4748    pub set_control_point_snapshot: ::core::option::Option<c_user_msg_particle_manager::SetControlPointSnapshot>,
4749    #[prost(message, optional, tag = "23")]
4750    pub set_texture_attribute: ::core::option::Option<c_user_msg_particle_manager::SetTextureAttribute>,
4751    #[prost(message, optional, tag = "24")]
4752    pub set_scene_object_generic_flag: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectGenericFlag>,
4753    #[prost(message, optional, tag = "25")]
4754    pub set_scene_object_tint_and_desat: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectTintAndDesat>,
4755    #[prost(message, optional, tag = "26")]
4756    pub destroy_particle_named: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleNamed>,
4757    #[prost(message, optional, tag = "27")]
4758    pub particle_skip_to_time: ::core::option::Option<c_user_msg_particle_manager::ParticleSkipToTime>,
4759    #[prost(message, optional, tag = "28")]
4760    pub particle_can_freeze: ::core::option::Option<c_user_msg_particle_manager::ParticleCanFreeze>,
4761    #[prost(message, optional, tag = "29")]
4762    pub set_named_value_context: ::core::option::Option<c_user_msg_particle_manager::SetParticleNamedValueContext>,
4763    #[prost(message, optional, tag = "30")]
4764    pub update_particle_transform: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleTransform>,
4765    #[prost(message, optional, tag = "31")]
4766    pub particle_freeze_transition_override: ::core::option::Option<c_user_msg_particle_manager::ParticleFreezeTransitionOverride>,
4767    #[prost(message, optional, tag = "32")]
4768    pub freeze_particle_involving: ::core::option::Option<c_user_msg_particle_manager::FreezeParticleInvolving>,
4769    #[prost(message, optional, tag = "33")]
4770    pub add_modellist_override_element: ::core::option::Option<c_user_msg_particle_manager::AddModellistOverrideElement>,
4771    #[prost(message, optional, tag = "34")]
4772    pub clear_modellist_override: ::core::option::Option<c_user_msg_particle_manager::ClearModellistOverride>,
4773    #[prost(message, optional, tag = "35")]
4774    pub create_physics_sim: ::core::option::Option<c_user_msg_particle_manager::CreatePhysicsSim>,
4775    #[prost(message, optional, tag = "36")]
4776    pub destroy_physics_sim: ::core::option::Option<c_user_msg_particle_manager::DestroyPhysicsSim>,
4777    #[prost(message, optional, tag = "37")]
4778    pub set_vdata: ::core::option::Option<c_user_msg_particle_manager::SetVData>,
4779    #[prost(message, optional, tag = "38")]
4780    pub set_material_override: ::core::option::Option<c_user_msg_particle_manager::SetMaterialOverride>,
4781    #[prost(message, optional, tag = "39")]
4782    pub add_fan: ::core::option::Option<c_user_msg_particle_manager::AddFan>,
4783    #[prost(message, optional, tag = "40")]
4784    pub update_fan: ::core::option::Option<c_user_msg_particle_manager::UpdateFan>,
4785    #[prost(message, optional, tag = "41")]
4786    pub set_particle_cluster_growth: ::core::option::Option<c_user_msg_particle_manager::SetParticleClusterGrowth>,
4787    #[prost(message, optional, tag = "42")]
4788    pub remove_fan: ::core::option::Option<c_user_msg_particle_manager::RemoveFan>,
4789    #[prost(message, optional, tag = "43")]
4790    pub create_smoke_grid: ::core::option::Option<c_user_msg_particle_manager::CreateSmokeGrid>,
4791    #[prost(message, optional, tag = "44")]
4792    pub set_override_texture: ::core::option::Option<c_user_msg_particle_manager::SetOverrideTexture>,
4793}
4794pub mod c_user_msg_particle_manager {
4795    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4796    pub struct ReleaseParticleIndex {}
4797    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4798    pub struct CreateParticle {
4799        #[prost(fixed64, optional, tag = "1")]
4800        pub particle_name_index: ::core::option::Option<u64>,
4801        #[prost(int32, optional, tag = "2")]
4802        pub attach_type: ::core::option::Option<i32>,
4803        #[prost(uint32, optional, tag = "3", default = "16777215")]
4804        pub entity_handle: ::core::option::Option<u32>,
4805        #[prost(uint32, optional, tag = "4", default = "16777215")]
4806        pub entity_handle_for_modifiers: ::core::option::Option<u32>,
4807        #[prost(bool, optional, tag = "5")]
4808        pub apply_voice_ban_rules: ::core::option::Option<bool>,
4809        #[prost(int32, optional, tag = "6")]
4810        pub team_behavior: ::core::option::Option<i32>,
4811        #[prost(string, optional, tag = "7")]
4812        pub control_point_configuration: ::core::option::Option<::prost::alloc::string::String>,
4813        #[prost(bool, optional, tag = "8")]
4814        pub cluster: ::core::option::Option<bool>,
4815        #[prost(float, optional, tag = "9")]
4816        pub endcap_time: ::core::option::Option<f32>,
4817        #[prost(message, optional, tag = "10")]
4818        pub aggregation_position: ::core::option::Option<super::CMsgVector>,
4819    }
4820    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4821    pub struct DestroyParticle {
4822        #[prost(bool, optional, tag = "1")]
4823        pub destroy_immediately: ::core::option::Option<bool>,
4824    }
4825    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4826    pub struct DestroyParticleInvolving {
4827        #[prost(bool, optional, tag = "1")]
4828        pub destroy_immediately: ::core::option::Option<bool>,
4829        #[prost(uint32, optional, tag = "3", default = "16777215")]
4830        pub entity_handle: ::core::option::Option<u32>,
4831    }
4832    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4833    pub struct DestroyParticleNamed {
4834        #[prost(fixed64, optional, tag = "1")]
4835        pub particle_name_index: ::core::option::Option<u64>,
4836        #[prost(uint32, optional, tag = "2", default = "16777215")]
4837        pub entity_handle: ::core::option::Option<u32>,
4838        #[prost(bool, optional, tag = "3")]
4839        pub destroy_immediately: ::core::option::Option<bool>,
4840        #[prost(bool, optional, tag = "4")]
4841        pub play_endcap: ::core::option::Option<bool>,
4842    }
4843    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4844    pub struct UpdateParticleObsolete {
4845        #[prost(int32, optional, tag = "1")]
4846        pub control_point: ::core::option::Option<i32>,
4847        #[prost(message, optional, tag = "2")]
4848        pub position: ::core::option::Option<super::CMsgVector>,
4849    }
4850    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4851    pub struct UpdateParticleFwdObsolete {
4852        #[prost(int32, optional, tag = "1")]
4853        pub control_point: ::core::option::Option<i32>,
4854        #[prost(message, optional, tag = "2")]
4855        pub forward: ::core::option::Option<super::CMsgVector>,
4856    }
4857    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4858    pub struct UpdateParticleOrientObsolete {
4859        #[prost(int32, optional, tag = "1")]
4860        pub control_point: ::core::option::Option<i32>,
4861        #[prost(message, optional, tag = "2")]
4862        pub forward: ::core::option::Option<super::CMsgVector>,
4863        #[prost(message, optional, tag = "3")]
4864        pub deprecated_right: ::core::option::Option<super::CMsgVector>,
4865        #[prost(message, optional, tag = "4")]
4866        pub up: ::core::option::Option<super::CMsgVector>,
4867        #[prost(message, optional, tag = "5")]
4868        pub left: ::core::option::Option<super::CMsgVector>,
4869    }
4870    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4871    pub struct UpdateParticleTransform {
4872        #[prost(int32, optional, tag = "1")]
4873        pub control_point: ::core::option::Option<i32>,
4874        #[prost(message, optional, tag = "2")]
4875        pub position: ::core::option::Option<super::CMsgVector>,
4876        #[prost(message, optional, tag = "3")]
4877        pub orientation: ::core::option::Option<super::CMsgQuaternion>,
4878        #[prost(float, optional, tag = "4")]
4879        pub interpolation_interval: ::core::option::Option<f32>,
4880    }
4881    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4882    pub struct UpdateParticleFallback {
4883        #[prost(int32, optional, tag = "1")]
4884        pub control_point: ::core::option::Option<i32>,
4885        #[prost(message, optional, tag = "2")]
4886        pub position: ::core::option::Option<super::CMsgVector>,
4887    }
4888    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4889    pub struct UpdateParticleOffset {
4890        #[prost(int32, optional, tag = "1")]
4891        pub control_point: ::core::option::Option<i32>,
4892        #[prost(message, optional, tag = "2")]
4893        pub origin_offset: ::core::option::Option<super::CMsgVector>,
4894        #[prost(message, optional, tag = "3")]
4895        pub angle_offset: ::core::option::Option<super::CMsgQAngle>,
4896    }
4897    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4898    pub struct UpdateParticleEnt {
4899        #[prost(int32, optional, tag = "1")]
4900        pub control_point: ::core::option::Option<i32>,
4901        #[prost(uint32, optional, tag = "2", default = "16777215")]
4902        pub entity_handle: ::core::option::Option<u32>,
4903        #[prost(int32, optional, tag = "3")]
4904        pub attach_type: ::core::option::Option<i32>,
4905        #[prost(int32, optional, tag = "4")]
4906        pub attachment: ::core::option::Option<i32>,
4907        #[prost(message, optional, tag = "5")]
4908        pub fallback_position: ::core::option::Option<super::CMsgVector>,
4909        #[prost(bool, optional, tag = "6")]
4910        pub include_wearables: ::core::option::Option<bool>,
4911        #[prost(message, optional, tag = "7")]
4912        pub offset_position: ::core::option::Option<super::CMsgVector>,
4913        #[prost(message, optional, tag = "8")]
4914        pub offset_angles: ::core::option::Option<super::CMsgQAngle>,
4915    }
4916    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4917    pub struct UpdateParticleSetFrozen {
4918        #[prost(bool, optional, tag = "1")]
4919        pub set_frozen: ::core::option::Option<bool>,
4920        #[prost(float, optional, tag = "2")]
4921        pub transition_duration: ::core::option::Option<f32>,
4922    }
4923    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4924    pub struct UpdateParticleShouldDraw {
4925        #[prost(bool, optional, tag = "1")]
4926        pub should_draw: ::core::option::Option<bool>,
4927    }
4928    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4929    pub struct ChangeControlPointAttachment {
4930        #[prost(int32, optional, tag = "1")]
4931        pub attachment_old: ::core::option::Option<i32>,
4932        #[prost(int32, optional, tag = "2")]
4933        pub attachment_new: ::core::option::Option<i32>,
4934        #[prost(uint32, optional, tag = "3", default = "16777215")]
4935        pub entity_handle: ::core::option::Option<u32>,
4936    }
4937    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4938    pub struct UpdateEntityPosition {
4939        #[prost(uint32, optional, tag = "1", default = "16777215")]
4940        pub entity_handle: ::core::option::Option<u32>,
4941        #[prost(message, optional, tag = "2")]
4942        pub position: ::core::option::Option<super::CMsgVector>,
4943    }
4944    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4945    pub struct SetParticleFoWProperties {
4946        #[prost(int32, optional, tag = "1")]
4947        pub fow_control_point: ::core::option::Option<i32>,
4948        #[prost(int32, optional, tag = "2")]
4949        pub fow_control_point2: ::core::option::Option<i32>,
4950        #[prost(float, optional, tag = "3")]
4951        pub fow_radius: ::core::option::Option<f32>,
4952    }
4953    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4954    pub struct SetParticleShouldCheckFoW {
4955        #[prost(bool, optional, tag = "1")]
4956        pub check_fow: ::core::option::Option<bool>,
4957    }
4958    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4959    pub struct SetControlPointModel {
4960        #[prost(int32, optional, tag = "1")]
4961        pub control_point: ::core::option::Option<i32>,
4962        #[prost(string, optional, tag = "2")]
4963        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
4964    }
4965    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4966    pub struct SetControlPointSnapshot {
4967        #[prost(int32, optional, tag = "1")]
4968        pub control_point: ::core::option::Option<i32>,
4969        #[prost(string, optional, tag = "2")]
4970        pub snapshot_name: ::core::option::Option<::prost::alloc::string::String>,
4971    }
4972    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4973    pub struct SetParticleText {
4974        #[prost(string, optional, tag = "1")]
4975        pub text: ::core::option::Option<::prost::alloc::string::String>,
4976        #[prost(bool, optional, tag = "2")]
4977        pub localize: ::core::option::Option<bool>,
4978    }
4979    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4980    pub struct SetTextureAttribute {
4981        #[prost(string, optional, tag = "1")]
4982        pub attribute_name: ::core::option::Option<::prost::alloc::string::String>,
4983        #[prost(string, optional, tag = "2")]
4984        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
4985    }
4986    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4987    pub struct SetOverrideTexture {
4988        #[prost(string, optional, tag = "1")]
4989        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
4990    }
4991    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4992    pub struct SetSceneObjectGenericFlag {
4993        #[prost(bool, optional, tag = "1")]
4994        pub flag_value: ::core::option::Option<bool>,
4995    }
4996    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4997    pub struct SetSceneObjectTintAndDesat {
4998        #[prost(fixed32, optional, tag = "1")]
4999        pub tint: ::core::option::Option<u32>,
5000        #[prost(float, optional, tag = "2")]
5001        pub desat: ::core::option::Option<f32>,
5002    }
5003    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5004    pub struct ParticleSkipToTime {
5005        #[prost(float, optional, tag = "1")]
5006        pub skip_to_time: ::core::option::Option<f32>,
5007    }
5008    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5009    pub struct ParticleCanFreeze {
5010        #[prost(bool, optional, tag = "1")]
5011        pub can_freeze: ::core::option::Option<bool>,
5012    }
5013    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5014    pub struct ParticleFreezeTransitionOverride {
5015        #[prost(float, optional, tag = "1")]
5016        pub freeze_transition_override: ::core::option::Option<f32>,
5017    }
5018    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5019    pub struct FreezeParticleInvolving {
5020        #[prost(bool, optional, tag = "1")]
5021        pub set_frozen: ::core::option::Option<bool>,
5022        #[prost(float, optional, tag = "2")]
5023        pub transition_duration: ::core::option::Option<f32>,
5024        #[prost(uint32, optional, tag = "3", default = "16777215")]
5025        pub entity_handle: ::core::option::Option<u32>,
5026    }
5027    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5028    pub struct AddModellistOverrideElement {
5029        #[prost(string, optional, tag = "1")]
5030        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
5031        #[prost(float, optional, tag = "2")]
5032        pub spawn_probability: ::core::option::Option<f32>,
5033        #[prost(uint32, optional, tag = "3")]
5034        pub groupid: ::core::option::Option<u32>,
5035    }
5036    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5037    pub struct ClearModellistOverride {
5038        #[prost(uint32, optional, tag = "1")]
5039        pub groupid: ::core::option::Option<u32>,
5040    }
5041    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5042    pub struct SetParticleNamedValueContext {
5043        #[prost(message, repeated, tag = "1")]
5044        pub float_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::FloatContextValue>,
5045        #[prost(message, repeated, tag = "2")]
5046        pub vector_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::VectorContextValue>,
5047        #[prost(message, repeated, tag = "3")]
5048        pub transform_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::TransformContextValue>,
5049        #[prost(message, repeated, tag = "4")]
5050        pub ehandle_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::EHandleContext>,
5051    }
5052    pub mod set_particle_named_value_context {
5053        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5054        pub struct FloatContextValue {
5055            #[prost(uint32, optional, tag = "1")]
5056            pub value_name_hash: ::core::option::Option<u32>,
5057            #[prost(float, optional, tag = "2")]
5058            pub value: ::core::option::Option<f32>,
5059        }
5060        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5061        pub struct VectorContextValue {
5062            #[prost(uint32, optional, tag = "1")]
5063            pub value_name_hash: ::core::option::Option<u32>,
5064            #[prost(message, optional, tag = "2")]
5065            pub value: ::core::option::Option<super::super::CMsgVector>,
5066        }
5067        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5068        pub struct TransformContextValue {
5069            #[prost(uint32, optional, tag = "1")]
5070            pub value_name_hash: ::core::option::Option<u32>,
5071            #[prost(message, optional, tag = "2")]
5072            pub angles: ::core::option::Option<super::super::CMsgQAngle>,
5073            #[prost(message, optional, tag = "3")]
5074            pub translation: ::core::option::Option<super::super::CMsgVector>,
5075        }
5076        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5077        pub struct EHandleContext {
5078            #[prost(uint32, optional, tag = "1")]
5079            pub value_name_hash: ::core::option::Option<u32>,
5080            #[prost(uint32, optional, tag = "2", default = "16777215")]
5081            pub ent_index: ::core::option::Option<u32>,
5082        }
5083    }
5084    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5085    pub struct CreatePhysicsSim {
5086        #[prost(string, optional, tag = "1")]
5087        pub prop_group_name: ::core::option::Option<::prost::alloc::string::String>,
5088        #[prost(bool, optional, tag = "2")]
5089        pub use_high_quality_simulation: ::core::option::Option<bool>,
5090        #[prost(uint32, optional, tag = "3")]
5091        pub max_particle_count: ::core::option::Option<u32>,
5092    }
5093    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5094    pub struct DestroyPhysicsSim {}
5095    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5096    pub struct CreateSmokeGrid {
5097        #[prost(string, optional, tag = "1")]
5098        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
5099    }
5100    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5101    pub struct SetVData {
5102        #[prost(string, optional, tag = "1")]
5103        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
5104    }
5105    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5106    pub struct SetMaterialOverride {
5107        #[prost(string, optional, tag = "1")]
5108        pub material_name: ::core::option::Option<::prost::alloc::string::String>,
5109        #[prost(bool, optional, tag = "2")]
5110        pub include_children: ::core::option::Option<bool>,
5111    }
5112    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5113    pub struct AddFan {
5114        #[prost(bool, optional, tag = "1")]
5115        pub active: ::core::option::Option<bool>,
5116        #[prost(message, optional, tag = "2")]
5117        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
5118        #[prost(message, optional, tag = "3")]
5119        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
5120        #[prost(message, optional, tag = "4")]
5121        pub fan_origin: ::core::option::Option<super::CMsgVector>,
5122        #[prost(message, optional, tag = "5")]
5123        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
5124        #[prost(message, optional, tag = "6")]
5125        pub fan_direction: ::core::option::Option<super::CMsgVector>,
5126        #[prost(float, optional, tag = "7")]
5127        pub force: ::core::option::Option<f32>,
5128        #[prost(string, optional, tag = "8")]
5129        pub fan_force_curve: ::core::option::Option<::prost::alloc::string::String>,
5130        #[prost(bool, optional, tag = "9")]
5131        pub falloff: ::core::option::Option<bool>,
5132        #[prost(bool, optional, tag = "10")]
5133        pub pull_towards_point: ::core::option::Option<bool>,
5134        #[prost(float, optional, tag = "11")]
5135        pub curve_min_dist: ::core::option::Option<f32>,
5136        #[prost(float, optional, tag = "12")]
5137        pub curve_max_dist: ::core::option::Option<f32>,
5138        #[prost(uint32, optional, tag = "13")]
5139        pub fan_type: ::core::option::Option<u32>,
5140        #[prost(float, optional, tag = "14")]
5141        pub cone_start_radius: ::core::option::Option<f32>,
5142        #[prost(float, optional, tag = "15")]
5143        pub cone_end_radius: ::core::option::Option<f32>,
5144        #[prost(float, optional, tag = "16")]
5145        pub cone_length: ::core::option::Option<f32>,
5146        #[prost(uint32, optional, tag = "17", default = "16777215")]
5147        pub entity_handle: ::core::option::Option<u32>,
5148        #[prost(string, optional, tag = "18")]
5149        pub attachment_name: ::core::option::Option<::prost::alloc::string::String>,
5150    }
5151    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5152    pub struct UpdateFan {
5153        #[prost(bool, optional, tag = "1")]
5154        pub active: ::core::option::Option<bool>,
5155        #[prost(message, optional, tag = "2")]
5156        pub fan_origin: ::core::option::Option<super::CMsgVector>,
5157        #[prost(message, optional, tag = "3")]
5158        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
5159        #[prost(message, optional, tag = "4")]
5160        pub fan_direction: ::core::option::Option<super::CMsgVector>,
5161        #[prost(float, optional, tag = "7")]
5162        pub fan_ramp_ratio: ::core::option::Option<f32>,
5163        #[prost(message, optional, tag = "5")]
5164        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
5165        #[prost(message, optional, tag = "6")]
5166        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
5167    }
5168    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5169    pub struct RemoveFan {}
5170    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5171    pub struct SetParticleClusterGrowth {
5172        #[prost(float, optional, tag = "1")]
5173        pub duration: ::core::option::Option<f32>,
5174        #[prost(message, optional, tag = "2")]
5175        pub origin: ::core::option::Option<super::CMsgVector>,
5176    }
5177}
5178#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5179pub struct CUserMsgHudError {
5180    #[prost(int32, optional, tag = "1")]
5181    pub order_id: ::core::option::Option<i32>,
5182}
5183#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5184pub struct CUserMsgCustomGameEvent {
5185    #[prost(string, optional, tag = "1")]
5186    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
5187    #[prost(bytes = "vec", optional, tag = "2")]
5188    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5189}
5190#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5191pub struct CUserMessageHapticsManagerPulse {
5192    #[prost(int32, optional, tag = "1")]
5193    pub hand_id: ::core::option::Option<i32>,
5194    #[prost(float, optional, tag = "2")]
5195    pub effect_amplitude: ::core::option::Option<f32>,
5196    #[prost(float, optional, tag = "3")]
5197    pub effect_frequency: ::core::option::Option<f32>,
5198    #[prost(float, optional, tag = "4")]
5199    pub effect_duration: ::core::option::Option<f32>,
5200}
5201#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5202pub struct CUserMessageHapticsManagerEffect {
5203    #[prost(int32, optional, tag = "1")]
5204    pub hand_id: ::core::option::Option<i32>,
5205    #[prost(uint32, optional, tag = "2")]
5206    pub effect_name_hash_code: ::core::option::Option<u32>,
5207    #[prost(float, optional, tag = "3")]
5208    pub effect_scale: ::core::option::Option<f32>,
5209}
5210#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5211pub struct CUserMessageAnimStateGraphState {
5212    #[prost(int32, optional, tag = "1")]
5213    pub entity_index: ::core::option::Option<i32>,
5214    #[prost(bytes = "vec", optional, tag = "2")]
5215    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5216}
5217#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5218pub struct CUserMessageUpdateCssClasses {
5219    #[prost(int32, optional, tag = "1")]
5220    pub target_world_panel: ::core::option::Option<i32>,
5221    #[prost(string, optional, tag = "2")]
5222    pub css_classes: ::core::option::Option<::prost::alloc::string::String>,
5223    #[prost(bool, optional, tag = "3")]
5224    pub is_add: ::core::option::Option<bool>,
5225}
5226#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5227pub struct CUserMessageServerFrameTime {
5228    #[prost(float, optional, tag = "1")]
5229    pub frame_time: ::core::option::Option<f32>,
5230}
5231#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5232pub struct CUserMessageLagCompensationError {
5233    #[prost(float, optional, tag = "1")]
5234    pub distance: ::core::option::Option<f32>,
5235}
5236#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5237pub struct CUserMessageRequestDllStatus {
5238    #[prost(string, optional, tag = "1")]
5239    pub dll_action: ::core::option::Option<::prost::alloc::string::String>,
5240    #[prost(bool, optional, tag = "2")]
5241    pub full_report: ::core::option::Option<bool>,
5242}
5243#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5244pub struct CUserMessageRequestUtilAction {
5245    #[prost(int32, optional, tag = "2")]
5246    pub util1: ::core::option::Option<i32>,
5247    #[prost(int32, optional, tag = "3")]
5248    pub util2: ::core::option::Option<i32>,
5249    #[prost(int32, optional, tag = "4")]
5250    pub util3: ::core::option::Option<i32>,
5251    #[prost(int32, optional, tag = "5")]
5252    pub util4: ::core::option::Option<i32>,
5253    #[prost(int32, optional, tag = "6")]
5254    pub util5: ::core::option::Option<i32>,
5255}
5256#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5257pub struct CUserMessageUtilMsgResponse {
5258    #[prost(fixed32, optional, tag = "1")]
5259    pub crc: ::core::option::Option<u32>,
5260    #[prost(int32, optional, tag = "2")]
5261    pub item_count: ::core::option::Option<i32>,
5262    #[prost(fixed32, optional, tag = "3")]
5263    pub crc2: ::core::option::Option<u32>,
5264    #[prost(int32, optional, tag = "4")]
5265    pub item_count2: ::core::option::Option<i32>,
5266    #[prost(int32, repeated, packed = "false", tag = "5")]
5267    pub crc_part: ::prost::alloc::vec::Vec<i32>,
5268    #[prost(int32, repeated, packed = "false", tag = "6")]
5269    pub crc_part2: ::prost::alloc::vec::Vec<i32>,
5270    #[prost(int32, optional, tag = "7")]
5271    pub client_timestamp: ::core::option::Option<i32>,
5272    #[prost(int32, optional, tag = "8")]
5273    pub platform: ::core::option::Option<i32>,
5274    #[prost(message, repeated, tag = "9")]
5275    pub itemdetails: ::prost::alloc::vec::Vec<c_user_message_util_msg_response::ItemDetail>,
5276    #[prost(int32, optional, tag = "10")]
5277    pub itemgroup: ::core::option::Option<i32>,
5278    #[prost(int32, optional, tag = "11")]
5279    pub total_count: ::core::option::Option<i32>,
5280    #[prost(int32, optional, tag = "12")]
5281    pub total_count2: ::core::option::Option<i32>,
5282}
5283pub mod c_user_message_util_msg_response {
5284    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5285    pub struct ItemDetail {
5286        #[prost(int32, optional, tag = "1")]
5287        pub index: ::core::option::Option<i32>,
5288        #[prost(int32, optional, tag = "2")]
5289        pub hash: ::core::option::Option<i32>,
5290        #[prost(int32, optional, tag = "3")]
5291        pub crc: ::core::option::Option<i32>,
5292        #[prost(string, optional, tag = "4")]
5293        pub name: ::core::option::Option<::prost::alloc::string::String>,
5294    }
5295}
5296#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5297pub struct CUserMessageDllStatus {
5298    #[prost(string, optional, tag = "1")]
5299    pub file_report: ::core::option::Option<::prost::alloc::string::String>,
5300    #[prost(string, optional, tag = "2")]
5301    pub command_line: ::core::option::Option<::prost::alloc::string::String>,
5302    #[prost(uint32, optional, tag = "3")]
5303    pub total_files: ::core::option::Option<u32>,
5304    #[prost(uint32, optional, tag = "4")]
5305    pub process_id: ::core::option::Option<u32>,
5306    #[prost(int32, optional, tag = "5")]
5307    pub osversion: ::core::option::Option<i32>,
5308    #[prost(uint64, optional, tag = "6")]
5309    pub client_time: ::core::option::Option<u64>,
5310    #[prost(message, repeated, tag = "7")]
5311    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_dll_status::CvDiagnostic>,
5312    #[prost(message, repeated, tag = "8")]
5313    pub modules: ::prost::alloc::vec::Vec<c_user_message_dll_status::CModule>,
5314}
5315pub mod c_user_message_dll_status {
5316    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5317    pub struct CvDiagnostic {
5318        #[prost(uint32, optional, tag = "1")]
5319        pub id: ::core::option::Option<u32>,
5320        #[prost(uint32, optional, tag = "2")]
5321        pub extended: ::core::option::Option<u32>,
5322        #[prost(uint64, optional, tag = "3")]
5323        pub value: ::core::option::Option<u64>,
5324        #[prost(string, optional, tag = "4")]
5325        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
5326    }
5327    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5328    pub struct CModule {
5329        #[prost(uint64, optional, tag = "1")]
5330        pub base_addr: ::core::option::Option<u64>,
5331        #[prost(string, optional, tag = "2")]
5332        pub name: ::core::option::Option<::prost::alloc::string::String>,
5333        #[prost(uint32, optional, tag = "3")]
5334        pub size: ::core::option::Option<u32>,
5335        #[prost(uint32, optional, tag = "4")]
5336        pub timestamp: ::core::option::Option<u32>,
5337    }
5338}
5339#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5340pub struct CUserMessageRequestInventory {
5341    #[prost(int32, optional, tag = "1")]
5342    pub inventory: ::core::option::Option<i32>,
5343    #[prost(int32, optional, tag = "2")]
5344    pub offset: ::core::option::Option<i32>,
5345    #[prost(int32, optional, tag = "3")]
5346    pub options: ::core::option::Option<i32>,
5347}
5348#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5349pub struct CUserMessageInventoryResponse {
5350    #[prost(fixed32, optional, tag = "1")]
5351    pub crc: ::core::option::Option<u32>,
5352    #[prost(int32, optional, tag = "2")]
5353    pub item_count: ::core::option::Option<i32>,
5354    #[prost(int32, optional, tag = "5")]
5355    pub osversion: ::core::option::Option<i32>,
5356    #[prost(int32, optional, tag = "6")]
5357    pub perf_time: ::core::option::Option<i32>,
5358    #[prost(int32, optional, tag = "7")]
5359    pub client_timestamp: ::core::option::Option<i32>,
5360    #[prost(int32, optional, tag = "8")]
5361    pub platform: ::core::option::Option<i32>,
5362    #[prost(message, repeated, tag = "9")]
5363    pub inventories: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5364    #[prost(message, repeated, tag = "10")]
5365    pub inventories2: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5366    #[prost(message, repeated, tag = "14")]
5367    pub inventories3: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5368    #[prost(int32, optional, tag = "11")]
5369    pub inv_type: ::core::option::Option<i32>,
5370    #[prost(int32, optional, tag = "12")]
5371    pub build_version: ::core::option::Option<i32>,
5372    #[prost(int32, optional, tag = "13")]
5373    pub instance: ::core::option::Option<i32>,
5374    #[prost(int64, optional, tag = "15")]
5375    pub start_time: ::core::option::Option<i64>,
5376}
5377pub mod c_user_message_inventory_response {
5378    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5379    pub struct InventoryDetail {
5380        #[prost(int32, optional, tag = "1")]
5381        pub index: ::core::option::Option<i32>,
5382        #[prost(int64, optional, tag = "2")]
5383        pub primary: ::core::option::Option<i64>,
5384        #[prost(int64, optional, tag = "3")]
5385        pub offset: ::core::option::Option<i64>,
5386        #[prost(int64, optional, tag = "4")]
5387        pub first: ::core::option::Option<i64>,
5388        #[prost(int64, optional, tag = "5")]
5389        pub base: ::core::option::Option<i64>,
5390        #[prost(string, optional, tag = "6")]
5391        pub name: ::core::option::Option<::prost::alloc::string::String>,
5392        #[prost(string, optional, tag = "7")]
5393        pub base_name: ::core::option::Option<::prost::alloc::string::String>,
5394        #[prost(int32, optional, tag = "8")]
5395        pub base_detail: ::core::option::Option<i32>,
5396        #[prost(int32, optional, tag = "9")]
5397        pub base_time: ::core::option::Option<i32>,
5398        #[prost(int32, optional, tag = "10")]
5399        pub base_hash: ::core::option::Option<i32>,
5400    }
5401}
5402#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5403pub struct CUserMessageRequestDiagnostic {
5404    #[prost(message, repeated, tag = "1")]
5405    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_request_diagnostic::Diagnostic>,
5406}
5407pub mod c_user_message_request_diagnostic {
5408    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5409    pub struct Diagnostic {
5410        #[prost(int32, optional, tag = "1")]
5411        pub index: ::core::option::Option<i32>,
5412        #[prost(int64, optional, tag = "2")]
5413        pub offset: ::core::option::Option<i64>,
5414        #[prost(int32, optional, tag = "3")]
5415        pub param: ::core::option::Option<i32>,
5416        #[prost(int32, optional, tag = "4")]
5417        pub length: ::core::option::Option<i32>,
5418        #[prost(int32, optional, tag = "5")]
5419        pub r#type: ::core::option::Option<i32>,
5420        #[prost(int64, optional, tag = "6")]
5421        pub base: ::core::option::Option<i64>,
5422        #[prost(int64, optional, tag = "7")]
5423        pub range: ::core::option::Option<i64>,
5424        #[prost(int64, optional, tag = "8")]
5425        pub extent: ::core::option::Option<i64>,
5426        #[prost(int64, optional, tag = "9")]
5427        pub detail: ::core::option::Option<i64>,
5428        #[prost(string, optional, tag = "10")]
5429        pub name: ::core::option::Option<::prost::alloc::string::String>,
5430        #[prost(string, optional, tag = "11")]
5431        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5432        #[prost(bytes = "vec", optional, tag = "12")]
5433        pub vardetail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5434        #[prost(int32, optional, tag = "13")]
5435        pub context: ::core::option::Option<i32>,
5436    }
5437}
5438#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5439pub struct CUserMessageDiagnosticResponse {
5440    #[prost(message, repeated, tag = "1")]
5441    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_diagnostic_response::Diagnostic>,
5442    #[prost(int32, optional, tag = "2")]
5443    pub build_version: ::core::option::Option<i32>,
5444    #[prost(int32, optional, tag = "3")]
5445    pub instance: ::core::option::Option<i32>,
5446    #[prost(int64, optional, tag = "4")]
5447    pub start_time: ::core::option::Option<i64>,
5448    #[prost(int32, optional, tag = "5")]
5449    pub osversion: ::core::option::Option<i32>,
5450    #[prost(int32, optional, tag = "6")]
5451    pub platform: ::core::option::Option<i32>,
5452}
5453pub mod c_user_message_diagnostic_response {
5454    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5455    pub struct Diagnostic {
5456        #[prost(int32, optional, tag = "1")]
5457        pub index: ::core::option::Option<i32>,
5458        #[prost(int64, optional, tag = "2")]
5459        pub offset: ::core::option::Option<i64>,
5460        #[prost(int32, optional, tag = "3")]
5461        pub param: ::core::option::Option<i32>,
5462        #[prost(int32, optional, tag = "4")]
5463        pub length: ::core::option::Option<i32>,
5464        #[prost(bytes = "vec", optional, tag = "5")]
5465        pub detail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5466        #[prost(int64, optional, tag = "6")]
5467        pub base: ::core::option::Option<i64>,
5468        #[prost(int64, optional, tag = "7")]
5469        pub range: ::core::option::Option<i64>,
5470        #[prost(int32, optional, tag = "8")]
5471        pub r#type: ::core::option::Option<i32>,
5472        #[prost(string, optional, tag = "10")]
5473        pub name: ::core::option::Option<::prost::alloc::string::String>,
5474        #[prost(string, optional, tag = "11")]
5475        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5476        #[prost(bytes = "vec", optional, tag = "12")]
5477        pub backup: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5478        #[prost(int32, optional, tag = "13")]
5479        pub context: ::core::option::Option<i32>,
5480        #[prost(int64, optional, tag = "14")]
5481        pub control: ::core::option::Option<i64>,
5482        #[prost(int64, optional, tag = "15")]
5483        pub augment: ::core::option::Option<i64>,
5484        #[prost(int64, optional, tag = "16")]
5485        pub placebo: ::core::option::Option<i64>,
5486    }
5487}
5488#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5489pub struct CUserMessageExtraUserData {
5490    #[prost(int32, optional, tag = "1")]
5491    pub item: ::core::option::Option<i32>,
5492    #[prost(int64, optional, tag = "2")]
5493    pub value1: ::core::option::Option<i64>,
5494    #[prost(int64, optional, tag = "3")]
5495    pub value2: ::core::option::Option<i64>,
5496    #[prost(bytes = "vec", repeated, tag = "4")]
5497    pub detail1: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5498    #[prost(bytes = "vec", repeated, tag = "5")]
5499    pub detail2: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5500}
5501#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5502pub struct CUserMessageNotifyResponseFound {
5503    #[prost(int32, optional, tag = "1", default = "-1")]
5504    pub ent_index: ::core::option::Option<i32>,
5505    #[prost(string, optional, tag = "2")]
5506    pub rule_name: ::core::option::Option<::prost::alloc::string::String>,
5507    #[prost(string, optional, tag = "3")]
5508    pub response_value: ::core::option::Option<::prost::alloc::string::String>,
5509    #[prost(string, optional, tag = "4")]
5510    pub response_concept: ::core::option::Option<::prost::alloc::string::String>,
5511    #[prost(message, repeated, tag = "5")]
5512    pub criteria: ::prost::alloc::vec::Vec<c_user_message_notify_response_found::Criteria>,
5513    #[prost(uint32, repeated, tag = "6")]
5514    pub int_criteria_names: ::prost::alloc::vec::Vec<u32>,
5515    #[prost(int32, repeated, tag = "7")]
5516    pub int_criteria_values: ::prost::alloc::vec::Vec<i32>,
5517    #[prost(uint32, repeated, tag = "8")]
5518    pub float_criteria_names: ::prost::alloc::vec::Vec<u32>,
5519    #[prost(float, repeated, packed = "false", tag = "9")]
5520    pub float_criteria_values: ::prost::alloc::vec::Vec<f32>,
5521    #[prost(uint32, repeated, tag = "10")]
5522    pub symbol_criteria_names: ::prost::alloc::vec::Vec<u32>,
5523    #[prost(uint32, repeated, tag = "11")]
5524    pub symbol_criteria_values: ::prost::alloc::vec::Vec<u32>,
5525    #[prost(int32, optional, tag = "12")]
5526    pub speak_result: ::core::option::Option<i32>,
5527}
5528pub mod c_user_message_notify_response_found {
5529    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5530    pub struct Criteria {
5531        #[prost(uint32, optional, tag = "1")]
5532        pub name_symbol: ::core::option::Option<u32>,
5533        #[prost(string, optional, tag = "2")]
5534        pub value: ::core::option::Option<::prost::alloc::string::String>,
5535    }
5536}
5537#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5538pub struct CUserMessagePlayResponseConditional {
5539    #[prost(int32, optional, tag = "1", default = "-1")]
5540    pub ent_index: ::core::option::Option<i32>,
5541    #[prost(int32, repeated, packed = "false", tag = "2")]
5542    pub player_slots: ::prost::alloc::vec::Vec<i32>,
5543    #[prost(string, optional, tag = "3")]
5544    pub response: ::core::option::Option<::prost::alloc::string::String>,
5545    #[prost(message, optional, tag = "4")]
5546    pub ent_origin: ::core::option::Option<CMsgVector>,
5547    #[prost(float, optional, tag = "5")]
5548    pub pre_delay: ::core::option::Option<f32>,
5549    #[prost(int32, optional, tag = "6")]
5550    pub mix_priority: ::core::option::Option<i32>,
5551}
5552#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5553#[repr(i32)]
5554pub enum EBaseUserMessages {
5555    UmAchievementEvent = 101,
5556    UmCloseCaption = 102,
5557    UmCloseCaptionDirect = 103,
5558    UmCurrentTimescale = 104,
5559    UmDesiredTimescale = 105,
5560    UmFade = 106,
5561    UmGameTitle = 107,
5562    UmHudMsg = 110,
5563    UmHudText = 111,
5564    UmColoredText = 113,
5565    UmRequestState = 114,
5566    UmResetHud = 115,
5567    UmRumble = 116,
5568    UmSayText = 117,
5569    UmSayText2 = 118,
5570    UmSayTextChannel = 119,
5571    UmShake = 120,
5572    UmShakeDir = 121,
5573    UmWaterShake = 122,
5574    UmTextMsg = 124,
5575    UmScreenTilt = 125,
5576    UmVoiceMask = 128,
5577    UmSendAudio = 130,
5578    UmItemPickup = 131,
5579    UmAmmoDenied = 132,
5580    UmShowMenu = 134,
5581    UmCreditsMsg = 135,
5582    UmCloseCaptionPlaceholder = 142,
5583    UmCameraTransition = 143,
5584    UmAudioParameter = 144,
5585    UmParticleManager = 145,
5586    UmHudError = 146,
5587    UmCustomGameEvent = 148,
5588    UmAnimGraphUpdate = 149,
5589    UmHapticsManagerPulse = 150,
5590    UmHapticsManagerEffect = 151,
5591    UmUpdateCssClasses = 153,
5592    UmServerFrameTime = 154,
5593    UmLagCompensationError = 155,
5594    UmRequestDllStatus = 156,
5595    UmRequestUtilAction = 157,
5596    UmUtilActionResponse = 158,
5597    UmDllStatusResponse = 159,
5598    UmRequestInventory = 160,
5599    UmInventoryResponse = 161,
5600    UmRequestDiagnostic = 162,
5601    UmDiagnosticResponse = 163,
5602    UmExtraUserData = 164,
5603    UmNotifyResponseFound = 165,
5604    UmPlayResponseConditional = 166,
5605    UmMaxBase = 200,
5606}
5607#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5608#[repr(i32)]
5609pub enum EBaseEntityMessages {
5610    EmPlayJingle = 136,
5611    EmScreenOverlay = 137,
5612    EmRemoveAllDecals = 138,
5613    EmPropagateForce = 139,
5614    EmDoSpark = 140,
5615    EmFixAngle = 141,
5616}
5617#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5618#[repr(i32)]
5619pub enum ERollType {
5620    RollNone = -1,
5621    RollStats = 0,
5622    RollCredits = 1,
5623    RollLateJoinLogo = 2,
5624    RollOuttro = 3,
5625}
5626#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5627#[repr(i32)]
5628pub enum ParticleMessage {
5629    GameParticleManagerEventCreate = 0,
5630    GameParticleManagerEventUpdate = 1,
5631    GameParticleManagerEventUpdateForward = 2,
5632    GameParticleManagerEventUpdateOrientation = 3,
5633    GameParticleManagerEventUpdateFallback = 4,
5634    GameParticleManagerEventUpdateEnt = 5,
5635    GameParticleManagerEventUpdateOffset = 6,
5636    GameParticleManagerEventDestroy = 7,
5637    GameParticleManagerEventDestroyInvolving = 8,
5638    GameParticleManagerEventRelease = 9,
5639    GameParticleManagerEventLatency = 10,
5640    GameParticleManagerEventShouldDraw = 11,
5641    GameParticleManagerEventFrozen = 12,
5642    GameParticleManagerEventChangeControlPointAttachment = 13,
5643    GameParticleManagerEventUpdateEntityPosition = 14,
5644    GameParticleManagerEventSetFowProperties = 15,
5645    GameParticleManagerEventSetText = 16,
5646    GameParticleManagerEventSetShouldCheckFow = 17,
5647    GameParticleManagerEventSetControlPointModel = 18,
5648    GameParticleManagerEventSetControlPointSnapshot = 19,
5649    GameParticleManagerEventSetTextureAttribute = 20,
5650    GameParticleManagerEventSetSceneObjectGenericFlag = 21,
5651    GameParticleManagerEventSetSceneObjectTintAndDesat = 22,
5652    GameParticleManagerEventDestroyNamed = 23,
5653    GameParticleManagerEventSkipToTime = 24,
5654    GameParticleManagerEventCanFreeze = 25,
5655    GameParticleManagerEventSetNamedValueContext = 26,
5656    GameParticleManagerEventUpdateTransform = 27,
5657    GameParticleManagerEventFreezeTransitionOverride = 28,
5658    GameParticleManagerEventFreezeInvolving = 29,
5659    GameParticleManagerEventAddModellistOverrideElement = 30,
5660    GameParticleManagerEventClearModellistOverride = 31,
5661    GameParticleManagerEventCreatePhysicsSim = 32,
5662    GameParticleManagerEventDestroyPhysicsSim = 33,
5663    GameParticleManagerEventSetVdata = 34,
5664    GameParticleManagerEventSetMaterialOverride = 35,
5665    GameParticleManagerEventAddFan = 36,
5666    GameParticleManagerEventUpdateFan = 37,
5667    GameParticleManagerEventSetClusterGrowth = 38,
5668    GameParticleManagerEventRemoveFan = 39,
5669    GameParticleManagerEventCreateSmokeGrid = 40,
5670    GameParticleManagerEventSetOverrideTexture = 41,
5671}
5672#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5673#[repr(i32)]
5674pub enum EHapticPulseType {
5675    VrHandHapticPulseLight = 0,
5676    VrHandHapticPulseMedium = 1,
5677    VrHandHapticPulseStrong = 2,
5678}