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 CDemoRecovery {
2322    #[prost(message, optional, tag = "1")]
2323    pub initial_spawn_group: ::core::option::Option<c_demo_recovery::DemoInitialSpawnGroupEntry>,
2324    #[prost(bytes = "vec", optional, tag = "2")]
2325    pub spawn_group_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2326}
2327pub mod c_demo_recovery {
2328    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2329    pub struct DemoInitialSpawnGroupEntry {
2330        #[prost(uint32, optional, tag = "1")]
2331        pub spawngrouphandle: ::core::option::Option<u32>,
2332        #[prost(bool, optional, tag = "2")]
2333        pub was_created: ::core::option::Option<bool>,
2334    }
2335}
2336#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2337#[repr(i32)]
2338pub enum EDemoCommands {
2339    DemError = -1,
2340    DemStop = 0,
2341    DemFileHeader = 1,
2342    DemFileInfo = 2,
2343    DemSyncTick = 3,
2344    DemSendTables = 4,
2345    DemClassInfo = 5,
2346    DemStringTables = 6,
2347    DemPacket = 7,
2348    DemSignonPacket = 8,
2349    DemConsoleCmd = 9,
2350    DemCustomData = 10,
2351    DemCustomDataCallbacks = 11,
2352    DemUserCmd = 12,
2353    DemFullPacket = 13,
2354    DemSaveGame = 14,
2355    DemSpawnGroups = 15,
2356    DemAnimationData = 16,
2357    DemAnimationHeader = 17,
2358    DemRecovery = 18,
2359    DemMax = 19,
2360    DemIsCompressed = 64,
2361}
2362#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2363#[repr(i32)]
2364pub enum ENetworkDisconnectionReason {
2365    NetworkDisconnectInvalid = 0,
2366    NetworkDisconnectShutdown = 1,
2367    NetworkDisconnectDisconnectByUser = 2,
2368    NetworkDisconnectDisconnectByServer = 3,
2369    NetworkDisconnectLost = 4,
2370    NetworkDisconnectOverflow = 5,
2371    NetworkDisconnectSteamBanned = 6,
2372    NetworkDisconnectSteamInuse = 7,
2373    NetworkDisconnectSteamTicket = 8,
2374    NetworkDisconnectSteamLogon = 9,
2375    NetworkDisconnectSteamAuthcancelled = 10,
2376    NetworkDisconnectSteamAuthalreadyused = 11,
2377    NetworkDisconnectSteamAuthinvalid = 12,
2378    NetworkDisconnectSteamVacbanstate = 13,
2379    NetworkDisconnectSteamLoggedInElsewhere = 14,
2380    NetworkDisconnectSteamVacCheckTimedout = 15,
2381    NetworkDisconnectSteamDropped = 16,
2382    NetworkDisconnectSteamOwnership = 17,
2383    NetworkDisconnectServerinfoOverflow = 18,
2384    NetworkDisconnectTickmsgOverflow = 19,
2385    NetworkDisconnectStringtablemsgOverflow = 20,
2386    NetworkDisconnectDeltaentmsgOverflow = 21,
2387    NetworkDisconnectTempentmsgOverflow = 22,
2388    NetworkDisconnectSoundsmsgOverflow = 23,
2389    NetworkDisconnectSnapshotoverflow = 24,
2390    NetworkDisconnectSnapshoterror = 25,
2391    NetworkDisconnectReliableoverflow = 26,
2392    NetworkDisconnectBaddeltatick = 27,
2393    NetworkDisconnectNomoresplits = 28,
2394    NetworkDisconnectTimedout = 29,
2395    NetworkDisconnectDisconnected = 30,
2396    NetworkDisconnectLeavingsplit = 31,
2397    NetworkDisconnectDifferentclasstables = 32,
2398    NetworkDisconnectBadrelaypassword = 33,
2399    NetworkDisconnectBadspectatorpassword = 34,
2400    NetworkDisconnectHltvrestricted = 35,
2401    NetworkDisconnectNospectators = 36,
2402    NetworkDisconnectHltvunavailable = 37,
2403    NetworkDisconnectHltvstop = 38,
2404    NetworkDisconnectKicked = 39,
2405    NetworkDisconnectBanadded = 40,
2406    NetworkDisconnectKickbanadded = 41,
2407    NetworkDisconnectHltvdirect = 42,
2408    NetworkDisconnectPureserverClientextra = 43,
2409    NetworkDisconnectPureserverMismatch = 44,
2410    NetworkDisconnectUsercmd = 45,
2411    NetworkDisconnectRejectedByGame = 46,
2412    NetworkDisconnectMessageParseError = 47,
2413    NetworkDisconnectInvalidMessageError = 48,
2414    NetworkDisconnectBadServerPassword = 49,
2415    NetworkDisconnectDirectConnectReservation = 50,
2416    NetworkDisconnectConnectionFailure = 51,
2417    NetworkDisconnectNoPeerGroupHandlers = 52,
2418    NetworkDisconnectReconnection = 53,
2419    NetworkDisconnectLoopshutdown = 54,
2420    NetworkDisconnectLoopdeactivate = 55,
2421    NetworkDisconnectHostEndgame = 56,
2422    NetworkDisconnectLoopLevelloadActivate = 57,
2423    NetworkDisconnectCreateServerFailed = 58,
2424    NetworkDisconnectExiting = 59,
2425    NetworkDisconnectRequestHoststateIdle = 60,
2426    NetworkDisconnectRequestHoststateHltvrelay = 61,
2427    NetworkDisconnectClientConsistencyFail = 62,
2428    NetworkDisconnectClientUnableToCrcMap = 63,
2429    NetworkDisconnectClientNoMap = 64,
2430    NetworkDisconnectClientDifferentMap = 65,
2431    NetworkDisconnectServerRequiresSteam = 66,
2432    NetworkDisconnectSteamDenyMisc = 67,
2433    NetworkDisconnectSteamDenyBadAntiCheat = 68,
2434    NetworkDisconnectServerShutdown = 69,
2435    NetworkDisconnectReplayIncompatible = 71,
2436    NetworkDisconnectConnectRequestTimedout = 72,
2437    NetworkDisconnectServerIncompatible = 73,
2438    NetworkDisconnectLocalproblemManyrelays = 74,
2439    NetworkDisconnectLocalproblemHostedserverprimaryrelay = 75,
2440    NetworkDisconnectLocalproblemNetworkconfig = 76,
2441    NetworkDisconnectLocalproblemOther = 77,
2442    NetworkDisconnectRemoteTimeout = 79,
2443    NetworkDisconnectRemoteTimeoutConnecting = 80,
2444    NetworkDisconnectRemoteOther = 81,
2445    NetworkDisconnectRemoteBadcrypt = 82,
2446    NetworkDisconnectRemoteCertnottrusted = 83,
2447    NetworkDisconnectUnusual = 84,
2448    NetworkDisconnectInternalError = 85,
2449    NetworkDisconnectRejectBadchallenge = 128,
2450    NetworkDisconnectRejectNolobby = 129,
2451    NetworkDisconnectRejectBackgroundMap = 130,
2452    NetworkDisconnectRejectSinglePlayer = 131,
2453    NetworkDisconnectRejectHiddenGame = 132,
2454    NetworkDisconnectRejectLanrestrict = 133,
2455    NetworkDisconnectRejectBadpassword = 134,
2456    NetworkDisconnectRejectServerfull = 135,
2457    NetworkDisconnectRejectInvalidreservation = 136,
2458    NetworkDisconnectRejectFailedchannel = 137,
2459    NetworkDisconnectRejectConnectFromLobby = 138,
2460    NetworkDisconnectRejectReservedForLobby = 139,
2461    NetworkDisconnectRejectInvalidkeylength = 140,
2462    NetworkDisconnectRejectOldprotocol = 141,
2463    NetworkDisconnectRejectNewprotocol = 142,
2464    NetworkDisconnectRejectInvalidconnection = 143,
2465    NetworkDisconnectRejectInvalidcertlen = 144,
2466    NetworkDisconnectRejectInvalidsteamcertlen = 145,
2467    NetworkDisconnectRejectSteam = 146,
2468    NetworkDisconnectRejectServerauthdisabled = 147,
2469    NetworkDisconnectRejectServercdkeyauthinvalid = 148,
2470    NetworkDisconnectRejectBanned = 149,
2471    NetworkDisconnectKickedTeamkilling = 150,
2472    NetworkDisconnectKickedTkStart = 151,
2473    NetworkDisconnectKickedUntrustedaccount = 152,
2474    NetworkDisconnectKickedConvictedaccount = 153,
2475    NetworkDisconnectKickedCompetitivecooldown = 154,
2476    NetworkDisconnectKickedTeamhurting = 155,
2477    NetworkDisconnectKickedHostagekilling = 156,
2478    NetworkDisconnectKickedVotedoff = 157,
2479    NetworkDisconnectKickedIdle = 158,
2480    NetworkDisconnectKickedSuicide = 159,
2481    NetworkDisconnectKickedNosteamlogin = 160,
2482    NetworkDisconnectKickedNosteamticket = 161,
2483    NetworkDisconnectKickedInputautomation = 162,
2484    NetworkDisconnectKickedVacnetabnormalbehavior = 163,
2485    NetworkDisconnectKickedInsecureclient = 164,
2486}
2487#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2488pub struct CMsgVector {
2489    #[prost(float, optional, tag = "1")]
2490    pub x: ::core::option::Option<f32>,
2491    #[prost(float, optional, tag = "2")]
2492    pub y: ::core::option::Option<f32>,
2493    #[prost(float, optional, tag = "3")]
2494    pub z: ::core::option::Option<f32>,
2495    #[prost(float, optional, tag = "4")]
2496    pub w: ::core::option::Option<f32>,
2497}
2498#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2499pub struct CMsgVector2D {
2500    #[prost(float, optional, tag = "1")]
2501    pub x: ::core::option::Option<f32>,
2502    #[prost(float, optional, tag = "2")]
2503    pub y: ::core::option::Option<f32>,
2504}
2505#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2506pub struct CMsgQAngle {
2507    #[prost(float, optional, tag = "1")]
2508    pub x: ::core::option::Option<f32>,
2509    #[prost(float, optional, tag = "2")]
2510    pub y: ::core::option::Option<f32>,
2511    #[prost(float, optional, tag = "3")]
2512    pub z: ::core::option::Option<f32>,
2513}
2514#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2515pub struct CMsgQuaternion {
2516    #[prost(float, optional, tag = "1")]
2517    pub x: ::core::option::Option<f32>,
2518    #[prost(float, optional, tag = "2")]
2519    pub y: ::core::option::Option<f32>,
2520    #[prost(float, optional, tag = "3")]
2521    pub z: ::core::option::Option<f32>,
2522    #[prost(float, optional, tag = "4")]
2523    pub w: ::core::option::Option<f32>,
2524}
2525#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2526pub struct CMsgTransform {
2527    #[prost(message, optional, tag = "1")]
2528    pub position: ::core::option::Option<CMsgVector>,
2529    #[prost(float, optional, tag = "2")]
2530    pub scale: ::core::option::Option<f32>,
2531    #[prost(message, optional, tag = "3")]
2532    pub orientation: ::core::option::Option<CMsgQuaternion>,
2533}
2534#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2535pub struct CMsgRgba {
2536    #[prost(int32, optional, tag = "1")]
2537    pub r: ::core::option::Option<i32>,
2538    #[prost(int32, optional, tag = "2")]
2539    pub g: ::core::option::Option<i32>,
2540    #[prost(int32, optional, tag = "3")]
2541    pub b: ::core::option::Option<i32>,
2542    #[prost(int32, optional, tag = "4")]
2543    pub a: ::core::option::Option<i32>,
2544}
2545#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2546pub struct CMsgPlayerInfo {
2547    #[prost(string, optional, tag = "1")]
2548    pub name: ::core::option::Option<::prost::alloc::string::String>,
2549    #[prost(fixed64, optional, tag = "2")]
2550    pub xuid: ::core::option::Option<u64>,
2551    #[prost(int32, optional, tag = "3")]
2552    pub userid: ::core::option::Option<i32>,
2553    #[prost(fixed64, optional, tag = "4")]
2554    pub steamid: ::core::option::Option<u64>,
2555    #[prost(bool, optional, tag = "5")]
2556    pub fakeplayer: ::core::option::Option<bool>,
2557    #[prost(bool, optional, tag = "6")]
2558    pub ishltv: ::core::option::Option<bool>,
2559}
2560#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2561pub struct CEntityMsg {
2562    #[prost(uint32, optional, tag = "1", default = "16777215")]
2563    pub target_entity: ::core::option::Option<u32>,
2564}
2565#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2566pub struct CMsgCVars {
2567    #[prost(message, repeated, tag = "1")]
2568    pub cvars: ::prost::alloc::vec::Vec<c_msg_c_vars::CVar>,
2569}
2570pub mod c_msg_c_vars {
2571    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2572    pub struct CVar {
2573        #[prost(string, optional, tag = "1")]
2574        pub name: ::core::option::Option<::prost::alloc::string::String>,
2575        #[prost(string, optional, tag = "2")]
2576        pub value: ::core::option::Option<::prost::alloc::string::String>,
2577    }
2578}
2579#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2580pub struct CNetMsgNop {}
2581#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2582pub struct CNetMsgSplitScreenUser {
2583    #[prost(int32, optional, tag = "1")]
2584    pub slot: ::core::option::Option<i32>,
2585}
2586#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2587pub struct CNetMsgTick {
2588    #[prost(uint32, optional, tag = "1")]
2589    pub tick: ::core::option::Option<u32>,
2590    #[prost(uint32, optional, tag = "4")]
2591    pub host_computationtime: ::core::option::Option<u32>,
2592    #[prost(uint32, optional, tag = "5")]
2593    pub host_computationtime_std_deviation: ::core::option::Option<u32>,
2594    #[prost(uint32, optional, tag = "7")]
2595    pub legacy_host_loss: ::core::option::Option<u32>,
2596    #[prost(uint32, optional, tag = "8")]
2597    pub host_unfiltered_frametime: ::core::option::Option<u32>,
2598    #[prost(uint32, optional, tag = "9")]
2599    pub hltv_replay_flags: ::core::option::Option<u32>,
2600    #[prost(uint32, optional, tag = "10")]
2601    pub expected_long_tick: ::core::option::Option<u32>,
2602    #[prost(string, optional, tag = "11")]
2603    pub expected_long_tick_reason: ::core::option::Option<::prost::alloc::string::String>,
2604    #[prost(uint32, optional, tag = "12")]
2605    pub host_frame_dropped_pct_x10: ::core::option::Option<u32>,
2606    #[prost(uint32, optional, tag = "13")]
2607    pub host_frame_irregular_arrival_pct_x10: ::core::option::Option<u32>,
2608}
2609#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2610pub struct CNetMsgStringCmd {
2611    #[prost(string, optional, tag = "1")]
2612    pub command: ::core::option::Option<::prost::alloc::string::String>,
2613    #[prost(uint32, optional, tag = "2")]
2614    pub prediction_sync: ::core::option::Option<u32>,
2615}
2616#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2617pub struct CNetMsgSetConVar {
2618    #[prost(message, optional, tag = "1")]
2619    pub convars: ::core::option::Option<CMsgCVars>,
2620}
2621#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2622pub struct CNetMsgSignonState {
2623    #[prost(enumeration = "SignonStateT", optional, tag = "1", default = "SignonstateNone")]
2624    pub signon_state: ::core::option::Option<i32>,
2625    #[prost(uint32, optional, tag = "2")]
2626    pub spawn_count: ::core::option::Option<u32>,
2627    #[prost(uint32, optional, tag = "3")]
2628    pub num_server_players: ::core::option::Option<u32>,
2629    #[prost(string, repeated, tag = "4")]
2630    pub players_networkids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2631    #[prost(string, optional, tag = "5")]
2632    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
2633    #[prost(string, optional, tag = "6")]
2634    pub addons: ::core::option::Option<::prost::alloc::string::String>,
2635}
2636#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2637pub struct CSvcMsgGameEvent {
2638    #[prost(string, optional, tag = "1")]
2639    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
2640    #[prost(int32, optional, tag = "2")]
2641    pub eventid: ::core::option::Option<i32>,
2642    #[prost(message, repeated, tag = "3")]
2643    pub keys: ::prost::alloc::vec::Vec<csvc_msg_game_event::KeyT>,
2644}
2645pub mod csvc_msg_game_event {
2646    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2647    pub struct KeyT {
2648        #[prost(int32, optional, tag = "1")]
2649        pub r#type: ::core::option::Option<i32>,
2650        #[prost(string, optional, tag = "2")]
2651        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
2652        #[prost(float, optional, tag = "3")]
2653        pub val_float: ::core::option::Option<f32>,
2654        #[prost(int32, optional, tag = "4")]
2655        pub val_long: ::core::option::Option<i32>,
2656        #[prost(int32, optional, tag = "5")]
2657        pub val_short: ::core::option::Option<i32>,
2658        #[prost(int32, optional, tag = "6")]
2659        pub val_byte: ::core::option::Option<i32>,
2660        #[prost(bool, optional, tag = "7")]
2661        pub val_bool: ::core::option::Option<bool>,
2662        #[prost(uint64, optional, tag = "8")]
2663        pub val_uint64: ::core::option::Option<u64>,
2664    }
2665}
2666#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2667pub struct CSvcMsgListGameEvents {
2668    #[prost(message, repeated, tag = "1")]
2669    pub events: ::prost::alloc::vec::Vec<csvc_msg_list_game_events::EventT>,
2670}
2671pub mod csvc_msg_list_game_events {
2672    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2673    pub struct EventT {
2674        #[prost(int32, optional, tag = "1")]
2675        pub tick: ::core::option::Option<i32>,
2676        #[prost(message, optional, tag = "2")]
2677        pub event: ::core::option::Option<super::CSvcMsgGameEvent>,
2678    }
2679}
2680#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2681pub struct CNetMsgSpawnGroupLoad {
2682    #[prost(string, optional, tag = "1")]
2683    pub worldname: ::core::option::Option<::prost::alloc::string::String>,
2684    #[prost(string, optional, tag = "2")]
2685    pub entitylumpname: ::core::option::Option<::prost::alloc::string::String>,
2686    #[prost(string, optional, tag = "3")]
2687    pub entityfiltername: ::core::option::Option<::prost::alloc::string::String>,
2688    #[prost(uint32, optional, tag = "4")]
2689    pub spawngrouphandle: ::core::option::Option<u32>,
2690    #[prost(uint32, optional, tag = "5")]
2691    pub spawngroupownerhandle: ::core::option::Option<u32>,
2692    #[prost(message, optional, tag = "6")]
2693    pub world_offset_pos: ::core::option::Option<CMsgVector>,
2694    #[prost(message, optional, tag = "7")]
2695    pub world_offset_angle: ::core::option::Option<CMsgQAngle>,
2696    #[prost(bytes = "vec", optional, tag = "8")]
2697    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2698    #[prost(uint32, optional, tag = "9")]
2699    pub flags: ::core::option::Option<u32>,
2700    #[prost(int32, optional, tag = "10")]
2701    pub tickcount: ::core::option::Option<i32>,
2702    #[prost(bool, optional, tag = "11")]
2703    pub manifestincomplete: ::core::option::Option<bool>,
2704    #[prost(string, optional, tag = "12")]
2705    pub localnamefixup: ::core::option::Option<::prost::alloc::string::String>,
2706    #[prost(string, optional, tag = "13")]
2707    pub parentnamefixup: ::core::option::Option<::prost::alloc::string::String>,
2708    #[prost(int32, optional, tag = "14")]
2709    pub manifestloadpriority: ::core::option::Option<i32>,
2710    #[prost(uint32, optional, tag = "15")]
2711    pub worldgroupid: ::core::option::Option<u32>,
2712    #[prost(uint32, optional, tag = "16")]
2713    pub creationsequence: ::core::option::Option<u32>,
2714    #[prost(string, optional, tag = "17")]
2715    pub savegamefilename: ::core::option::Option<::prost::alloc::string::String>,
2716    #[prost(uint32, optional, tag = "18")]
2717    pub spawngroupparenthandle: ::core::option::Option<u32>,
2718    #[prost(bool, optional, tag = "19")]
2719    pub leveltransition: ::core::option::Option<bool>,
2720    #[prost(string, optional, tag = "20")]
2721    pub worldgroupname: ::core::option::Option<::prost::alloc::string::String>,
2722}
2723#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2724pub struct CNetMsgSpawnGroupManifestUpdate {
2725    #[prost(uint32, optional, tag = "1")]
2726    pub spawngrouphandle: ::core::option::Option<u32>,
2727    #[prost(bytes = "vec", optional, tag = "2")]
2728    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2729    #[prost(bool, optional, tag = "3")]
2730    pub manifestincomplete: ::core::option::Option<bool>,
2731}
2732#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2733pub struct CNetMsgSpawnGroupSetCreationTick {
2734    #[prost(uint32, optional, tag = "1")]
2735    pub spawngrouphandle: ::core::option::Option<u32>,
2736    #[prost(int32, optional, tag = "2")]
2737    pub tickcount: ::core::option::Option<i32>,
2738    #[prost(uint32, optional, tag = "3")]
2739    pub creationsequence: ::core::option::Option<u32>,
2740}
2741#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2742pub struct CNetMsgSpawnGroupUnload {
2743    #[prost(uint32, optional, tag = "1")]
2744    pub spawngrouphandle: ::core::option::Option<u32>,
2745    #[prost(uint32, optional, tag = "2")]
2746    pub flags: ::core::option::Option<u32>,
2747    #[prost(int32, optional, tag = "3")]
2748    pub tickcount: ::core::option::Option<i32>,
2749}
2750#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2751pub struct CNetMsgSpawnGroupLoadCompleted {
2752    #[prost(uint32, optional, tag = "1")]
2753    pub spawngrouphandle: ::core::option::Option<u32>,
2754}
2755#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2756pub struct CSvcMsgGameSessionConfiguration {
2757    #[prost(bool, optional, tag = "1")]
2758    pub is_multiplayer: ::core::option::Option<bool>,
2759    #[prost(bool, optional, tag = "2")]
2760    pub is_loadsavegame: ::core::option::Option<bool>,
2761    #[prost(bool, optional, tag = "3")]
2762    pub is_background_map: ::core::option::Option<bool>,
2763    #[prost(bool, optional, tag = "4")]
2764    pub is_headless: ::core::option::Option<bool>,
2765    #[prost(uint32, optional, tag = "5")]
2766    pub min_client_limit: ::core::option::Option<u32>,
2767    #[prost(uint32, optional, tag = "6")]
2768    pub max_client_limit: ::core::option::Option<u32>,
2769    #[prost(uint32, optional, tag = "7")]
2770    pub max_clients: ::core::option::Option<u32>,
2771    #[prost(fixed32, optional, tag = "8")]
2772    pub tick_interval: ::core::option::Option<u32>,
2773    #[prost(string, optional, tag = "9")]
2774    pub hostname: ::core::option::Option<::prost::alloc::string::String>,
2775    #[prost(string, optional, tag = "10")]
2776    pub savegamename: ::core::option::Option<::prost::alloc::string::String>,
2777    #[prost(string, optional, tag = "11")]
2778    pub s1_mapname: ::core::option::Option<::prost::alloc::string::String>,
2779    #[prost(string, optional, tag = "12")]
2780    pub gamemode: ::core::option::Option<::prost::alloc::string::String>,
2781    #[prost(string, optional, tag = "13")]
2782    pub server_ip_address: ::core::option::Option<::prost::alloc::string::String>,
2783    #[prost(bytes = "vec", optional, tag = "14")]
2784    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2785    #[prost(bool, optional, tag = "15")]
2786    pub is_localonly: ::core::option::Option<bool>,
2787    #[prost(bool, optional, tag = "19")]
2788    pub no_steam_server: ::core::option::Option<bool>,
2789    #[prost(bool, optional, tag = "16")]
2790    pub is_transition: ::core::option::Option<bool>,
2791    #[prost(string, optional, tag = "17")]
2792    pub previouslevel: ::core::option::Option<::prost::alloc::string::String>,
2793    #[prost(string, optional, tag = "18")]
2794    pub landmarkname: ::core::option::Option<::prost::alloc::string::String>,
2795}
2796#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2797pub struct CNetMsgDebugOverlay {
2798    #[prost(int32, optional, tag = "1")]
2799    pub etype: ::core::option::Option<i32>,
2800    #[prost(message, repeated, tag = "2")]
2801    pub vectors: ::prost::alloc::vec::Vec<CMsgVector>,
2802    #[prost(message, repeated, tag = "3")]
2803    pub colors: ::prost::alloc::vec::Vec<CMsgRgba>,
2804    #[prost(float, repeated, packed = "false", tag = "4")]
2805    pub dimensions: ::prost::alloc::vec::Vec<f32>,
2806    #[prost(float, repeated, packed = "false", tag = "5")]
2807    pub times: ::prost::alloc::vec::Vec<f32>,
2808    #[prost(bool, repeated, packed = "false", tag = "6")]
2809    pub bools: ::prost::alloc::vec::Vec<bool>,
2810    #[prost(uint64, repeated, packed = "false", tag = "7")]
2811    pub uint64s: ::prost::alloc::vec::Vec<u64>,
2812    #[prost(string, repeated, tag = "8")]
2813    pub strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2814}
2815#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2816#[repr(i32)]
2817pub enum SignonStateT {
2818    SignonstateNone = 0,
2819    SignonstateChallenge = 1,
2820    SignonstateConnected = 2,
2821    SignonstateNew = 3,
2822    SignonstatePrespawn = 4,
2823    SignonstateSpawn = 5,
2824    SignonstateFull = 6,
2825    SignonstateChangelevel = 7,
2826}
2827#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2828#[repr(i32)]
2829pub enum NetMessages {
2830    NetNop = 0,
2831    NetDisconnectLegacy = 1,
2832    NetSplitScreenUser = 3,
2833    NetTick = 4,
2834    NetStringCmd = 5,
2835    NetSetConVar = 6,
2836    NetSignonState = 7,
2837    NetSpawnGroupLoad = 8,
2838    NetSpawnGroupManifestUpdate = 9,
2839    NetSpawnGroupSetCreationTick = 11,
2840    NetSpawnGroupUnload = 12,
2841    NetSpawnGroupLoadCompleted = 13,
2842    NetDebugOverlay = 15,
2843}
2844#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2845#[repr(i32)]
2846pub enum SpawnGroupFlagsT {
2847    SpawnGroupLoadEntitiesFromSave = 1,
2848    SpawnGroupDontSpawnEntities = 2,
2849    SpawnGroupSynchronousSpawn = 4,
2850    SpawnGroupIsInitialSpawnGroup = 8,
2851    SpawnGroupCreateClientOnlyEntities = 16,
2852    SpawnGroupBlockUntilLoaded = 64,
2853    SpawnGroupLoadStreamingData = 128,
2854    SpawnGroupCreateNewSceneWorld = 256,
2855}
2856#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2857pub struct CMsgVDebugGameSessionIdEvent {
2858    #[prost(int32, optional, tag = "1")]
2859    pub clientid: ::core::option::Option<i32>,
2860    #[prost(string, optional, tag = "2")]
2861    pub gamesessionid: ::core::option::Option<::prost::alloc::string::String>,
2862}
2863#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2864pub struct CMsgPlaceDecalEvent {
2865    #[prost(message, optional, tag = "1")]
2866    pub position: ::core::option::Option<CMsgVector>,
2867    #[prost(message, optional, tag = "2")]
2868    pub normal: ::core::option::Option<CMsgVector>,
2869    #[prost(message, optional, tag = "3")]
2870    pub saxis: ::core::option::Option<CMsgVector>,
2871    #[prost(int32, optional, tag = "4")]
2872    pub boneindex: ::core::option::Option<i32>,
2873    #[prost(int32, optional, tag = "13")]
2874    pub triangleindex: ::core::option::Option<i32>,
2875    #[prost(uint32, optional, tag = "5")]
2876    pub flags: ::core::option::Option<u32>,
2877    #[prost(fixed32, optional, tag = "6")]
2878    pub color: ::core::option::Option<u32>,
2879    #[prost(int32, optional, tag = "7")]
2880    pub random_seed: ::core::option::Option<i32>,
2881    #[prost(uint32, optional, tag = "8")]
2882    pub decal_group_name: ::core::option::Option<u32>,
2883    #[prost(float, optional, tag = "9")]
2884    pub size_override: ::core::option::Option<f32>,
2885    #[prost(uint32, optional, tag = "10", default = "16777215")]
2886    pub entityhandle: ::core::option::Option<u32>,
2887    #[prost(uint64, optional, tag = "11")]
2888    pub material_id: ::core::option::Option<u64>,
2889    #[prost(uint32, optional, tag = "12")]
2890    pub sequence_name: ::core::option::Option<u32>,
2891}
2892#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2893pub struct CMsgClearWorldDecalsEvent {
2894    #[prost(uint32, optional, tag = "1")]
2895    pub flagstoclear: ::core::option::Option<u32>,
2896}
2897#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2898pub struct CMsgClearEntityDecalsEvent {
2899    #[prost(uint32, optional, tag = "1")]
2900    pub flagstoclear: ::core::option::Option<u32>,
2901}
2902#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2903pub struct CMsgClearDecalsForEntityEvent {
2904    #[prost(uint32, optional, tag = "1")]
2905    pub flagstoclear: ::core::option::Option<u32>,
2906    #[prost(uint32, optional, tag = "2", default = "16777215")]
2907    pub entityhandle: ::core::option::Option<u32>,
2908}
2909#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2910pub struct CMsgSource1LegacyGameEventList {
2911    #[prost(message, repeated, tag = "1")]
2912    pub descriptors: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event_list::DescriptorT>,
2913}
2914pub mod c_msg_source1_legacy_game_event_list {
2915    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2916    pub struct KeyT {
2917        #[prost(int32, optional, tag = "1")]
2918        pub r#type: ::core::option::Option<i32>,
2919        #[prost(string, optional, tag = "2")]
2920        pub name: ::core::option::Option<::prost::alloc::string::String>,
2921    }
2922    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2923    pub struct DescriptorT {
2924        #[prost(int32, optional, tag = "1")]
2925        pub eventid: ::core::option::Option<i32>,
2926        #[prost(string, optional, tag = "2")]
2927        pub name: ::core::option::Option<::prost::alloc::string::String>,
2928        #[prost(message, repeated, tag = "3")]
2929        pub keys: ::prost::alloc::vec::Vec<KeyT>,
2930    }
2931}
2932#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2933pub struct CMsgSource1LegacyListenEvents {
2934    #[prost(int32, optional, tag = "1")]
2935    pub playerslot: ::core::option::Option<i32>,
2936    #[prost(uint32, repeated, packed = "false", tag = "2")]
2937    pub eventarraybits: ::prost::alloc::vec::Vec<u32>,
2938}
2939#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2940pub struct CMsgSource1LegacyGameEvent {
2941    #[prost(string, optional, tag = "1")]
2942    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
2943    #[prost(int32, optional, tag = "2")]
2944    pub eventid: ::core::option::Option<i32>,
2945    #[prost(message, repeated, tag = "3")]
2946    pub keys: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event::KeyT>,
2947    #[prost(int32, optional, tag = "4")]
2948    pub server_tick: ::core::option::Option<i32>,
2949    #[prost(int32, optional, tag = "5")]
2950    pub passthrough: ::core::option::Option<i32>,
2951}
2952pub mod c_msg_source1_legacy_game_event {
2953    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2954    pub struct KeyT {
2955        #[prost(int32, optional, tag = "1")]
2956        pub r#type: ::core::option::Option<i32>,
2957        #[prost(string, optional, tag = "2")]
2958        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
2959        #[prost(float, optional, tag = "3")]
2960        pub val_float: ::core::option::Option<f32>,
2961        #[prost(int32, optional, tag = "4")]
2962        pub val_long: ::core::option::Option<i32>,
2963        #[prost(int32, optional, tag = "5")]
2964        pub val_short: ::core::option::Option<i32>,
2965        #[prost(int32, optional, tag = "6")]
2966        pub val_byte: ::core::option::Option<i32>,
2967        #[prost(bool, optional, tag = "7")]
2968        pub val_bool: ::core::option::Option<bool>,
2969        #[prost(uint64, optional, tag = "8")]
2970        pub val_uint64: ::core::option::Option<u64>,
2971    }
2972}
2973#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2974pub struct CMsgSosStartSoundEvent {
2975    #[prost(int32, optional, tag = "1")]
2976    pub soundevent_guid: ::core::option::Option<i32>,
2977    #[prost(fixed32, optional, tag = "2")]
2978    pub soundevent_hash: ::core::option::Option<u32>,
2979    #[prost(int32, optional, tag = "3", default = "-1")]
2980    pub source_entity_index: ::core::option::Option<i32>,
2981    #[prost(int32, optional, tag = "4")]
2982    pub seed: ::core::option::Option<i32>,
2983    #[prost(bytes = "vec", optional, tag = "5")]
2984    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2985    #[prost(float, optional, tag = "6")]
2986    pub start_time: ::core::option::Option<f32>,
2987}
2988#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2989pub struct CMsgSosStopSoundEvent {
2990    #[prost(int32, optional, tag = "1")]
2991    pub soundevent_guid: ::core::option::Option<i32>,
2992}
2993#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2994pub struct CMsgSosStopSoundEventHash {
2995    #[prost(fixed32, optional, tag = "1")]
2996    pub soundevent_hash: ::core::option::Option<u32>,
2997    #[prost(int32, optional, tag = "2", default = "-1")]
2998    pub source_entity_index: ::core::option::Option<i32>,
2999}
3000#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3001pub struct CMsgSosSetSoundEventParams {
3002    #[prost(int32, optional, tag = "1")]
3003    pub soundevent_guid: ::core::option::Option<i32>,
3004    #[prost(bytes = "vec", optional, tag = "5")]
3005    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3006}
3007#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3008pub struct CMsgSosSetLibraryStackFields {
3009    #[prost(fixed32, optional, tag = "1")]
3010    pub stack_hash: ::core::option::Option<u32>,
3011    #[prost(bytes = "vec", optional, tag = "5")]
3012    pub packed_fields: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3013}
3014#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3015#[repr(i32)]
3016pub enum EBaseGameEvents {
3017    GeVDebugGameSessionIdEvent = 200,
3018    GePlaceDecalEvent = 201,
3019    GeClearWorldDecalsEvent = 202,
3020    GeClearEntityDecalsEvent = 203,
3021    GeClearDecalsForEntityEvent = 204,
3022    GeSource1LegacyGameEventList = 205,
3023    GeSource1LegacyListenEvents = 206,
3024    GeSource1LegacyGameEvent = 207,
3025    GeSosStartSoundEvent = 208,
3026    GeSosStopSoundEvent = 209,
3027    GeSosSetSoundEventParams = 210,
3028    GeSosSetLibraryStackFields = 211,
3029    GeSosStopSoundEventHash = 212,
3030}
3031#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3032pub struct CclcMsgClientInfo {
3033    #[prost(fixed32, optional, tag = "1")]
3034    pub send_table_crc: ::core::option::Option<u32>,
3035    #[prost(uint32, optional, tag = "2")]
3036    pub server_count: ::core::option::Option<u32>,
3037    #[prost(bool, optional, tag = "3")]
3038    pub is_hltv: ::core::option::Option<bool>,
3039    #[prost(uint32, optional, tag = "5")]
3040    pub friends_id: ::core::option::Option<u32>,
3041    #[prost(string, optional, tag = "6")]
3042    pub friends_name: ::core::option::Option<::prost::alloc::string::String>,
3043}
3044#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3045pub struct CclcMsgMove {
3046    #[prost(bytes = "vec", optional, tag = "3")]
3047    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3048    #[prost(uint32, optional, tag = "4")]
3049    pub last_command_number: ::core::option::Option<u32>,
3050}
3051#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3052pub struct CMsgVoiceAudio {
3053    #[prost(enumeration = "VoiceDataFormatT", optional, tag = "1", default = "VoicedataFormatSteam")]
3054    pub format: ::core::option::Option<i32>,
3055    #[prost(bytes = "vec", optional, tag = "2")]
3056    pub voice_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3057    #[prost(int32, optional, tag = "3")]
3058    pub sequence_bytes: ::core::option::Option<i32>,
3059    #[prost(uint32, optional, tag = "4")]
3060    pub section_number: ::core::option::Option<u32>,
3061    #[prost(uint32, optional, tag = "5")]
3062    pub sample_rate: ::core::option::Option<u32>,
3063    #[prost(uint32, optional, tag = "6")]
3064    pub uncompressed_sample_offset: ::core::option::Option<u32>,
3065    #[prost(uint32, optional, tag = "7")]
3066    pub num_packets: ::core::option::Option<u32>,
3067    #[prost(uint32, repeated, tag = "8")]
3068    pub packet_offsets: ::prost::alloc::vec::Vec<u32>,
3069    #[prost(float, optional, tag = "9")]
3070    pub voice_level: ::core::option::Option<f32>,
3071}
3072#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3073pub struct CclcMsgVoiceData {
3074    #[prost(message, optional, tag = "1")]
3075    pub audio: ::core::option::Option<CMsgVoiceAudio>,
3076    #[prost(fixed64, optional, tag = "2")]
3077    pub xuid: ::core::option::Option<u64>,
3078    #[prost(uint32, optional, tag = "3")]
3079    pub tick: ::core::option::Option<u32>,
3080}
3081#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3082pub struct CclcMsgBaselineAck {
3083    #[prost(int32, optional, tag = "1")]
3084    pub baseline_tick: ::core::option::Option<i32>,
3085    #[prost(int32, optional, tag = "2")]
3086    pub baseline_nr: ::core::option::Option<i32>,
3087}
3088#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3089pub struct CclcMsgListenEvents {
3090    #[prost(fixed32, repeated, packed = "false", tag = "1")]
3091    pub event_mask: ::prost::alloc::vec::Vec<u32>,
3092}
3093#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3094pub struct CclcMsgRespondCvarValue {
3095    #[prost(int32, optional, tag = "1")]
3096    pub cookie: ::core::option::Option<i32>,
3097    #[prost(int32, optional, tag = "2")]
3098    pub status_code: ::core::option::Option<i32>,
3099    #[prost(string, optional, tag = "3")]
3100    pub name: ::core::option::Option<::prost::alloc::string::String>,
3101    #[prost(string, optional, tag = "4")]
3102    pub value: ::core::option::Option<::prost::alloc::string::String>,
3103}
3104#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3105pub struct CclcMsgLoadingProgress {
3106    #[prost(int32, optional, tag = "1")]
3107    pub progress: ::core::option::Option<i32>,
3108}
3109#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3110pub struct CclcMsgSplitPlayerConnect {
3111    #[prost(string, optional, tag = "1")]
3112    pub playername: ::core::option::Option<::prost::alloc::string::String>,
3113}
3114#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3115pub struct CclcMsgSplitPlayerDisconnect {
3116    #[prost(int32, optional, tag = "1")]
3117    pub slot: ::core::option::Option<i32>,
3118}
3119#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3120pub struct CclcMsgServerStatus {
3121    #[prost(bool, optional, tag = "1")]
3122    pub simplified: ::core::option::Option<bool>,
3123}
3124#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3125pub struct CclcMsgRequestPause {
3126    #[prost(enumeration = "RequestPauseT", optional, tag = "1", default = "RpPause")]
3127    pub pause_type: ::core::option::Option<i32>,
3128    #[prost(int32, optional, tag = "2")]
3129    pub pause_group: ::core::option::Option<i32>,
3130}
3131#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3132pub struct CclcMsgCmdKeyValues {
3133    #[prost(bytes = "vec", optional, tag = "1")]
3134    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3135}
3136#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3137pub struct CclcMsgRconServerDetails {
3138    #[prost(bytes = "vec", optional, tag = "1")]
3139    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3140}
3141#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3142pub struct CMsgSource2SystemSpecs {
3143    #[prost(string, optional, tag = "1")]
3144    pub cpu_id: ::core::option::Option<::prost::alloc::string::String>,
3145    #[prost(string, optional, tag = "2")]
3146    pub cpu_brand: ::core::option::Option<::prost::alloc::string::String>,
3147    #[prost(uint32, optional, tag = "3")]
3148    pub cpu_model: ::core::option::Option<u32>,
3149    #[prost(uint32, optional, tag = "4")]
3150    pub cpu_num_physical: ::core::option::Option<u32>,
3151    #[prost(uint32, optional, tag = "21")]
3152    pub ram_physical_total_mb: ::core::option::Option<u32>,
3153    #[prost(string, optional, tag = "41")]
3154    pub gpu_rendersystem_dll_name: ::core::option::Option<::prost::alloc::string::String>,
3155    #[prost(uint32, optional, tag = "42")]
3156    pub gpu_vendor_id: ::core::option::Option<u32>,
3157    #[prost(string, optional, tag = "43")]
3158    pub gpu_driver_name: ::core::option::Option<::prost::alloc::string::String>,
3159    #[prost(uint32, optional, tag = "44")]
3160    pub gpu_driver_version_high: ::core::option::Option<u32>,
3161    #[prost(uint32, optional, tag = "45")]
3162    pub gpu_driver_version_low: ::core::option::Option<u32>,
3163    #[prost(uint32, optional, tag = "46")]
3164    pub gpu_dx_support_level: ::core::option::Option<u32>,
3165    #[prost(uint32, optional, tag = "47")]
3166    pub gpu_texture_memory_size_mb: ::core::option::Option<u32>,
3167    #[prost(uint32, optional, tag = "51")]
3168    pub backbuffer_width: ::core::option::Option<u32>,
3169    #[prost(uint32, optional, tag = "52")]
3170    pub backbuffer_height: ::core::option::Option<u32>,
3171}
3172#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3173pub struct CMsgSource2VProfLiteReportItem {
3174    #[prost(string, optional, tag = "1")]
3175    pub name: ::core::option::Option<::prost::alloc::string::String>,
3176    #[prost(uint32, optional, tag = "2")]
3177    pub active_samples: ::core::option::Option<u32>,
3178    #[prost(uint32, optional, tag = "4")]
3179    pub active_samples_1secmax: ::core::option::Option<u32>,
3180    #[prost(uint32, optional, tag = "3")]
3181    pub usec_max: ::core::option::Option<u32>,
3182    #[prost(uint32, optional, tag = "11")]
3183    pub usec_avg_active: ::core::option::Option<u32>,
3184    #[prost(uint32, optional, tag = "12")]
3185    pub usec_p50_active: ::core::option::Option<u32>,
3186    #[prost(uint32, optional, tag = "13")]
3187    pub usec_p99_active: ::core::option::Option<u32>,
3188    #[prost(uint32, optional, tag = "21")]
3189    pub usec_avg_all: ::core::option::Option<u32>,
3190    #[prost(uint32, optional, tag = "22")]
3191    pub usec_p50_all: ::core::option::Option<u32>,
3192    #[prost(uint32, optional, tag = "23")]
3193    pub usec_p99_all: ::core::option::Option<u32>,
3194    #[prost(uint32, optional, tag = "31")]
3195    pub usec_1secmax_avg_active: ::core::option::Option<u32>,
3196    #[prost(uint32, optional, tag = "32")]
3197    pub usec_1secmax_p50_active: ::core::option::Option<u32>,
3198    #[prost(uint32, optional, tag = "33")]
3199    pub usec_1secmax_p95_active: ::core::option::Option<u32>,
3200    #[prost(uint32, optional, tag = "34")]
3201    pub usec_1secmax_p99_active: ::core::option::Option<u32>,
3202    #[prost(uint32, optional, tag = "41")]
3203    pub usec_1secmax_avg_all: ::core::option::Option<u32>,
3204    #[prost(uint32, optional, tag = "42")]
3205    pub usec_1secmax_p50_all: ::core::option::Option<u32>,
3206    #[prost(uint32, optional, tag = "43")]
3207    pub usec_1secmax_p95_all: ::core::option::Option<u32>,
3208    #[prost(uint32, optional, tag = "44")]
3209    pub usec_1secmax_p99_all: ::core::option::Option<u32>,
3210}
3211#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3212pub struct CMsgSource2VProfLiteReport {
3213    #[prost(message, optional, tag = "1")]
3214    pub total: ::core::option::Option<CMsgSource2VProfLiteReportItem>,
3215    #[prost(message, repeated, tag = "2")]
3216    pub items: ::prost::alloc::vec::Vec<CMsgSource2VProfLiteReportItem>,
3217    #[prost(uint32, optional, tag = "3")]
3218    pub discarded_frames: ::core::option::Option<u32>,
3219}
3220#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3221pub struct CMsgSource2NetworkFlowQuality {
3222    #[prost(uint32, optional, tag = "1")]
3223    pub duration: ::core::option::Option<u32>,
3224    #[prost(uint64, optional, tag = "5")]
3225    pub bytes_total: ::core::option::Option<u64>,
3226    #[prost(uint64, optional, tag = "6")]
3227    pub bytes_total_reliable: ::core::option::Option<u64>,
3228    #[prost(uint64, optional, tag = "7")]
3229    pub bytes_total_voice: ::core::option::Option<u64>,
3230    #[prost(uint32, optional, tag = "10")]
3231    pub bytes_sec_p95: ::core::option::Option<u32>,
3232    #[prost(uint32, optional, tag = "11")]
3233    pub bytes_sec_p99: ::core::option::Option<u32>,
3234    #[prost(uint32, optional, tag = "20")]
3235    pub enginemsgs_total: ::core::option::Option<u32>,
3236    #[prost(uint32, optional, tag = "21")]
3237    pub enginemsgs_sec_p95: ::core::option::Option<u32>,
3238    #[prost(uint32, optional, tag = "22")]
3239    pub enginemsgs_sec_p99: ::core::option::Option<u32>,
3240    #[prost(uint32, optional, tag = "30")]
3241    pub netframes_total: ::core::option::Option<u32>,
3242    #[prost(uint32, optional, tag = "31")]
3243    pub netframes_dropped: ::core::option::Option<u32>,
3244    #[prost(uint32, optional, tag = "32")]
3245    pub netframes_outoforder: ::core::option::Option<u32>,
3246    #[prost(uint32, optional, tag = "34")]
3247    pub netframes_size_exceeds_mtu: ::core::option::Option<u32>,
3248    #[prost(uint32, optional, tag = "35")]
3249    pub netframes_size_p95: ::core::option::Option<u32>,
3250    #[prost(uint32, optional, tag = "36")]
3251    pub netframes_size_p99: ::core::option::Option<u32>,
3252    #[prost(uint32, optional, tag = "40")]
3253    pub ticks_total: ::core::option::Option<u32>,
3254    #[prost(uint32, optional, tag = "41")]
3255    pub ticks_good: ::core::option::Option<u32>,
3256    #[prost(uint32, optional, tag = "42")]
3257    pub ticks_good_almost_late: ::core::option::Option<u32>,
3258    #[prost(uint32, optional, tag = "43")]
3259    pub ticks_fixed_dropped: ::core::option::Option<u32>,
3260    #[prost(uint32, optional, tag = "44")]
3261    pub ticks_fixed_late: ::core::option::Option<u32>,
3262    #[prost(uint32, optional, tag = "45")]
3263    pub ticks_bad_dropped: ::core::option::Option<u32>,
3264    #[prost(uint32, optional, tag = "46")]
3265    pub ticks_bad_late: ::core::option::Option<u32>,
3266    #[prost(uint32, optional, tag = "47")]
3267    pub ticks_bad_other: ::core::option::Option<u32>,
3268    #[prost(uint32, optional, tag = "50")]
3269    pub tick_missrate_samples_total: ::core::option::Option<u32>,
3270    #[prost(uint32, optional, tag = "51")]
3271    pub tick_missrate_samples_perfect: ::core::option::Option<u32>,
3272    #[prost(uint32, optional, tag = "52")]
3273    pub tick_missrate_samples_perfectnet: ::core::option::Option<u32>,
3274    #[prost(uint32, optional, tag = "53")]
3275    pub tick_missratenet_p75_x10: ::core::option::Option<u32>,
3276    #[prost(uint32, optional, tag = "54")]
3277    pub tick_missratenet_p95_x10: ::core::option::Option<u32>,
3278    #[prost(uint32, optional, tag = "55")]
3279    pub tick_missratenet_p99_x10: ::core::option::Option<u32>,
3280    #[prost(sint32, optional, tag = "61")]
3281    pub recvmargin_p1: ::core::option::Option<i32>,
3282    #[prost(sint32, optional, tag = "62")]
3283    pub recvmargin_p5: ::core::option::Option<i32>,
3284    #[prost(sint32, optional, tag = "63")]
3285    pub recvmargin_p25: ::core::option::Option<i32>,
3286    #[prost(sint32, optional, tag = "64")]
3287    pub recvmargin_p50: ::core::option::Option<i32>,
3288    #[prost(sint32, optional, tag = "65")]
3289    pub recvmargin_p75: ::core::option::Option<i32>,
3290    #[prost(sint32, optional, tag = "66")]
3291    pub recvmargin_p95: ::core::option::Option<i32>,
3292    #[prost(uint32, optional, tag = "70")]
3293    pub netframe_jitter_p50: ::core::option::Option<u32>,
3294    #[prost(uint32, optional, tag = "71")]
3295    pub netframe_jitter_p99: ::core::option::Option<u32>,
3296    #[prost(uint32, optional, tag = "72")]
3297    pub interval_peakjitter_p50: ::core::option::Option<u32>,
3298    #[prost(uint32, optional, tag = "73")]
3299    pub interval_peakjitter_p95: ::core::option::Option<u32>,
3300    #[prost(uint32, optional, tag = "74")]
3301    pub packet_misdelivery_rate_p50_x4: ::core::option::Option<u32>,
3302    #[prost(uint32, optional, tag = "75")]
3303    pub packet_misdelivery_rate_p95_x4: ::core::option::Option<u32>,
3304    #[prost(uint32, optional, tag = "80")]
3305    pub net_ping_p5: ::core::option::Option<u32>,
3306    #[prost(uint32, optional, tag = "81")]
3307    pub net_ping_p50: ::core::option::Option<u32>,
3308    #[prost(uint32, optional, tag = "82")]
3309    pub net_ping_p95: ::core::option::Option<u32>,
3310}
3311#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3312pub struct CMsgSource2PerfIntervalSample {
3313    #[prost(float, optional, tag = "1")]
3314    pub frame_time_max_ms: ::core::option::Option<f32>,
3315    #[prost(float, optional, tag = "2")]
3316    pub frame_time_avg_ms: ::core::option::Option<f32>,
3317    #[prost(float, optional, tag = "3")]
3318    pub frame_time_min_ms: ::core::option::Option<f32>,
3319    #[prost(int32, optional, tag = "4")]
3320    pub frame_count: ::core::option::Option<i32>,
3321    #[prost(float, optional, tag = "5")]
3322    pub frame_time_total_ms: ::core::option::Option<f32>,
3323    #[prost(message, repeated, tag = "6")]
3324    pub tags: ::prost::alloc::vec::Vec<c_msg_source2_perf_interval_sample::Tag>,
3325}
3326pub mod c_msg_source2_perf_interval_sample {
3327    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3328    pub struct Tag {
3329        #[prost(string, optional, tag = "1")]
3330        pub tag: ::core::option::Option<::prost::alloc::string::String>,
3331        #[prost(uint32, optional, tag = "2")]
3332        pub max_value: ::core::option::Option<u32>,
3333    }
3334}
3335#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3336pub struct CclcMsgDiagnostic {
3337    #[prost(message, optional, tag = "1")]
3338    pub system_specs: ::core::option::Option<CMsgSource2SystemSpecs>,
3339    #[prost(message, optional, tag = "2")]
3340    pub vprof_report: ::core::option::Option<CMsgSource2VProfLiteReport>,
3341    #[prost(message, optional, tag = "3")]
3342    pub downstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
3343    #[prost(message, optional, tag = "4")]
3344    pub upstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
3345    #[prost(message, repeated, tag = "5")]
3346    pub perf_samples: ::prost::alloc::vec::Vec<CMsgSource2PerfIntervalSample>,
3347}
3348#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3349pub struct CSource2MetricsMatchPerfSummaryNotification {
3350    #[prost(uint32, optional, tag = "1")]
3351    pub appid: ::core::option::Option<u32>,
3352    #[prost(string, optional, tag = "2")]
3353    pub game_mode: ::core::option::Option<::prost::alloc::string::String>,
3354    #[prost(uint32, optional, tag = "3")]
3355    pub server_build_id: ::core::option::Option<u32>,
3356    #[prost(fixed32, optional, tag = "4")]
3357    pub server_popid: ::core::option::Option<u32>,
3358    #[prost(message, optional, tag = "10")]
3359    pub server_profile: ::core::option::Option<CMsgSource2VProfLiteReport>,
3360    #[prost(message, repeated, tag = "11")]
3361    pub clients: ::prost::alloc::vec::Vec<c_source2_metrics_match_perf_summary_notification::Client>,
3362    #[prost(string, optional, tag = "20")]
3363    pub map: ::core::option::Option<::prost::alloc::string::String>,
3364}
3365pub mod c_source2_metrics_match_perf_summary_notification {
3366    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3367    pub struct Client {
3368        #[prost(message, optional, tag = "1")]
3369        pub system_specs: ::core::option::Option<super::CMsgSource2SystemSpecs>,
3370        #[prost(message, optional, tag = "2")]
3371        pub profile: ::core::option::Option<super::CMsgSource2VProfLiteReport>,
3372        #[prost(uint32, optional, tag = "3")]
3373        pub build_id: ::core::option::Option<u32>,
3374        #[prost(message, optional, tag = "4")]
3375        pub downstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
3376        #[prost(message, optional, tag = "5")]
3377        pub upstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
3378        #[prost(fixed64, optional, tag = "10")]
3379        pub steamid: ::core::option::Option<u64>,
3380        #[prost(message, repeated, tag = "11")]
3381        pub perf_samples: ::prost::alloc::vec::Vec<super::CMsgSource2PerfIntervalSample>,
3382    }
3383}
3384#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3385pub struct CSvcMsgServerInfo {
3386    #[prost(int32, optional, tag = "1")]
3387    pub protocol: ::core::option::Option<i32>,
3388    #[prost(int32, optional, tag = "2")]
3389    pub server_count: ::core::option::Option<i32>,
3390    #[prost(bool, optional, tag = "3")]
3391    pub is_dedicated: ::core::option::Option<bool>,
3392    #[prost(bool, optional, tag = "4")]
3393    pub is_hltv: ::core::option::Option<bool>,
3394    #[prost(int32, optional, tag = "6")]
3395    pub c_os: ::core::option::Option<i32>,
3396    #[prost(int32, optional, tag = "10")]
3397    pub max_clients: ::core::option::Option<i32>,
3398    #[prost(int32, optional, tag = "11")]
3399    pub max_classes: ::core::option::Option<i32>,
3400    #[prost(int32, optional, tag = "12", default = "-1")]
3401    pub player_slot: ::core::option::Option<i32>,
3402    #[prost(float, optional, tag = "13")]
3403    pub tick_interval: ::core::option::Option<f32>,
3404    #[prost(string, optional, tag = "14")]
3405    pub game_dir: ::core::option::Option<::prost::alloc::string::String>,
3406    #[prost(string, optional, tag = "15")]
3407    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
3408    #[prost(string, optional, tag = "16")]
3409    pub sky_name: ::core::option::Option<::prost::alloc::string::String>,
3410    #[prost(string, optional, tag = "17")]
3411    pub host_name: ::core::option::Option<::prost::alloc::string::String>,
3412    #[prost(string, optional, tag = "18")]
3413    pub addon_name: ::core::option::Option<::prost::alloc::string::String>,
3414    #[prost(message, optional, tag = "19")]
3415    pub game_session_config: ::core::option::Option<CSvcMsgGameSessionConfiguration>,
3416    #[prost(bytes = "vec", optional, tag = "20")]
3417    pub game_session_manifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3418}
3419#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3420pub struct CSvcMsgClassInfo {
3421    #[prost(bool, optional, tag = "1")]
3422    pub create_on_client: ::core::option::Option<bool>,
3423    #[prost(message, repeated, tag = "2")]
3424    pub classes: ::prost::alloc::vec::Vec<csvc_msg_class_info::ClassT>,
3425}
3426pub mod csvc_msg_class_info {
3427    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3428    pub struct ClassT {
3429        #[prost(int32, optional, tag = "1")]
3430        pub class_id: ::core::option::Option<i32>,
3431        #[prost(string, optional, tag = "3")]
3432        pub class_name: ::core::option::Option<::prost::alloc::string::String>,
3433    }
3434}
3435#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3436pub struct CSvcMsgSetPause {
3437    #[prost(bool, optional, tag = "1")]
3438    pub paused: ::core::option::Option<bool>,
3439}
3440#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3441pub struct CSvcMsgVoiceInit {
3442    #[prost(int32, optional, tag = "1")]
3443    pub quality: ::core::option::Option<i32>,
3444    #[prost(string, optional, tag = "2")]
3445    pub codec: ::core::option::Option<::prost::alloc::string::String>,
3446    #[prost(int32, optional, tag = "3", default = "0")]
3447    pub version: ::core::option::Option<i32>,
3448}
3449#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3450pub struct CSvcMsgPrint {
3451    #[prost(string, optional, tag = "1")]
3452    pub text: ::core::option::Option<::prost::alloc::string::String>,
3453}
3454#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3455pub struct CSvcMsgSounds {
3456    #[prost(bool, optional, tag = "1")]
3457    pub reliable_sound: ::core::option::Option<bool>,
3458    #[prost(message, repeated, tag = "2")]
3459    pub sounds: ::prost::alloc::vec::Vec<csvc_msg_sounds::SounddataT>,
3460}
3461pub mod csvc_msg_sounds {
3462    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3463    pub struct SounddataT {
3464        #[prost(sint32, optional, tag = "1")]
3465        pub origin_x: ::core::option::Option<i32>,
3466        #[prost(sint32, optional, tag = "2")]
3467        pub origin_y: ::core::option::Option<i32>,
3468        #[prost(sint32, optional, tag = "3")]
3469        pub origin_z: ::core::option::Option<i32>,
3470        #[prost(uint32, optional, tag = "4")]
3471        pub volume: ::core::option::Option<u32>,
3472        #[prost(float, optional, tag = "5")]
3473        pub delay_value: ::core::option::Option<f32>,
3474        #[prost(int32, optional, tag = "6")]
3475        pub sequence_number: ::core::option::Option<i32>,
3476        #[prost(int32, optional, tag = "7", default = "-1")]
3477        pub entity_index: ::core::option::Option<i32>,
3478        #[prost(int32, optional, tag = "8")]
3479        pub channel: ::core::option::Option<i32>,
3480        #[prost(int32, optional, tag = "9")]
3481        pub pitch: ::core::option::Option<i32>,
3482        #[prost(int32, optional, tag = "10")]
3483        pub flags: ::core::option::Option<i32>,
3484        #[prost(uint32, optional, tag = "11")]
3485        pub sound_num: ::core::option::Option<u32>,
3486        #[prost(fixed32, optional, tag = "12")]
3487        pub sound_num_handle: ::core::option::Option<u32>,
3488        #[prost(int32, optional, tag = "13")]
3489        pub speaker_entity: ::core::option::Option<i32>,
3490        #[prost(int32, optional, tag = "14")]
3491        pub random_seed: ::core::option::Option<i32>,
3492        #[prost(int32, optional, tag = "15")]
3493        pub sound_level: ::core::option::Option<i32>,
3494        #[prost(bool, optional, tag = "16")]
3495        pub is_sentence: ::core::option::Option<bool>,
3496        #[prost(bool, optional, tag = "17")]
3497        pub is_ambient: ::core::option::Option<bool>,
3498        #[prost(uint32, optional, tag = "18")]
3499        pub guid: ::core::option::Option<u32>,
3500        #[prost(fixed64, optional, tag = "19")]
3501        pub sound_resource_id: ::core::option::Option<u64>,
3502    }
3503}
3504#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3505pub struct CSvcMsgPrefetch {
3506    #[prost(int32, optional, tag = "1")]
3507    pub sound_index: ::core::option::Option<i32>,
3508    #[prost(enumeration = "PrefetchType", optional, tag = "2", default = "PftSound")]
3509    pub resource_type: ::core::option::Option<i32>,
3510}
3511#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3512pub struct CSvcMsgSetView {
3513    #[prost(int32, optional, tag = "1", default = "-1")]
3514    pub entity_index: ::core::option::Option<i32>,
3515    #[prost(int32, optional, tag = "2", default = "-1")]
3516    pub slot: ::core::option::Option<i32>,
3517}
3518#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3519pub struct CSvcMsgFixAngle {
3520    #[prost(bool, optional, tag = "1")]
3521    pub relative: ::core::option::Option<bool>,
3522    #[prost(message, optional, tag = "2")]
3523    pub angle: ::core::option::Option<CMsgQAngle>,
3524}
3525#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3526pub struct CSvcMsgCrosshairAngle {
3527    #[prost(message, optional, tag = "1")]
3528    pub angle: ::core::option::Option<CMsgQAngle>,
3529}
3530#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3531pub struct CSvcMsgBspDecal {
3532    #[prost(message, optional, tag = "1")]
3533    pub pos: ::core::option::Option<CMsgVector>,
3534    #[prost(int32, optional, tag = "2")]
3535    pub decal_texture_index: ::core::option::Option<i32>,
3536    #[prost(int32, optional, tag = "3", default = "-1")]
3537    pub entity_index: ::core::option::Option<i32>,
3538    #[prost(int32, optional, tag = "4")]
3539    pub model_index: ::core::option::Option<i32>,
3540    #[prost(bool, optional, tag = "5")]
3541    pub low_priority: ::core::option::Option<bool>,
3542}
3543#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3544pub struct CSvcMsgSplitScreen {
3545    #[prost(enumeration = "ESplitScreenMessageType", optional, tag = "1", default = "MsgSplitscreenAdduser")]
3546    pub r#type: ::core::option::Option<i32>,
3547    #[prost(int32, optional, tag = "2")]
3548    pub slot: ::core::option::Option<i32>,
3549    #[prost(int32, optional, tag = "3", default = "-1")]
3550    pub player_index: ::core::option::Option<i32>,
3551}
3552#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3553pub struct CSvcMsgGetCvarValue {
3554    #[prost(int32, optional, tag = "1")]
3555    pub cookie: ::core::option::Option<i32>,
3556    #[prost(string, optional, tag = "2")]
3557    pub cvar_name: ::core::option::Option<::prost::alloc::string::String>,
3558}
3559#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3560pub struct CSvcMsgMenu {
3561    #[prost(int32, optional, tag = "1")]
3562    pub dialog_type: ::core::option::Option<i32>,
3563    #[prost(bytes = "vec", optional, tag = "2")]
3564    pub menu_key_values: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3565}
3566#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3567pub struct CSvcMsgUserMessage {
3568    #[prost(int32, optional, tag = "1")]
3569    pub msg_type: ::core::option::Option<i32>,
3570    #[prost(bytes = "vec", optional, tag = "2")]
3571    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3572    #[prost(int32, optional, tag = "3")]
3573    pub passthrough: ::core::option::Option<i32>,
3574}
3575#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3576pub struct CSvcMsgSendTable {
3577    #[prost(bool, optional, tag = "1")]
3578    pub is_end: ::core::option::Option<bool>,
3579    #[prost(string, optional, tag = "2")]
3580    pub net_table_name: ::core::option::Option<::prost::alloc::string::String>,
3581    #[prost(bool, optional, tag = "3")]
3582    pub needs_decoder: ::core::option::Option<bool>,
3583    #[prost(message, repeated, tag = "4")]
3584    pub props: ::prost::alloc::vec::Vec<csvc_msg_send_table::SendpropT>,
3585}
3586pub mod csvc_msg_send_table {
3587    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3588    pub struct SendpropT {
3589        #[prost(int32, optional, tag = "1")]
3590        pub r#type: ::core::option::Option<i32>,
3591        #[prost(string, optional, tag = "2")]
3592        pub var_name: ::core::option::Option<::prost::alloc::string::String>,
3593        #[prost(int32, optional, tag = "3")]
3594        pub flags: ::core::option::Option<i32>,
3595        #[prost(int32, optional, tag = "4")]
3596        pub priority: ::core::option::Option<i32>,
3597        #[prost(string, optional, tag = "5")]
3598        pub dt_name: ::core::option::Option<::prost::alloc::string::String>,
3599        #[prost(int32, optional, tag = "6")]
3600        pub num_elements: ::core::option::Option<i32>,
3601        #[prost(float, optional, tag = "7")]
3602        pub low_value: ::core::option::Option<f32>,
3603        #[prost(float, optional, tag = "8")]
3604        pub high_value: ::core::option::Option<f32>,
3605        #[prost(int32, optional, tag = "9")]
3606        pub num_bits: ::core::option::Option<i32>,
3607    }
3608}
3609#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3610pub struct CSvcMsgGameEventList {
3611    #[prost(message, repeated, tag = "1")]
3612    pub descriptors: ::prost::alloc::vec::Vec<csvc_msg_game_event_list::DescriptorT>,
3613}
3614pub mod csvc_msg_game_event_list {
3615    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3616    pub struct KeyT {
3617        #[prost(int32, optional, tag = "1")]
3618        pub r#type: ::core::option::Option<i32>,
3619        #[prost(string, optional, tag = "2")]
3620        pub name: ::core::option::Option<::prost::alloc::string::String>,
3621    }
3622    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3623    pub struct DescriptorT {
3624        #[prost(int32, optional, tag = "1")]
3625        pub eventid: ::core::option::Option<i32>,
3626        #[prost(string, optional, tag = "2")]
3627        pub name: ::core::option::Option<::prost::alloc::string::String>,
3628        #[prost(message, repeated, tag = "3")]
3629        pub keys: ::prost::alloc::vec::Vec<KeyT>,
3630    }
3631}
3632#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3633pub struct CSvcMsgPacketEntities {
3634    #[prost(int32, optional, tag = "1")]
3635    pub max_entries: ::core::option::Option<i32>,
3636    #[prost(int32, optional, tag = "2")]
3637    pub updated_entries: ::core::option::Option<i32>,
3638    #[prost(bool, optional, tag = "3")]
3639    pub legacy_is_delta: ::core::option::Option<bool>,
3640    #[prost(bool, optional, tag = "4")]
3641    pub update_baseline: ::core::option::Option<bool>,
3642    #[prost(int32, optional, tag = "5")]
3643    pub baseline: ::core::option::Option<i32>,
3644    #[prost(int32, optional, tag = "6")]
3645    pub delta_from: ::core::option::Option<i32>,
3646    #[prost(bytes = "vec", optional, tag = "7")]
3647    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3648    #[prost(bool, optional, tag = "8")]
3649    pub pending_full_frame: ::core::option::Option<bool>,
3650    #[prost(uint32, optional, tag = "9")]
3651    pub active_spawngroup_handle: ::core::option::Option<u32>,
3652    #[prost(uint32, optional, tag = "10")]
3653    pub max_spawngroup_creationsequence: ::core::option::Option<u32>,
3654    #[prost(uint32, optional, tag = "11")]
3655    pub last_cmd_number_executed: ::core::option::Option<u32>,
3656    #[prost(sint32, optional, tag = "17")]
3657    pub last_cmd_number_recv_delta: ::core::option::Option<i32>,
3658    #[prost(uint32, optional, tag = "12")]
3659    pub server_tick: ::core::option::Option<u32>,
3660    #[prost(bytes = "vec", optional, tag = "13")]
3661    pub serialized_entities: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3662    #[prost(message, repeated, tag = "15")]
3663    pub alternate_baselines: ::prost::alloc::vec::Vec<csvc_msg_packet_entities::AlternateBaselineT>,
3664    #[prost(uint32, optional, tag = "16")]
3665    pub has_pvs_vis_bits_deprecated: ::core::option::Option<u32>,
3666    #[prost(sint32, repeated, tag = "22")]
3667    pub cmd_recv_status: ::prost::alloc::vec::Vec<i32>,
3668    #[prost(message, optional, tag = "19")]
3669    pub non_transmitted_entities: ::core::option::Option<csvc_msg_packet_entities::NonTransmittedEntitiesT>,
3670    #[prost(uint32, optional, tag = "20")]
3671    pub cq_starved_command_ticks: ::core::option::Option<u32>,
3672    #[prost(uint32, optional, tag = "21")]
3673    pub cq_discarded_command_ticks: ::core::option::Option<u32>,
3674    #[prost(message, optional, tag = "23")]
3675    pub outofpvs_entity_updates: ::core::option::Option<csvc_msg_packet_entities::OutofpvsEntityUpdatesT>,
3676    #[prost(bytes = "vec", optional, tag = "999")]
3677    pub dev_padding: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3678}
3679pub mod csvc_msg_packet_entities {
3680    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3681    pub struct AlternateBaselineT {
3682        #[prost(int32, optional, tag = "1")]
3683        pub entity_index: ::core::option::Option<i32>,
3684        #[prost(int32, optional, tag = "2")]
3685        pub baseline_index: ::core::option::Option<i32>,
3686    }
3687    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3688    pub struct NonTransmittedEntitiesT {
3689        #[prost(int32, optional, tag = "1")]
3690        pub header_count: ::core::option::Option<i32>,
3691        #[prost(bytes = "vec", optional, tag = "2")]
3692        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3693    }
3694    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3695    pub struct OutofpvsEntityUpdatesT {
3696        #[prost(int32, optional, tag = "1")]
3697        pub count: ::core::option::Option<i32>,
3698        #[prost(bytes = "vec", optional, tag = "2")]
3699        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3700    }
3701}
3702#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3703pub struct CSvcMsgTempEntities {
3704    #[prost(bool, optional, tag = "1")]
3705    pub reliable: ::core::option::Option<bool>,
3706    #[prost(int32, optional, tag = "2")]
3707    pub num_entries: ::core::option::Option<i32>,
3708    #[prost(bytes = "vec", optional, tag = "3")]
3709    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3710}
3711#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3712pub struct CSvcMsgCreateStringTable {
3713    #[prost(string, optional, tag = "1")]
3714    pub name: ::core::option::Option<::prost::alloc::string::String>,
3715    #[prost(int32, optional, tag = "2")]
3716    pub num_entries: ::core::option::Option<i32>,
3717    #[prost(bool, optional, tag = "3")]
3718    pub user_data_fixed_size: ::core::option::Option<bool>,
3719    #[prost(int32, optional, tag = "4")]
3720    pub user_data_size: ::core::option::Option<i32>,
3721    #[prost(int32, optional, tag = "5")]
3722    pub user_data_size_bits: ::core::option::Option<i32>,
3723    #[prost(int32, optional, tag = "6")]
3724    pub flags: ::core::option::Option<i32>,
3725    #[prost(bytes = "vec", optional, tag = "7")]
3726    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3727    #[prost(int32, optional, tag = "8")]
3728    pub uncompressed_size: ::core::option::Option<i32>,
3729    #[prost(bool, optional, tag = "9")]
3730    pub data_compressed: ::core::option::Option<bool>,
3731    #[prost(bool, optional, tag = "10")]
3732    pub using_varint_bitcounts: ::core::option::Option<bool>,
3733}
3734#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3735pub struct CSvcMsgUpdateStringTable {
3736    #[prost(int32, optional, tag = "1")]
3737    pub table_id: ::core::option::Option<i32>,
3738    #[prost(int32, optional, tag = "2")]
3739    pub num_changed_entries: ::core::option::Option<i32>,
3740    #[prost(bytes = "vec", optional, tag = "3")]
3741    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3742}
3743#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3744pub struct CSvcMsgVoiceData {
3745    #[prost(message, optional, tag = "1")]
3746    pub audio: ::core::option::Option<CMsgVoiceAudio>,
3747    #[prost(int32, optional, tag = "2", default = "-1")]
3748    pub client: ::core::option::Option<i32>,
3749    #[prost(bool, optional, tag = "3")]
3750    pub proximity: ::core::option::Option<bool>,
3751    #[prost(fixed64, optional, tag = "4")]
3752    pub xuid: ::core::option::Option<u64>,
3753    #[prost(int32, optional, tag = "5")]
3754    pub audible_mask: ::core::option::Option<i32>,
3755    #[prost(uint32, optional, tag = "6")]
3756    pub tick: ::core::option::Option<u32>,
3757    #[prost(int32, optional, tag = "7")]
3758    pub passthrough: ::core::option::Option<i32>,
3759}
3760#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3761pub struct CSvcMsgPacketReliable {
3762    #[prost(int32, optional, tag = "1")]
3763    pub tick: ::core::option::Option<i32>,
3764    #[prost(int32, optional, tag = "2")]
3765    pub messagessize: ::core::option::Option<i32>,
3766    #[prost(bool, optional, tag = "3")]
3767    pub state: ::core::option::Option<bool>,
3768}
3769#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3770pub struct CSvcMsgFullFrameSplit {
3771    #[prost(int32, optional, tag = "1")]
3772    pub tick: ::core::option::Option<i32>,
3773    #[prost(int32, optional, tag = "2")]
3774    pub section: ::core::option::Option<i32>,
3775    #[prost(int32, optional, tag = "3")]
3776    pub total: ::core::option::Option<i32>,
3777    #[prost(bytes = "vec", optional, tag = "4")]
3778    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3779}
3780#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3781pub struct CSvcMsgHltvStatus {
3782    #[prost(string, optional, tag = "1")]
3783    pub master: ::core::option::Option<::prost::alloc::string::String>,
3784    #[prost(int32, optional, tag = "2")]
3785    pub clients: ::core::option::Option<i32>,
3786    #[prost(int32, optional, tag = "3")]
3787    pub slots: ::core::option::Option<i32>,
3788    #[prost(int32, optional, tag = "4")]
3789    pub proxies: ::core::option::Option<i32>,
3790}
3791#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3792pub struct CSvcMsgServerSteamId {
3793    #[prost(uint64, optional, tag = "1")]
3794    pub steam_id: ::core::option::Option<u64>,
3795}
3796#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3797pub struct CSvcMsgCmdKeyValues {
3798    #[prost(bytes = "vec", optional, tag = "1")]
3799    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3800}
3801#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3802pub struct CSvcMsgRconServerDetails {
3803    #[prost(bytes = "vec", optional, tag = "1")]
3804    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3805    #[prost(string, optional, tag = "2")]
3806    pub details: ::core::option::Option<::prost::alloc::string::String>,
3807}
3808#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3809pub struct CMsgIpcAddress {
3810    #[prost(fixed64, optional, tag = "1")]
3811    pub computer_guid: ::core::option::Option<u64>,
3812    #[prost(uint32, optional, tag = "2")]
3813    pub process_id: ::core::option::Option<u32>,
3814}
3815#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3816pub struct CMsgServerPeer {
3817    #[prost(int32, optional, tag = "1", default = "-1")]
3818    pub player_slot: ::core::option::Option<i32>,
3819    #[prost(fixed64, optional, tag = "2")]
3820    pub steamid: ::core::option::Option<u64>,
3821    #[prost(message, optional, tag = "3")]
3822    pub ipc: ::core::option::Option<CMsgIpcAddress>,
3823    #[prost(bool, optional, tag = "4")]
3824    pub they_hear_you: ::core::option::Option<bool>,
3825    #[prost(bool, optional, tag = "5")]
3826    pub you_hear_them: ::core::option::Option<bool>,
3827    #[prost(bool, optional, tag = "6")]
3828    pub is_listenserver_host: ::core::option::Option<bool>,
3829}
3830#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3831pub struct CSvcMsgPeerList {
3832    #[prost(message, repeated, tag = "1")]
3833    pub peer: ::prost::alloc::vec::Vec<CMsgServerPeer>,
3834}
3835#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3836pub struct CSvcMsgClearAllStringTables {
3837    #[prost(string, optional, tag = "1")]
3838    pub mapname: ::core::option::Option<::prost::alloc::string::String>,
3839    #[prost(bool, optional, tag = "3")]
3840    pub create_tables_skipped: ::core::option::Option<bool>,
3841}
3842#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3843pub struct ProtoFlattenedSerializerFieldT {
3844    #[prost(int32, optional, tag = "1")]
3845    pub var_type_sym: ::core::option::Option<i32>,
3846    #[prost(int32, optional, tag = "2")]
3847    pub var_name_sym: ::core::option::Option<i32>,
3848    #[prost(int32, optional, tag = "3")]
3849    pub bit_count: ::core::option::Option<i32>,
3850    #[prost(float, optional, tag = "4")]
3851    pub low_value: ::core::option::Option<f32>,
3852    #[prost(float, optional, tag = "5")]
3853    pub high_value: ::core::option::Option<f32>,
3854    #[prost(int32, optional, tag = "6")]
3855    pub encode_flags: ::core::option::Option<i32>,
3856    #[prost(int32, optional, tag = "7")]
3857    pub field_serializer_name_sym: ::core::option::Option<i32>,
3858    #[prost(int32, optional, tag = "8")]
3859    pub field_serializer_version: ::core::option::Option<i32>,
3860    #[prost(int32, optional, tag = "9")]
3861    pub send_node_sym: ::core::option::Option<i32>,
3862    #[prost(int32, optional, tag = "10")]
3863    pub var_encoder_sym: ::core::option::Option<i32>,
3864    #[prost(message, repeated, tag = "11")]
3865    pub polymorphic_types: ::prost::alloc::vec::Vec<proto_flattened_serializer_field_t::PolymorphicFieldT>,
3866    #[prost(int32, optional, tag = "12")]
3867    pub var_serializer_sym: ::core::option::Option<i32>,
3868}
3869pub mod proto_flattened_serializer_field_t {
3870    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3871    pub struct PolymorphicFieldT {
3872        #[prost(int32, optional, tag = "1")]
3873        pub polymorphic_field_serializer_name_sym: ::core::option::Option<i32>,
3874        #[prost(int32, optional, tag = "2")]
3875        pub polymorphic_field_serializer_version: ::core::option::Option<i32>,
3876    }
3877}
3878#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3879pub struct ProtoFlattenedSerializerT {
3880    #[prost(int32, optional, tag = "1")]
3881    pub serializer_name_sym: ::core::option::Option<i32>,
3882    #[prost(int32, optional, tag = "2")]
3883    pub serializer_version: ::core::option::Option<i32>,
3884    #[prost(int32, repeated, packed = "false", tag = "3")]
3885    pub fields_index: ::prost::alloc::vec::Vec<i32>,
3886}
3887#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3888pub struct CSvcMsgFlattenedSerializer {
3889    #[prost(message, repeated, tag = "1")]
3890    pub serializers: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerT>,
3891    #[prost(string, repeated, tag = "2")]
3892    pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3893    #[prost(message, repeated, tag = "3")]
3894    pub fields: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerFieldT>,
3895}
3896#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3897pub struct CSvcMsgStopSound {
3898    #[prost(fixed32, optional, tag = "1")]
3899    pub guid: ::core::option::Option<u32>,
3900}
3901#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3902pub struct CBidirMsgRebroadcastGameEvent {
3903    #[prost(bool, optional, tag = "1")]
3904    pub posttoserver: ::core::option::Option<bool>,
3905    #[prost(int32, optional, tag = "2")]
3906    pub buftype: ::core::option::Option<i32>,
3907    #[prost(uint32, optional, tag = "3")]
3908    pub clientbitcount: ::core::option::Option<u32>,
3909    #[prost(uint64, optional, tag = "4")]
3910    pub receivingclients: ::core::option::Option<u64>,
3911}
3912#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3913pub struct CBidirMsgRebroadcastSource {
3914    #[prost(int32, optional, tag = "1")]
3915    pub eventsource: ::core::option::Option<i32>,
3916}
3917#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3918pub struct CBidirMsgPredictionEvent {
3919    #[prost(uint32, required, tag = "1")]
3920    pub event_id: u32,
3921    #[prost(bytes = "vec", required, tag = "2")]
3922    pub event_data: ::prost::alloc::vec::Vec<u8>,
3923    #[prost(uint32, optional, tag = "3")]
3924    pub sync_type: ::core::option::Option<u32>,
3925    #[prost(uint32, optional, tag = "4")]
3926    pub sync_val_uint32: ::core::option::Option<u32>,
3927}
3928pub mod c_bidir_msg_prediction_event {
3929    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3930    #[repr(i32)]
3931    pub enum ESyncType {
3932        StTick = 0,
3933        StUserCmdNum = 1,
3934    }
3935}
3936#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3937pub struct CMsgServerNetworkStats {
3938    #[prost(bool, optional, tag = "1")]
3939    pub dedicated: ::core::option::Option<bool>,
3940    #[prost(int32, optional, tag = "2")]
3941    pub cpu_usage: ::core::option::Option<i32>,
3942    #[prost(int32, optional, tag = "3")]
3943    pub memory_used_mb: ::core::option::Option<i32>,
3944    #[prost(int32, optional, tag = "4")]
3945    pub memory_free_mb: ::core::option::Option<i32>,
3946    #[prost(int32, optional, tag = "5")]
3947    pub uptime: ::core::option::Option<i32>,
3948    #[prost(int32, optional, tag = "6")]
3949    pub spawn_count: ::core::option::Option<i32>,
3950    #[prost(int32, optional, tag = "8")]
3951    pub num_clients: ::core::option::Option<i32>,
3952    #[prost(int32, optional, tag = "9")]
3953    pub num_bots: ::core::option::Option<i32>,
3954    #[prost(int32, optional, tag = "10")]
3955    pub num_spectators: ::core::option::Option<i32>,
3956    #[prost(int32, optional, tag = "11")]
3957    pub num_tv_relays: ::core::option::Option<i32>,
3958    #[prost(float, optional, tag = "12")]
3959    pub fps: ::core::option::Option<f32>,
3960    #[prost(message, repeated, tag = "17")]
3961    pub ports: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Port>,
3962    #[prost(float, optional, tag = "18")]
3963    pub avg_ping_ms: ::core::option::Option<f32>,
3964    #[prost(float, optional, tag = "19")]
3965    pub avg_engine_latency_out: ::core::option::Option<f32>,
3966    #[prost(float, optional, tag = "20")]
3967    pub avg_packets_out: ::core::option::Option<f32>,
3968    #[prost(float, optional, tag = "21")]
3969    pub avg_packets_in: ::core::option::Option<f32>,
3970    #[prost(float, optional, tag = "22")]
3971    pub avg_loss_out: ::core::option::Option<f32>,
3972    #[prost(float, optional, tag = "23")]
3973    pub avg_loss_in: ::core::option::Option<f32>,
3974    #[prost(float, optional, tag = "24")]
3975    pub avg_data_out: ::core::option::Option<f32>,
3976    #[prost(float, optional, tag = "25")]
3977    pub avg_data_in: ::core::option::Option<f32>,
3978    #[prost(uint64, optional, tag = "26")]
3979    pub total_data_in: ::core::option::Option<u64>,
3980    #[prost(uint64, optional, tag = "27")]
3981    pub total_packets_in: ::core::option::Option<u64>,
3982    #[prost(uint64, optional, tag = "28")]
3983    pub total_data_out: ::core::option::Option<u64>,
3984    #[prost(uint64, optional, tag = "29")]
3985    pub total_packets_out: ::core::option::Option<u64>,
3986    #[prost(message, repeated, tag = "30")]
3987    pub players: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Player>,
3988}
3989pub mod c_msg_server_network_stats {
3990    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3991    pub struct Port {
3992        #[prost(int32, optional, tag = "1")]
3993        pub port: ::core::option::Option<i32>,
3994        #[prost(string, optional, tag = "2")]
3995        pub name: ::core::option::Option<::prost::alloc::string::String>,
3996    }
3997    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3998    pub struct Player {
3999        #[prost(uint64, optional, tag = "1")]
4000        pub steamid: ::core::option::Option<u64>,
4001        #[prost(string, optional, tag = "2")]
4002        pub remote_addr: ::core::option::Option<::prost::alloc::string::String>,
4003        #[prost(int32, optional, tag = "4")]
4004        pub ping_avg_ms: ::core::option::Option<i32>,
4005        #[prost(float, optional, tag = "5")]
4006        pub packet_loss_pct: ::core::option::Option<f32>,
4007        #[prost(bool, optional, tag = "6")]
4008        pub is_bot: ::core::option::Option<bool>,
4009        #[prost(float, optional, tag = "7")]
4010        pub loss_in: ::core::option::Option<f32>,
4011        #[prost(float, optional, tag = "8")]
4012        pub loss_out: ::core::option::Option<f32>,
4013        #[prost(int32, optional, tag = "9")]
4014        pub engine_latency_ms: ::core::option::Option<i32>,
4015    }
4016}
4017#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4018pub struct CSvcMsgHltvReplay {
4019    #[prost(int32, optional, tag = "1")]
4020    pub delay: ::core::option::Option<i32>,
4021    #[prost(int32, optional, tag = "2", default = "-1")]
4022    pub primary_target: ::core::option::Option<i32>,
4023    #[prost(int32, optional, tag = "3")]
4024    pub replay_stop_at: ::core::option::Option<i32>,
4025    #[prost(int32, optional, tag = "4")]
4026    pub replay_start_at: ::core::option::Option<i32>,
4027    #[prost(int32, optional, tag = "5")]
4028    pub replay_slowdown_begin: ::core::option::Option<i32>,
4029    #[prost(int32, optional, tag = "6")]
4030    pub replay_slowdown_end: ::core::option::Option<i32>,
4031    #[prost(float, optional, tag = "7")]
4032    pub replay_slowdown_rate: ::core::option::Option<f32>,
4033    #[prost(int32, optional, tag = "8")]
4034    pub reason: ::core::option::Option<i32>,
4035}
4036#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4037pub struct CclcMsgHltvReplay {
4038    #[prost(int32, optional, tag = "1")]
4039    pub request: ::core::option::Option<i32>,
4040    #[prost(float, optional, tag = "2")]
4041    pub slowdown_length: ::core::option::Option<f32>,
4042    #[prost(float, optional, tag = "3")]
4043    pub slowdown_rate: ::core::option::Option<f32>,
4044    #[prost(int32, optional, tag = "4", default = "-1")]
4045    pub primary_target: ::core::option::Option<i32>,
4046    #[prost(float, optional, tag = "5")]
4047    pub event_time: ::core::option::Option<f32>,
4048}
4049#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4050pub struct CSvcMsgBroadcastCommand {
4051    #[prost(string, optional, tag = "1")]
4052    pub cmd: ::core::option::Option<::prost::alloc::string::String>,
4053}
4054#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4055pub struct CclcMsgHltvFixupOperatorTick {
4056    #[prost(int32, optional, tag = "1")]
4057    pub tick: ::core::option::Option<i32>,
4058    #[prost(bytes = "vec", optional, tag = "2")]
4059    pub props_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4060    #[prost(message, optional, tag = "3")]
4061    pub origin: ::core::option::Option<CMsgVector>,
4062    #[prost(message, optional, tag = "4")]
4063    pub eye_angles: ::core::option::Option<CMsgQAngle>,
4064    #[prost(int32, optional, tag = "5")]
4065    pub observer_mode: ::core::option::Option<i32>,
4066    #[prost(bool, optional, tag = "6")]
4067    pub cameraman_scoreboard: ::core::option::Option<bool>,
4068    #[prost(int32, optional, tag = "7")]
4069    pub observer_target: ::core::option::Option<i32>,
4070    #[prost(message, optional, tag = "8")]
4071    pub view_offset: ::core::option::Option<CMsgVector>,
4072}
4073#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4074pub struct CSvcMsgHltvFixupOperatorStatus {
4075    #[prost(uint32, optional, tag = "1")]
4076    pub mode: ::core::option::Option<u32>,
4077    #[prost(string, optional, tag = "2")]
4078    pub override_operator_name: ::core::option::Option<::prost::alloc::string::String>,
4079}
4080#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4081pub struct CMsgServerUserCmd {
4082    #[prost(bytes = "vec", optional, tag = "1")]
4083    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4084    #[prost(int32, optional, tag = "2")]
4085    pub cmd_number: ::core::option::Option<i32>,
4086    #[prost(int32, optional, tag = "3", default = "-1")]
4087    pub player_slot: ::core::option::Option<i32>,
4088    #[prost(int32, optional, tag = "4")]
4089    pub server_tick_executed: ::core::option::Option<i32>,
4090    #[prost(int32, optional, tag = "5")]
4091    pub client_tick: ::core::option::Option<i32>,
4092}
4093#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4094pub struct CSvcMsgUserCommands {
4095    #[prost(message, repeated, tag = "1")]
4096    pub commands: ::prost::alloc::vec::Vec<CMsgServerUserCmd>,
4097}
4098#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4099pub struct CSvcMsgNextMsgPredicted {
4100    #[prost(int32, optional, tag = "1", default = "-1")]
4101    pub predicted_by_player_slot: ::core::option::Option<i32>,
4102    #[prost(uint32, optional, tag = "2")]
4103    pub message_type_id: ::core::option::Option<u32>,
4104}
4105#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4106#[repr(i32)]
4107pub enum ClcMessages {
4108    ClcClientInfo = 20,
4109    ClcMove = 21,
4110    ClcVoiceData = 22,
4111    ClcBaselineAck = 23,
4112    ClcRespondCvarValue = 25,
4113    ClcLoadingProgress = 27,
4114    ClcSplitPlayerConnect = 28,
4115    ClcSplitPlayerDisconnect = 30,
4116    ClcServerStatus = 31,
4117    ClcRequestPause = 33,
4118    ClcCmdKeyValues = 34,
4119    ClcRconServerDetails = 35,
4120    ClcHltvReplay = 36,
4121    ClcDiagnostic = 37,
4122}
4123#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4124#[repr(i32)]
4125pub enum SvcMessages {
4126    SvcServerInfo = 40,
4127    SvcFlattenedSerializer = 41,
4128    SvcClassInfo = 42,
4129    SvcSetPause = 43,
4130    SvcCreateStringTable = 44,
4131    SvcUpdateStringTable = 45,
4132    SvcVoiceInit = 46,
4133    SvcVoiceData = 47,
4134    SvcPrint = 48,
4135    SvcSounds = 49,
4136    SvcSetView = 50,
4137    SvcClearAllStringTables = 51,
4138    SvcCmdKeyValues = 52,
4139    SvcBspDecal = 53,
4140    SvcSplitScreen = 54,
4141    SvcPacketEntities = 55,
4142    SvcPrefetch = 56,
4143    SvcMenu = 57,
4144    SvcGetCvarValue = 58,
4145    SvcStopSound = 59,
4146    SvcPeerList = 60,
4147    SvcPacketReliable = 61,
4148    SvcHltvStatus = 62,
4149    SvcServerSteamId = 63,
4150    SvcFullFrameSplit = 70,
4151    SvcRconServerDetails = 71,
4152    SvcUserMessage = 72,
4153    SvcBroadcastCommand = 74,
4154    SvcHltvFixupOperatorStatus = 75,
4155    SvcUserCmds = 76,
4156    SvcNextMsgPredicted = 77,
4157}
4158#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4159#[repr(i32)]
4160pub enum VoiceDataFormatT {
4161    VoicedataFormatSteam = 0,
4162    VoicedataFormatEngine = 1,
4163    VoicedataFormatOpus = 2,
4164}
4165#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4166#[repr(i32)]
4167pub enum RequestPauseT {
4168    RpPause = 0,
4169    RpUnpause = 1,
4170    RpTogglepause = 2,
4171}
4172#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4173#[repr(i32)]
4174pub enum PrefetchType {
4175    PftSound = 0,
4176}
4177#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4178#[repr(i32)]
4179pub enum ESplitScreenMessageType {
4180    MsgSplitscreenAdduser = 0,
4181    MsgSplitscreenRemoveuser = 1,
4182}
4183#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4184#[repr(i32)]
4185pub enum EQueryCvarValueStatus {
4186    ValueIntact = 0,
4187    CvarNotFound = 1,
4188    NotACvar = 2,
4189    CvarProtected = 3,
4190}
4191#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4192#[repr(i32)]
4193pub enum DialogType {
4194    DialogMsg = 0,
4195    DialogMenu = 1,
4196    DialogText = 2,
4197    DialogEntry = 3,
4198    DialogAskconnect = 4,
4199}
4200#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4201#[repr(i32)]
4202pub enum SvcMessagesLowFrequency {
4203    SvcDummy = 600,
4204}
4205#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4206#[repr(i32)]
4207pub enum BidirectionalMessages {
4208    BiRebroadcastGameEvent = 16,
4209    BiRebroadcastSource = 17,
4210    BiGameEvent = 18,
4211    BiPredictionEvent = 19,
4212}
4213#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4214#[repr(i32)]
4215pub enum BidirectionalMessagesLowFrequency {
4216    BiRelayInfo = 700,
4217    BiRelayPacket = 701,
4218}
4219#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4220#[repr(i32)]
4221pub enum ReplayEventTypeT {
4222    ReplayEventCancel = 0,
4223    ReplayEventDeath = 1,
4224    ReplayEventGeneric = 2,
4225    ReplayEventStuckNeedFullUpdate = 3,
4226    ReplayEventVictory = 4,
4227}
4228#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4229pub struct CUserMessageAchievementEvent {
4230    #[prost(uint32, optional, tag = "1")]
4231    pub achievement: ::core::option::Option<u32>,
4232}
4233#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4234pub struct CUserMessageCloseCaption {
4235    #[prost(fixed32, optional, tag = "1")]
4236    pub hash: ::core::option::Option<u32>,
4237    #[prost(float, optional, tag = "2")]
4238    pub duration: ::core::option::Option<f32>,
4239    #[prost(bool, optional, tag = "3")]
4240    pub from_player: ::core::option::Option<bool>,
4241    #[prost(int32, optional, tag = "4", default = "-1")]
4242    pub ent_index: ::core::option::Option<i32>,
4243}
4244#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4245pub struct CUserMessageCloseCaptionDirect {
4246    #[prost(fixed32, optional, tag = "1")]
4247    pub hash: ::core::option::Option<u32>,
4248    #[prost(float, optional, tag = "2")]
4249    pub duration: ::core::option::Option<f32>,
4250    #[prost(bool, optional, tag = "3")]
4251    pub from_player: ::core::option::Option<bool>,
4252    #[prost(int32, optional, tag = "4", default = "-1")]
4253    pub ent_index: ::core::option::Option<i32>,
4254}
4255#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4256pub struct CUserMessageCloseCaptionPlaceholder {
4257    #[prost(string, optional, tag = "1")]
4258    pub string: ::core::option::Option<::prost::alloc::string::String>,
4259    #[prost(float, optional, tag = "2")]
4260    pub duration: ::core::option::Option<f32>,
4261    #[prost(bool, optional, tag = "3")]
4262    pub from_player: ::core::option::Option<bool>,
4263    #[prost(int32, optional, tag = "4", default = "-1")]
4264    pub ent_index: ::core::option::Option<i32>,
4265}
4266#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4267pub struct CUserMessageCurrentTimescale {
4268    #[prost(float, optional, tag = "1")]
4269    pub current: ::core::option::Option<f32>,
4270}
4271#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4272pub struct CUserMessageDesiredTimescale {
4273    #[prost(float, optional, tag = "1")]
4274    pub desired: ::core::option::Option<f32>,
4275    #[prost(float, optional, tag = "2")]
4276    pub acceleration: ::core::option::Option<f32>,
4277    #[prost(float, optional, tag = "3")]
4278    pub minblendrate: ::core::option::Option<f32>,
4279    #[prost(float, optional, tag = "4")]
4280    pub blenddeltamultiplier: ::core::option::Option<f32>,
4281}
4282#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4283pub struct CUserMessageFade {
4284    #[prost(uint32, optional, tag = "1")]
4285    pub duration: ::core::option::Option<u32>,
4286    #[prost(uint32, optional, tag = "2")]
4287    pub hold_time: ::core::option::Option<u32>,
4288    #[prost(uint32, optional, tag = "3")]
4289    pub flags: ::core::option::Option<u32>,
4290    #[prost(fixed32, optional, tag = "4")]
4291    pub color: ::core::option::Option<u32>,
4292}
4293#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4294pub struct CUserMessageShake {
4295    #[prost(uint32, optional, tag = "1")]
4296    pub command: ::core::option::Option<u32>,
4297    #[prost(float, optional, tag = "2")]
4298    pub amplitude: ::core::option::Option<f32>,
4299    #[prost(float, optional, tag = "3")]
4300    pub frequency: ::core::option::Option<f32>,
4301    #[prost(float, optional, tag = "4")]
4302    pub duration: ::core::option::Option<f32>,
4303}
4304#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4305pub struct CUserMessageShakeDir {
4306    #[prost(message, optional, tag = "1")]
4307    pub shake: ::core::option::Option<CUserMessageShake>,
4308    #[prost(message, optional, tag = "2")]
4309    pub direction: ::core::option::Option<CMsgVector>,
4310}
4311#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4312pub struct CUserMessageWaterShake {
4313    #[prost(uint32, optional, tag = "1")]
4314    pub command: ::core::option::Option<u32>,
4315    #[prost(float, optional, tag = "2")]
4316    pub amplitude: ::core::option::Option<f32>,
4317    #[prost(float, optional, tag = "3")]
4318    pub frequency: ::core::option::Option<f32>,
4319    #[prost(float, optional, tag = "4")]
4320    pub duration: ::core::option::Option<f32>,
4321}
4322#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4323pub struct CUserMessageScreenTilt {
4324    #[prost(uint32, optional, tag = "1")]
4325    pub command: ::core::option::Option<u32>,
4326    #[prost(bool, optional, tag = "2")]
4327    pub ease_in_out: ::core::option::Option<bool>,
4328    #[prost(message, optional, tag = "3")]
4329    pub angle: ::core::option::Option<CMsgVector>,
4330    #[prost(float, optional, tag = "4")]
4331    pub duration: ::core::option::Option<f32>,
4332    #[prost(float, optional, tag = "5")]
4333    pub time: ::core::option::Option<f32>,
4334}
4335#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4336pub struct CUserMessageSayText {
4337    #[prost(int32, optional, tag = "1", default = "-1")]
4338    pub playerindex: ::core::option::Option<i32>,
4339    #[prost(string, optional, tag = "2")]
4340    pub text: ::core::option::Option<::prost::alloc::string::String>,
4341    #[prost(bool, optional, tag = "3")]
4342    pub chat: ::core::option::Option<bool>,
4343}
4344#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4345pub struct CUserMessageSayText2 {
4346    #[prost(int32, optional, tag = "1", default = "-1")]
4347    pub entityindex: ::core::option::Option<i32>,
4348    #[prost(bool, optional, tag = "2")]
4349    pub chat: ::core::option::Option<bool>,
4350    #[prost(string, optional, tag = "3")]
4351    pub messagename: ::core::option::Option<::prost::alloc::string::String>,
4352    #[prost(string, optional, tag = "4")]
4353    pub param1: ::core::option::Option<::prost::alloc::string::String>,
4354    #[prost(string, optional, tag = "5")]
4355    pub param2: ::core::option::Option<::prost::alloc::string::String>,
4356    #[prost(string, optional, tag = "6")]
4357    pub param3: ::core::option::Option<::prost::alloc::string::String>,
4358    #[prost(string, optional, tag = "7")]
4359    pub param4: ::core::option::Option<::prost::alloc::string::String>,
4360}
4361#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4362pub struct CUserMessageHudMsg {
4363    #[prost(uint32, optional, tag = "1")]
4364    pub channel: ::core::option::Option<u32>,
4365    #[prost(float, optional, tag = "2")]
4366    pub x: ::core::option::Option<f32>,
4367    #[prost(float, optional, tag = "3")]
4368    pub y: ::core::option::Option<f32>,
4369    #[prost(fixed32, optional, tag = "4")]
4370    pub color1: ::core::option::Option<u32>,
4371    #[prost(fixed32, optional, tag = "5")]
4372    pub color2: ::core::option::Option<u32>,
4373    #[prost(uint32, optional, tag = "6")]
4374    pub effect: ::core::option::Option<u32>,
4375    #[prost(string, optional, tag = "11")]
4376    pub message: ::core::option::Option<::prost::alloc::string::String>,
4377}
4378#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4379pub struct CUserMessageHudText {
4380    #[prost(string, optional, tag = "1")]
4381    pub message: ::core::option::Option<::prost::alloc::string::String>,
4382}
4383#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4384pub struct CUserMessageTextMsg {
4385    #[prost(uint32, optional, tag = "1")]
4386    pub dest: ::core::option::Option<u32>,
4387    #[prost(string, repeated, tag = "2")]
4388    pub param: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4389}
4390#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4391pub struct CUserMessageGameTitle {}
4392#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4393pub struct CUserMessageResetHud {}
4394#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4395pub struct CUserMessageSendAudio {
4396    #[prost(string, optional, tag = "1")]
4397    pub soundname: ::core::option::Option<::prost::alloc::string::String>,
4398    #[prost(bool, optional, tag = "2")]
4399    pub stop: ::core::option::Option<bool>,
4400}
4401#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4402pub struct CUserMessageAudioParameter {
4403    #[prost(uint32, optional, tag = "1")]
4404    pub parameter_type: ::core::option::Option<u32>,
4405    #[prost(uint32, optional, tag = "2")]
4406    pub name_hash_code: ::core::option::Option<u32>,
4407    #[prost(float, optional, tag = "3")]
4408    pub value: ::core::option::Option<f32>,
4409    #[prost(uint32, optional, tag = "4")]
4410    pub int_value: ::core::option::Option<u32>,
4411}
4412#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4413pub struct CUserMessageVoiceMask {
4414    #[prost(uint32, repeated, packed = "false", tag = "1")]
4415    pub gamerules_masks: ::prost::alloc::vec::Vec<u32>,
4416    #[prost(uint32, repeated, packed = "false", tag = "2")]
4417    pub ban_masks: ::prost::alloc::vec::Vec<u32>,
4418    #[prost(bool, optional, tag = "3")]
4419    pub mod_enable: ::core::option::Option<bool>,
4420}
4421#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4422pub struct CUserMessageRequestState {}
4423#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4424pub struct CUserMessageRumble {
4425    #[prost(int32, optional, tag = "1")]
4426    pub index: ::core::option::Option<i32>,
4427    #[prost(int32, optional, tag = "2")]
4428    pub data: ::core::option::Option<i32>,
4429    #[prost(int32, optional, tag = "3")]
4430    pub flags: ::core::option::Option<i32>,
4431}
4432#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4433pub struct CUserMessageSayTextChannel {
4434    #[prost(int32, optional, tag = "1")]
4435    pub player: ::core::option::Option<i32>,
4436    #[prost(int32, optional, tag = "2")]
4437    pub channel: ::core::option::Option<i32>,
4438    #[prost(string, optional, tag = "3")]
4439    pub text: ::core::option::Option<::prost::alloc::string::String>,
4440}
4441#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4442pub struct CUserMessageColoredText {
4443    #[prost(uint32, optional, tag = "1")]
4444    pub color: ::core::option::Option<u32>,
4445    #[prost(string, optional, tag = "2")]
4446    pub text: ::core::option::Option<::prost::alloc::string::String>,
4447    #[prost(bool, optional, tag = "3")]
4448    pub reset: ::core::option::Option<bool>,
4449    #[prost(int32, optional, tag = "4", default = "-1")]
4450    pub context_player_slot: ::core::option::Option<i32>,
4451    #[prost(int32, optional, tag = "5")]
4452    pub context_value: ::core::option::Option<i32>,
4453    #[prost(int32, optional, tag = "6")]
4454    pub context_team_id: ::core::option::Option<i32>,
4455}
4456#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4457pub struct CUserMessageItemPickup {
4458    #[prost(string, optional, tag = "1")]
4459    pub itemname: ::core::option::Option<::prost::alloc::string::String>,
4460}
4461#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4462pub struct CUserMessageAmmoDenied {
4463    #[prost(uint32, optional, tag = "1")]
4464    pub ammo_id: ::core::option::Option<u32>,
4465}
4466#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4467pub struct CUserMessageShowMenu {
4468    #[prost(uint32, optional, tag = "1")]
4469    pub validslots: ::core::option::Option<u32>,
4470    #[prost(uint32, optional, tag = "2")]
4471    pub displaytime: ::core::option::Option<u32>,
4472    #[prost(bool, optional, tag = "3")]
4473    pub needmore: ::core::option::Option<bool>,
4474    #[prost(string, optional, tag = "4")]
4475    pub menustring: ::core::option::Option<::prost::alloc::string::String>,
4476}
4477#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4478pub struct CUserMessageCreditsMsg {
4479    #[prost(enumeration = "ERollType", optional, tag = "1", default = "RollNone")]
4480    pub rolltype: ::core::option::Option<i32>,
4481    #[prost(float, optional, tag = "2")]
4482    pub logo_length: ::core::option::Option<f32>,
4483}
4484#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4485pub struct CEntityMessagePlayJingle {
4486    #[prost(message, optional, tag = "1")]
4487    pub entity_msg: ::core::option::Option<CEntityMsg>,
4488}
4489#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4490pub struct CEntityMessageScreenOverlay {
4491    #[prost(bool, optional, tag = "1")]
4492    pub start_effect: ::core::option::Option<bool>,
4493    #[prost(message, optional, tag = "2")]
4494    pub entity_msg: ::core::option::Option<CEntityMsg>,
4495}
4496#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4497pub struct CEntityMessageRemoveAllDecals {
4498    #[prost(bool, optional, tag = "1")]
4499    pub remove_decals: ::core::option::Option<bool>,
4500    #[prost(message, optional, tag = "2")]
4501    pub entity_msg: ::core::option::Option<CEntityMsg>,
4502}
4503#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4504pub struct CEntityMessagePropagateForce {
4505    #[prost(message, optional, tag = "1")]
4506    pub impulse: ::core::option::Option<CMsgVector>,
4507    #[prost(message, optional, tag = "2")]
4508    pub entity_msg: ::core::option::Option<CEntityMsg>,
4509}
4510#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4511pub struct CEntityMessageDoSpark {
4512    #[prost(message, optional, tag = "1")]
4513    pub origin: ::core::option::Option<CMsgVector>,
4514    #[prost(int32, optional, tag = "2", default = "-1")]
4515    pub entityindex: ::core::option::Option<i32>,
4516    #[prost(float, optional, tag = "3")]
4517    pub radius: ::core::option::Option<f32>,
4518    #[prost(fixed32, optional, tag = "4")]
4519    pub color: ::core::option::Option<u32>,
4520    #[prost(uint32, optional, tag = "5")]
4521    pub beams: ::core::option::Option<u32>,
4522    #[prost(float, optional, tag = "6")]
4523    pub thick: ::core::option::Option<f32>,
4524    #[prost(float, optional, tag = "7")]
4525    pub duration: ::core::option::Option<f32>,
4526    #[prost(message, optional, tag = "8")]
4527    pub entity_msg: ::core::option::Option<CEntityMsg>,
4528}
4529#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4530pub struct CEntityMessageFixAngle {
4531    #[prost(bool, optional, tag = "1")]
4532    pub relative: ::core::option::Option<bool>,
4533    #[prost(message, optional, tag = "2")]
4534    pub angle: ::core::option::Option<CMsgQAngle>,
4535    #[prost(message, optional, tag = "3")]
4536    pub entity_msg: ::core::option::Option<CEntityMsg>,
4537}
4538#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4539pub struct CUserMessageCameraTransition {
4540    #[prost(uint32, optional, tag = "1")]
4541    pub camera_type: ::core::option::Option<u32>,
4542    #[prost(float, optional, tag = "2")]
4543    pub duration: ::core::option::Option<f32>,
4544    #[prost(message, optional, tag = "3")]
4545    pub params_data_driven: ::core::option::Option<c_user_message_camera_transition::TransitionDataDriven>,
4546}
4547pub mod c_user_message_camera_transition {
4548    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4549    pub struct TransitionDataDriven {
4550        #[prost(string, optional, tag = "1")]
4551        pub filename: ::core::option::Option<::prost::alloc::string::String>,
4552        #[prost(int32, optional, tag = "2", default = "-1")]
4553        pub attach_ent_index: ::core::option::Option<i32>,
4554        #[prost(float, optional, tag = "3")]
4555        pub duration: ::core::option::Option<f32>,
4556    }
4557}
4558#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4559pub struct CUserMsgParticleManager {
4560    #[prost(enumeration = "ParticleMessage", required, tag = "1", default = "GameParticleManagerEventCreate")]
4561    pub r#type: i32,
4562    #[prost(uint32, required, tag = "2")]
4563    pub index: u32,
4564    #[prost(message, optional, tag = "3")]
4565    pub release_particle_index: ::core::option::Option<c_user_msg_particle_manager::ReleaseParticleIndex>,
4566    #[prost(message, optional, tag = "4")]
4567    pub create_particle: ::core::option::Option<c_user_msg_particle_manager::CreateParticle>,
4568    #[prost(message, optional, tag = "5")]
4569    pub destroy_particle: ::core::option::Option<c_user_msg_particle_manager::DestroyParticle>,
4570    #[prost(message, optional, tag = "6")]
4571    pub destroy_particle_involving: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleInvolving>,
4572    #[prost(message, optional, tag = "7")]
4573    pub update_particle: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleObsolete>,
4574    #[prost(message, optional, tag = "8")]
4575    pub update_particle_fwd: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFwdObsolete>,
4576    #[prost(message, optional, tag = "9")]
4577    pub update_particle_orient: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOrientObsolete>,
4578    #[prost(message, optional, tag = "10")]
4579    pub update_particle_fallback: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFallback>,
4580    #[prost(message, optional, tag = "11")]
4581    pub update_particle_offset: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOffset>,
4582    #[prost(message, optional, tag = "12")]
4583    pub update_particle_ent: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleEnt>,
4584    #[prost(message, optional, tag = "14")]
4585    pub update_particle_should_draw: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleShouldDraw>,
4586    #[prost(message, optional, tag = "15")]
4587    pub update_particle_set_frozen: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleSetFrozen>,
4588    #[prost(message, optional, tag = "16")]
4589    pub change_control_point_attachment: ::core::option::Option<c_user_msg_particle_manager::ChangeControlPointAttachment>,
4590    #[prost(message, optional, tag = "17")]
4591    pub update_entity_position: ::core::option::Option<c_user_msg_particle_manager::UpdateEntityPosition>,
4592    #[prost(message, optional, tag = "18")]
4593    pub set_particle_fow_properties: ::core::option::Option<c_user_msg_particle_manager::SetParticleFoWProperties>,
4594    #[prost(message, optional, tag = "19")]
4595    pub set_particle_text: ::core::option::Option<c_user_msg_particle_manager::SetParticleText>,
4596    #[prost(message, optional, tag = "20")]
4597    pub set_particle_should_check_fow: ::core::option::Option<c_user_msg_particle_manager::SetParticleShouldCheckFoW>,
4598    #[prost(message, optional, tag = "21")]
4599    pub set_control_point_model: ::core::option::Option<c_user_msg_particle_manager::SetControlPointModel>,
4600    #[prost(message, optional, tag = "22")]
4601    pub set_control_point_snapshot: ::core::option::Option<c_user_msg_particle_manager::SetControlPointSnapshot>,
4602    #[prost(message, optional, tag = "23")]
4603    pub set_texture_attribute: ::core::option::Option<c_user_msg_particle_manager::SetTextureAttribute>,
4604    #[prost(message, optional, tag = "24")]
4605    pub set_scene_object_generic_flag: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectGenericFlag>,
4606    #[prost(message, optional, tag = "25")]
4607    pub set_scene_object_tint_and_desat: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectTintAndDesat>,
4608    #[prost(message, optional, tag = "26")]
4609    pub destroy_particle_named: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleNamed>,
4610    #[prost(message, optional, tag = "27")]
4611    pub particle_skip_to_time: ::core::option::Option<c_user_msg_particle_manager::ParticleSkipToTime>,
4612    #[prost(message, optional, tag = "28")]
4613    pub particle_can_freeze: ::core::option::Option<c_user_msg_particle_manager::ParticleCanFreeze>,
4614    #[prost(message, optional, tag = "29")]
4615    pub set_named_value_context: ::core::option::Option<c_user_msg_particle_manager::SetParticleNamedValueContext>,
4616    #[prost(message, optional, tag = "30")]
4617    pub update_particle_transform: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleTransform>,
4618    #[prost(message, optional, tag = "31")]
4619    pub particle_freeze_transition_override: ::core::option::Option<c_user_msg_particle_manager::ParticleFreezeTransitionOverride>,
4620    #[prost(message, optional, tag = "32")]
4621    pub freeze_particle_involving: ::core::option::Option<c_user_msg_particle_manager::FreezeParticleInvolving>,
4622    #[prost(message, optional, tag = "33")]
4623    pub add_modellist_override_element: ::core::option::Option<c_user_msg_particle_manager::AddModellistOverrideElement>,
4624    #[prost(message, optional, tag = "34")]
4625    pub clear_modellist_override: ::core::option::Option<c_user_msg_particle_manager::ClearModellistOverride>,
4626    #[prost(message, optional, tag = "35")]
4627    pub create_physics_sim: ::core::option::Option<c_user_msg_particle_manager::CreatePhysicsSim>,
4628    #[prost(message, optional, tag = "36")]
4629    pub destroy_physics_sim: ::core::option::Option<c_user_msg_particle_manager::DestroyPhysicsSim>,
4630    #[prost(message, optional, tag = "37")]
4631    pub set_vdata: ::core::option::Option<c_user_msg_particle_manager::SetVData>,
4632    #[prost(message, optional, tag = "38")]
4633    pub set_material_override: ::core::option::Option<c_user_msg_particle_manager::SetMaterialOverride>,
4634    #[prost(message, optional, tag = "39")]
4635    pub add_fan: ::core::option::Option<c_user_msg_particle_manager::AddFan>,
4636    #[prost(message, optional, tag = "40")]
4637    pub update_fan: ::core::option::Option<c_user_msg_particle_manager::UpdateFan>,
4638    #[prost(message, optional, tag = "41")]
4639    pub set_particle_cluster_growth: ::core::option::Option<c_user_msg_particle_manager::SetParticleClusterGrowth>,
4640    #[prost(message, optional, tag = "42")]
4641    pub remove_fan: ::core::option::Option<c_user_msg_particle_manager::RemoveFan>,
4642}
4643pub mod c_user_msg_particle_manager {
4644    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4645    pub struct ReleaseParticleIndex {}
4646    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4647    pub struct CreateParticle {
4648        #[prost(fixed64, optional, tag = "1")]
4649        pub particle_name_index: ::core::option::Option<u64>,
4650        #[prost(int32, optional, tag = "2")]
4651        pub attach_type: ::core::option::Option<i32>,
4652        #[prost(uint32, optional, tag = "3", default = "16777215")]
4653        pub entity_handle: ::core::option::Option<u32>,
4654        #[prost(uint32, optional, tag = "4", default = "16777215")]
4655        pub entity_handle_for_modifiers: ::core::option::Option<u32>,
4656        #[prost(bool, optional, tag = "5")]
4657        pub apply_voice_ban_rules: ::core::option::Option<bool>,
4658        #[prost(int32, optional, tag = "6")]
4659        pub team_behavior: ::core::option::Option<i32>,
4660        #[prost(string, optional, tag = "7")]
4661        pub control_point_configuration: ::core::option::Option<::prost::alloc::string::String>,
4662        #[prost(bool, optional, tag = "8")]
4663        pub cluster: ::core::option::Option<bool>,
4664        #[prost(float, optional, tag = "9")]
4665        pub endcap_time: ::core::option::Option<f32>,
4666        #[prost(message, optional, tag = "10")]
4667        pub aggregation_position: ::core::option::Option<super::CMsgVector>,
4668    }
4669    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4670    pub struct DestroyParticle {
4671        #[prost(bool, optional, tag = "1")]
4672        pub destroy_immediately: ::core::option::Option<bool>,
4673    }
4674    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4675    pub struct DestroyParticleInvolving {
4676        #[prost(bool, optional, tag = "1")]
4677        pub destroy_immediately: ::core::option::Option<bool>,
4678        #[prost(uint32, optional, tag = "3", default = "16777215")]
4679        pub entity_handle: ::core::option::Option<u32>,
4680    }
4681    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4682    pub struct DestroyParticleNamed {
4683        #[prost(fixed64, optional, tag = "1")]
4684        pub particle_name_index: ::core::option::Option<u64>,
4685        #[prost(uint32, optional, tag = "2", default = "16777215")]
4686        pub entity_handle: ::core::option::Option<u32>,
4687        #[prost(bool, optional, tag = "3")]
4688        pub destroy_immediately: ::core::option::Option<bool>,
4689        #[prost(bool, optional, tag = "4")]
4690        pub play_endcap: ::core::option::Option<bool>,
4691    }
4692    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4693    pub struct UpdateParticleObsolete {
4694        #[prost(int32, optional, tag = "1")]
4695        pub control_point: ::core::option::Option<i32>,
4696        #[prost(message, optional, tag = "2")]
4697        pub position: ::core::option::Option<super::CMsgVector>,
4698    }
4699    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4700    pub struct UpdateParticleFwdObsolete {
4701        #[prost(int32, optional, tag = "1")]
4702        pub control_point: ::core::option::Option<i32>,
4703        #[prost(message, optional, tag = "2")]
4704        pub forward: ::core::option::Option<super::CMsgVector>,
4705    }
4706    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4707    pub struct UpdateParticleOrientObsolete {
4708        #[prost(int32, optional, tag = "1")]
4709        pub control_point: ::core::option::Option<i32>,
4710        #[prost(message, optional, tag = "2")]
4711        pub forward: ::core::option::Option<super::CMsgVector>,
4712        #[prost(message, optional, tag = "3")]
4713        pub deprecated_right: ::core::option::Option<super::CMsgVector>,
4714        #[prost(message, optional, tag = "4")]
4715        pub up: ::core::option::Option<super::CMsgVector>,
4716        #[prost(message, optional, tag = "5")]
4717        pub left: ::core::option::Option<super::CMsgVector>,
4718    }
4719    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4720    pub struct UpdateParticleTransform {
4721        #[prost(int32, optional, tag = "1")]
4722        pub control_point: ::core::option::Option<i32>,
4723        #[prost(message, optional, tag = "2")]
4724        pub position: ::core::option::Option<super::CMsgVector>,
4725        #[prost(message, optional, tag = "3")]
4726        pub orientation: ::core::option::Option<super::CMsgQuaternion>,
4727        #[prost(float, optional, tag = "4")]
4728        pub interpolation_interval: ::core::option::Option<f32>,
4729    }
4730    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4731    pub struct UpdateParticleFallback {
4732        #[prost(int32, optional, tag = "1")]
4733        pub control_point: ::core::option::Option<i32>,
4734        #[prost(message, optional, tag = "2")]
4735        pub position: ::core::option::Option<super::CMsgVector>,
4736    }
4737    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4738    pub struct UpdateParticleOffset {
4739        #[prost(int32, optional, tag = "1")]
4740        pub control_point: ::core::option::Option<i32>,
4741        #[prost(message, optional, tag = "2")]
4742        pub origin_offset: ::core::option::Option<super::CMsgVector>,
4743        #[prost(message, optional, tag = "3")]
4744        pub angle_offset: ::core::option::Option<super::CMsgQAngle>,
4745    }
4746    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4747    pub struct UpdateParticleEnt {
4748        #[prost(int32, optional, tag = "1")]
4749        pub control_point: ::core::option::Option<i32>,
4750        #[prost(uint32, optional, tag = "2", default = "16777215")]
4751        pub entity_handle: ::core::option::Option<u32>,
4752        #[prost(int32, optional, tag = "3")]
4753        pub attach_type: ::core::option::Option<i32>,
4754        #[prost(int32, optional, tag = "4")]
4755        pub attachment: ::core::option::Option<i32>,
4756        #[prost(message, optional, tag = "5")]
4757        pub fallback_position: ::core::option::Option<super::CMsgVector>,
4758        #[prost(bool, optional, tag = "6")]
4759        pub include_wearables: ::core::option::Option<bool>,
4760        #[prost(message, optional, tag = "7")]
4761        pub offset_position: ::core::option::Option<super::CMsgVector>,
4762        #[prost(message, optional, tag = "8")]
4763        pub offset_angles: ::core::option::Option<super::CMsgQAngle>,
4764    }
4765    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4766    pub struct UpdateParticleSetFrozen {
4767        #[prost(bool, optional, tag = "1")]
4768        pub set_frozen: ::core::option::Option<bool>,
4769        #[prost(float, optional, tag = "2")]
4770        pub transition_duration: ::core::option::Option<f32>,
4771    }
4772    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4773    pub struct UpdateParticleShouldDraw {
4774        #[prost(bool, optional, tag = "1")]
4775        pub should_draw: ::core::option::Option<bool>,
4776    }
4777    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4778    pub struct ChangeControlPointAttachment {
4779        #[prost(int32, optional, tag = "1")]
4780        pub attachment_old: ::core::option::Option<i32>,
4781        #[prost(int32, optional, tag = "2")]
4782        pub attachment_new: ::core::option::Option<i32>,
4783        #[prost(uint32, optional, tag = "3", default = "16777215")]
4784        pub entity_handle: ::core::option::Option<u32>,
4785    }
4786    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4787    pub struct UpdateEntityPosition {
4788        #[prost(uint32, optional, tag = "1", default = "16777215")]
4789        pub entity_handle: ::core::option::Option<u32>,
4790        #[prost(message, optional, tag = "2")]
4791        pub position: ::core::option::Option<super::CMsgVector>,
4792    }
4793    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4794    pub struct SetParticleFoWProperties {
4795        #[prost(int32, optional, tag = "1")]
4796        pub fow_control_point: ::core::option::Option<i32>,
4797        #[prost(int32, optional, tag = "2")]
4798        pub fow_control_point2: ::core::option::Option<i32>,
4799        #[prost(float, optional, tag = "3")]
4800        pub fow_radius: ::core::option::Option<f32>,
4801    }
4802    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4803    pub struct SetParticleShouldCheckFoW {
4804        #[prost(bool, optional, tag = "1")]
4805        pub check_fow: ::core::option::Option<bool>,
4806    }
4807    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4808    pub struct SetControlPointModel {
4809        #[prost(int32, optional, tag = "1")]
4810        pub control_point: ::core::option::Option<i32>,
4811        #[prost(string, optional, tag = "2")]
4812        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
4813    }
4814    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4815    pub struct SetControlPointSnapshot {
4816        #[prost(int32, optional, tag = "1")]
4817        pub control_point: ::core::option::Option<i32>,
4818        #[prost(string, optional, tag = "2")]
4819        pub snapshot_name: ::core::option::Option<::prost::alloc::string::String>,
4820    }
4821    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4822    pub struct SetParticleText {
4823        #[prost(string, optional, tag = "1")]
4824        pub text: ::core::option::Option<::prost::alloc::string::String>,
4825    }
4826    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4827    pub struct SetTextureAttribute {
4828        #[prost(string, optional, tag = "1")]
4829        pub attribute_name: ::core::option::Option<::prost::alloc::string::String>,
4830        #[prost(string, optional, tag = "2")]
4831        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
4832    }
4833    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4834    pub struct SetSceneObjectGenericFlag {
4835        #[prost(bool, optional, tag = "1")]
4836        pub flag_value: ::core::option::Option<bool>,
4837    }
4838    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4839    pub struct SetSceneObjectTintAndDesat {
4840        #[prost(fixed32, optional, tag = "1")]
4841        pub tint: ::core::option::Option<u32>,
4842        #[prost(float, optional, tag = "2")]
4843        pub desat: ::core::option::Option<f32>,
4844    }
4845    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4846    pub struct ParticleSkipToTime {
4847        #[prost(float, optional, tag = "1")]
4848        pub skip_to_time: ::core::option::Option<f32>,
4849    }
4850    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4851    pub struct ParticleCanFreeze {
4852        #[prost(bool, optional, tag = "1")]
4853        pub can_freeze: ::core::option::Option<bool>,
4854    }
4855    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4856    pub struct ParticleFreezeTransitionOverride {
4857        #[prost(float, optional, tag = "1")]
4858        pub freeze_transition_override: ::core::option::Option<f32>,
4859    }
4860    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4861    pub struct FreezeParticleInvolving {
4862        #[prost(bool, optional, tag = "1")]
4863        pub set_frozen: ::core::option::Option<bool>,
4864        #[prost(float, optional, tag = "2")]
4865        pub transition_duration: ::core::option::Option<f32>,
4866        #[prost(uint32, optional, tag = "3", default = "16777215")]
4867        pub entity_handle: ::core::option::Option<u32>,
4868    }
4869    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4870    pub struct AddModellistOverrideElement {
4871        #[prost(string, optional, tag = "1")]
4872        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
4873        #[prost(float, optional, tag = "2")]
4874        pub spawn_probability: ::core::option::Option<f32>,
4875        #[prost(uint32, optional, tag = "3")]
4876        pub groupid: ::core::option::Option<u32>,
4877    }
4878    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4879    pub struct ClearModellistOverride {
4880        #[prost(uint32, optional, tag = "1")]
4881        pub groupid: ::core::option::Option<u32>,
4882    }
4883    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4884    pub struct SetParticleNamedValueContext {
4885        #[prost(message, repeated, tag = "1")]
4886        pub float_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::FloatContextValue>,
4887        #[prost(message, repeated, tag = "2")]
4888        pub vector_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::VectorContextValue>,
4889        #[prost(message, repeated, tag = "3")]
4890        pub transform_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::TransformContextValue>,
4891        #[prost(message, repeated, tag = "4")]
4892        pub ehandle_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::EHandleContext>,
4893    }
4894    pub mod set_particle_named_value_context {
4895        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4896        pub struct FloatContextValue {
4897            #[prost(uint32, optional, tag = "1")]
4898            pub value_name_hash: ::core::option::Option<u32>,
4899            #[prost(float, optional, tag = "2")]
4900            pub value: ::core::option::Option<f32>,
4901        }
4902        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4903        pub struct VectorContextValue {
4904            #[prost(uint32, optional, tag = "1")]
4905            pub value_name_hash: ::core::option::Option<u32>,
4906            #[prost(message, optional, tag = "2")]
4907            pub value: ::core::option::Option<super::super::CMsgVector>,
4908        }
4909        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4910        pub struct TransformContextValue {
4911            #[prost(uint32, optional, tag = "1")]
4912            pub value_name_hash: ::core::option::Option<u32>,
4913            #[prost(message, optional, tag = "2")]
4914            pub angles: ::core::option::Option<super::super::CMsgQAngle>,
4915            #[prost(message, optional, tag = "3")]
4916            pub translation: ::core::option::Option<super::super::CMsgVector>,
4917        }
4918        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4919        pub struct EHandleContext {
4920            #[prost(uint32, optional, tag = "1")]
4921            pub value_name_hash: ::core::option::Option<u32>,
4922            #[prost(uint32, optional, tag = "2", default = "16777215")]
4923            pub ent_index: ::core::option::Option<u32>,
4924        }
4925    }
4926    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4927    pub struct CreatePhysicsSim {
4928        #[prost(string, optional, tag = "1")]
4929        pub prop_group_name: ::core::option::Option<::prost::alloc::string::String>,
4930        #[prost(bool, optional, tag = "2")]
4931        pub use_high_quality_simulation: ::core::option::Option<bool>,
4932        #[prost(uint32, optional, tag = "3")]
4933        pub max_particle_count: ::core::option::Option<u32>,
4934    }
4935    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4936    pub struct DestroyPhysicsSim {}
4937    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4938    pub struct SetVData {
4939        #[prost(string, optional, tag = "1")]
4940        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
4941    }
4942    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4943    pub struct SetMaterialOverride {
4944        #[prost(string, optional, tag = "1")]
4945        pub material_name: ::core::option::Option<::prost::alloc::string::String>,
4946        #[prost(bool, optional, tag = "2")]
4947        pub include_children: ::core::option::Option<bool>,
4948    }
4949    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4950    pub struct AddFan {
4951        #[prost(bool, optional, tag = "1")]
4952        pub active: ::core::option::Option<bool>,
4953        #[prost(message, optional, tag = "2")]
4954        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
4955        #[prost(message, optional, tag = "3")]
4956        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
4957        #[prost(message, optional, tag = "4")]
4958        pub fan_origin: ::core::option::Option<super::CMsgVector>,
4959        #[prost(message, optional, tag = "5")]
4960        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
4961        #[prost(message, optional, tag = "6")]
4962        pub fan_direction: ::core::option::Option<super::CMsgVector>,
4963        #[prost(float, optional, tag = "7")]
4964        pub force: ::core::option::Option<f32>,
4965        #[prost(string, optional, tag = "8")]
4966        pub fan_force_curve: ::core::option::Option<::prost::alloc::string::String>,
4967        #[prost(bool, optional, tag = "9")]
4968        pub falloff: ::core::option::Option<bool>,
4969        #[prost(bool, optional, tag = "10")]
4970        pub pull_towards_point: ::core::option::Option<bool>,
4971        #[prost(float, optional, tag = "11")]
4972        pub curve_min_dist: ::core::option::Option<f32>,
4973        #[prost(float, optional, tag = "12")]
4974        pub curve_max_dist: ::core::option::Option<f32>,
4975        #[prost(uint32, optional, tag = "13")]
4976        pub fan_type: ::core::option::Option<u32>,
4977        #[prost(float, optional, tag = "14")]
4978        pub cone_start_radius: ::core::option::Option<f32>,
4979        #[prost(float, optional, tag = "15")]
4980        pub cone_end_radius: ::core::option::Option<f32>,
4981        #[prost(float, optional, tag = "16")]
4982        pub cone_length: ::core::option::Option<f32>,
4983        #[prost(uint32, optional, tag = "17", default = "16777215")]
4984        pub entity_handle: ::core::option::Option<u32>,
4985        #[prost(string, optional, tag = "18")]
4986        pub attachment_name: ::core::option::Option<::prost::alloc::string::String>,
4987    }
4988    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4989    pub struct UpdateFan {
4990        #[prost(bool, optional, tag = "1")]
4991        pub active: ::core::option::Option<bool>,
4992        #[prost(message, optional, tag = "2")]
4993        pub fan_origin: ::core::option::Option<super::CMsgVector>,
4994        #[prost(message, optional, tag = "3")]
4995        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
4996        #[prost(message, optional, tag = "4")]
4997        pub fan_direction: ::core::option::Option<super::CMsgVector>,
4998        #[prost(float, optional, tag = "7")]
4999        pub fan_ramp_ratio: ::core::option::Option<f32>,
5000        #[prost(message, optional, tag = "5")]
5001        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
5002        #[prost(message, optional, tag = "6")]
5003        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
5004    }
5005    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5006    pub struct RemoveFan {}
5007    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5008    pub struct SetParticleClusterGrowth {
5009        #[prost(float, optional, tag = "1")]
5010        pub duration: ::core::option::Option<f32>,
5011        #[prost(message, optional, tag = "2")]
5012        pub origin: ::core::option::Option<super::CMsgVector>,
5013    }
5014}
5015#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5016pub struct CUserMsgHudError {
5017    #[prost(int32, optional, tag = "1")]
5018    pub order_id: ::core::option::Option<i32>,
5019}
5020#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5021pub struct CUserMsgCustomGameEvent {
5022    #[prost(string, optional, tag = "1")]
5023    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
5024    #[prost(bytes = "vec", optional, tag = "2")]
5025    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5026}
5027#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5028pub struct CUserMessageHapticsManagerPulse {
5029    #[prost(int32, optional, tag = "1")]
5030    pub hand_id: ::core::option::Option<i32>,
5031    #[prost(float, optional, tag = "2")]
5032    pub effect_amplitude: ::core::option::Option<f32>,
5033    #[prost(float, optional, tag = "3")]
5034    pub effect_frequency: ::core::option::Option<f32>,
5035    #[prost(float, optional, tag = "4")]
5036    pub effect_duration: ::core::option::Option<f32>,
5037}
5038#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5039pub struct CUserMessageHapticsManagerEffect {
5040    #[prost(int32, optional, tag = "1")]
5041    pub hand_id: ::core::option::Option<i32>,
5042    #[prost(uint32, optional, tag = "2")]
5043    pub effect_name_hash_code: ::core::option::Option<u32>,
5044    #[prost(float, optional, tag = "3")]
5045    pub effect_scale: ::core::option::Option<f32>,
5046}
5047#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5048pub struct CUserMessageAnimStateGraphState {
5049    #[prost(int32, optional, tag = "1")]
5050    pub entity_index: ::core::option::Option<i32>,
5051    #[prost(bytes = "vec", optional, tag = "2")]
5052    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5053}
5054#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5055pub struct CUserMessageUpdateCssClasses {
5056    #[prost(int32, optional, tag = "1")]
5057    pub target_world_panel: ::core::option::Option<i32>,
5058    #[prost(string, optional, tag = "2")]
5059    pub css_classes: ::core::option::Option<::prost::alloc::string::String>,
5060    #[prost(bool, optional, tag = "3")]
5061    pub is_add: ::core::option::Option<bool>,
5062}
5063#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5064pub struct CUserMessageServerFrameTime {
5065    #[prost(float, optional, tag = "1")]
5066    pub frame_time: ::core::option::Option<f32>,
5067}
5068#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5069pub struct CUserMessageLagCompensationError {
5070    #[prost(float, optional, tag = "1")]
5071    pub distance: ::core::option::Option<f32>,
5072}
5073#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5074pub struct CUserMessageRequestDllStatus {
5075    #[prost(string, optional, tag = "1")]
5076    pub dll_action: ::core::option::Option<::prost::alloc::string::String>,
5077    #[prost(bool, optional, tag = "2")]
5078    pub full_report: ::core::option::Option<bool>,
5079}
5080#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5081pub struct CUserMessageRequestUtilAction {
5082    #[prost(int32, optional, tag = "2")]
5083    pub util1: ::core::option::Option<i32>,
5084    #[prost(int32, optional, tag = "3")]
5085    pub util2: ::core::option::Option<i32>,
5086    #[prost(int32, optional, tag = "4")]
5087    pub util3: ::core::option::Option<i32>,
5088    #[prost(int32, optional, tag = "5")]
5089    pub util4: ::core::option::Option<i32>,
5090    #[prost(int32, optional, tag = "6")]
5091    pub util5: ::core::option::Option<i32>,
5092}
5093#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5094pub struct CUserMessageUtilMsgResponse {
5095    #[prost(fixed32, optional, tag = "1")]
5096    pub crc: ::core::option::Option<u32>,
5097    #[prost(int32, optional, tag = "2")]
5098    pub item_count: ::core::option::Option<i32>,
5099    #[prost(fixed32, optional, tag = "3")]
5100    pub crc2: ::core::option::Option<u32>,
5101    #[prost(int32, optional, tag = "4")]
5102    pub item_count2: ::core::option::Option<i32>,
5103    #[prost(int32, repeated, packed = "false", tag = "5")]
5104    pub crc_part: ::prost::alloc::vec::Vec<i32>,
5105    #[prost(int32, repeated, packed = "false", tag = "6")]
5106    pub crc_part2: ::prost::alloc::vec::Vec<i32>,
5107    #[prost(int32, optional, tag = "7")]
5108    pub client_timestamp: ::core::option::Option<i32>,
5109    #[prost(int32, optional, tag = "8")]
5110    pub platform: ::core::option::Option<i32>,
5111    #[prost(message, repeated, tag = "9")]
5112    pub itemdetails: ::prost::alloc::vec::Vec<c_user_message_util_msg_response::ItemDetail>,
5113    #[prost(int32, optional, tag = "10")]
5114    pub itemgroup: ::core::option::Option<i32>,
5115    #[prost(int32, optional, tag = "11")]
5116    pub total_count: ::core::option::Option<i32>,
5117    #[prost(int32, optional, tag = "12")]
5118    pub total_count2: ::core::option::Option<i32>,
5119}
5120pub mod c_user_message_util_msg_response {
5121    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5122    pub struct ItemDetail {
5123        #[prost(int32, optional, tag = "1")]
5124        pub index: ::core::option::Option<i32>,
5125        #[prost(int32, optional, tag = "2")]
5126        pub hash: ::core::option::Option<i32>,
5127        #[prost(int32, optional, tag = "3")]
5128        pub crc: ::core::option::Option<i32>,
5129        #[prost(string, optional, tag = "4")]
5130        pub name: ::core::option::Option<::prost::alloc::string::String>,
5131    }
5132}
5133#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5134pub struct CUserMessageDllStatus {
5135    #[prost(string, optional, tag = "1")]
5136    pub file_report: ::core::option::Option<::prost::alloc::string::String>,
5137    #[prost(string, optional, tag = "2")]
5138    pub command_line: ::core::option::Option<::prost::alloc::string::String>,
5139    #[prost(uint32, optional, tag = "3")]
5140    pub total_files: ::core::option::Option<u32>,
5141    #[prost(uint32, optional, tag = "4")]
5142    pub process_id: ::core::option::Option<u32>,
5143    #[prost(int32, optional, tag = "5")]
5144    pub osversion: ::core::option::Option<i32>,
5145    #[prost(uint64, optional, tag = "6")]
5146    pub client_time: ::core::option::Option<u64>,
5147    #[prost(message, repeated, tag = "7")]
5148    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_dll_status::CvDiagnostic>,
5149    #[prost(message, repeated, tag = "8")]
5150    pub modules: ::prost::alloc::vec::Vec<c_user_message_dll_status::CModule>,
5151}
5152pub mod c_user_message_dll_status {
5153    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5154    pub struct CvDiagnostic {
5155        #[prost(uint32, optional, tag = "1")]
5156        pub id: ::core::option::Option<u32>,
5157        #[prost(uint32, optional, tag = "2")]
5158        pub extended: ::core::option::Option<u32>,
5159        #[prost(uint64, optional, tag = "3")]
5160        pub value: ::core::option::Option<u64>,
5161        #[prost(string, optional, tag = "4")]
5162        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
5163    }
5164    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5165    pub struct CModule {
5166        #[prost(uint64, optional, tag = "1")]
5167        pub base_addr: ::core::option::Option<u64>,
5168        #[prost(string, optional, tag = "2")]
5169        pub name: ::core::option::Option<::prost::alloc::string::String>,
5170        #[prost(uint32, optional, tag = "3")]
5171        pub size: ::core::option::Option<u32>,
5172        #[prost(uint32, optional, tag = "4")]
5173        pub timestamp: ::core::option::Option<u32>,
5174    }
5175}
5176#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5177pub struct CUserMessageRequestInventory {
5178    #[prost(int32, optional, tag = "1")]
5179    pub inventory: ::core::option::Option<i32>,
5180    #[prost(int32, optional, tag = "2")]
5181    pub offset: ::core::option::Option<i32>,
5182    #[prost(int32, optional, tag = "3")]
5183    pub options: ::core::option::Option<i32>,
5184}
5185#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5186pub struct CUserMessageInventoryResponse {
5187    #[prost(fixed32, optional, tag = "1")]
5188    pub crc: ::core::option::Option<u32>,
5189    #[prost(int32, optional, tag = "2")]
5190    pub item_count: ::core::option::Option<i32>,
5191    #[prost(int32, optional, tag = "5")]
5192    pub osversion: ::core::option::Option<i32>,
5193    #[prost(int32, optional, tag = "6")]
5194    pub perf_time: ::core::option::Option<i32>,
5195    #[prost(int32, optional, tag = "7")]
5196    pub client_timestamp: ::core::option::Option<i32>,
5197    #[prost(int32, optional, tag = "8")]
5198    pub platform: ::core::option::Option<i32>,
5199    #[prost(message, repeated, tag = "9")]
5200    pub inventories: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5201    #[prost(message, repeated, tag = "10")]
5202    pub inventories2: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5203    #[prost(message, repeated, tag = "14")]
5204    pub inventories3: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5205    #[prost(int32, optional, tag = "11")]
5206    pub inv_type: ::core::option::Option<i32>,
5207    #[prost(int32, optional, tag = "12")]
5208    pub build_version: ::core::option::Option<i32>,
5209    #[prost(int32, optional, tag = "13")]
5210    pub instance: ::core::option::Option<i32>,
5211    #[prost(int64, optional, tag = "15")]
5212    pub start_time: ::core::option::Option<i64>,
5213}
5214pub mod c_user_message_inventory_response {
5215    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5216    pub struct InventoryDetail {
5217        #[prost(int32, optional, tag = "1")]
5218        pub index: ::core::option::Option<i32>,
5219        #[prost(int64, optional, tag = "2")]
5220        pub primary: ::core::option::Option<i64>,
5221        #[prost(int64, optional, tag = "3")]
5222        pub offset: ::core::option::Option<i64>,
5223        #[prost(int64, optional, tag = "4")]
5224        pub first: ::core::option::Option<i64>,
5225        #[prost(int64, optional, tag = "5")]
5226        pub base: ::core::option::Option<i64>,
5227        #[prost(string, optional, tag = "6")]
5228        pub name: ::core::option::Option<::prost::alloc::string::String>,
5229        #[prost(string, optional, tag = "7")]
5230        pub base_name: ::core::option::Option<::prost::alloc::string::String>,
5231        #[prost(int32, optional, tag = "8")]
5232        pub base_detail: ::core::option::Option<i32>,
5233        #[prost(int32, optional, tag = "9")]
5234        pub base_time: ::core::option::Option<i32>,
5235        #[prost(int32, optional, tag = "10")]
5236        pub base_hash: ::core::option::Option<i32>,
5237    }
5238}
5239#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5240pub struct CUserMessageRequestDiagnostic {
5241    #[prost(message, repeated, tag = "1")]
5242    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_request_diagnostic::Diagnostic>,
5243}
5244pub mod c_user_message_request_diagnostic {
5245    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5246    pub struct Diagnostic {
5247        #[prost(int32, optional, tag = "1")]
5248        pub index: ::core::option::Option<i32>,
5249        #[prost(int64, optional, tag = "2")]
5250        pub offset: ::core::option::Option<i64>,
5251        #[prost(int32, optional, tag = "3")]
5252        pub param: ::core::option::Option<i32>,
5253        #[prost(int32, optional, tag = "4")]
5254        pub length: ::core::option::Option<i32>,
5255        #[prost(int32, optional, tag = "5")]
5256        pub r#type: ::core::option::Option<i32>,
5257        #[prost(int64, optional, tag = "6")]
5258        pub base: ::core::option::Option<i64>,
5259        #[prost(int64, optional, tag = "7")]
5260        pub range: ::core::option::Option<i64>,
5261        #[prost(int64, optional, tag = "8")]
5262        pub extent: ::core::option::Option<i64>,
5263        #[prost(int64, optional, tag = "9")]
5264        pub detail: ::core::option::Option<i64>,
5265        #[prost(string, optional, tag = "10")]
5266        pub name: ::core::option::Option<::prost::alloc::string::String>,
5267        #[prost(string, optional, tag = "11")]
5268        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5269        #[prost(bytes = "vec", optional, tag = "12")]
5270        pub vardetail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5271        #[prost(int32, optional, tag = "13")]
5272        pub context: ::core::option::Option<i32>,
5273    }
5274}
5275#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5276pub struct CUserMessageDiagnosticResponse {
5277    #[prost(message, repeated, tag = "1")]
5278    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_diagnostic_response::Diagnostic>,
5279    #[prost(int32, optional, tag = "2")]
5280    pub build_version: ::core::option::Option<i32>,
5281    #[prost(int32, optional, tag = "3")]
5282    pub instance: ::core::option::Option<i32>,
5283    #[prost(int64, optional, tag = "4")]
5284    pub start_time: ::core::option::Option<i64>,
5285    #[prost(int32, optional, tag = "5")]
5286    pub osversion: ::core::option::Option<i32>,
5287    #[prost(int32, optional, tag = "6")]
5288    pub platform: ::core::option::Option<i32>,
5289}
5290pub mod c_user_message_diagnostic_response {
5291    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5292    pub struct Diagnostic {
5293        #[prost(int32, optional, tag = "1")]
5294        pub index: ::core::option::Option<i32>,
5295        #[prost(int64, optional, tag = "2")]
5296        pub offset: ::core::option::Option<i64>,
5297        #[prost(int32, optional, tag = "3")]
5298        pub param: ::core::option::Option<i32>,
5299        #[prost(int32, optional, tag = "4")]
5300        pub length: ::core::option::Option<i32>,
5301        #[prost(bytes = "vec", optional, tag = "5")]
5302        pub detail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5303        #[prost(int64, optional, tag = "6")]
5304        pub base: ::core::option::Option<i64>,
5305        #[prost(int64, optional, tag = "7")]
5306        pub range: ::core::option::Option<i64>,
5307        #[prost(int32, optional, tag = "8")]
5308        pub r#type: ::core::option::Option<i32>,
5309        #[prost(string, optional, tag = "10")]
5310        pub name: ::core::option::Option<::prost::alloc::string::String>,
5311        #[prost(string, optional, tag = "11")]
5312        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5313        #[prost(bytes = "vec", optional, tag = "12")]
5314        pub backup: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5315        #[prost(int32, optional, tag = "13")]
5316        pub context: ::core::option::Option<i32>,
5317        #[prost(int64, optional, tag = "14")]
5318        pub control: ::core::option::Option<i64>,
5319        #[prost(int64, optional, tag = "15")]
5320        pub augment: ::core::option::Option<i64>,
5321        #[prost(int64, optional, tag = "16")]
5322        pub placebo: ::core::option::Option<i64>,
5323    }
5324}
5325#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5326pub struct CUserMessageExtraUserData {
5327    #[prost(int32, optional, tag = "1")]
5328    pub item: ::core::option::Option<i32>,
5329    #[prost(int64, optional, tag = "2")]
5330    pub value1: ::core::option::Option<i64>,
5331    #[prost(int64, optional, tag = "3")]
5332    pub value2: ::core::option::Option<i64>,
5333    #[prost(bytes = "vec", repeated, tag = "4")]
5334    pub detail1: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5335    #[prost(bytes = "vec", repeated, tag = "5")]
5336    pub detail2: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5337}
5338#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5339pub struct CUserMessageNotifyResponseFound {
5340    #[prost(int32, optional, tag = "1", default = "-1")]
5341    pub ent_index: ::core::option::Option<i32>,
5342    #[prost(string, optional, tag = "2")]
5343    pub rule_name: ::core::option::Option<::prost::alloc::string::String>,
5344    #[prost(string, optional, tag = "3")]
5345    pub response_value: ::core::option::Option<::prost::alloc::string::String>,
5346    #[prost(string, optional, tag = "4")]
5347    pub response_concept: ::core::option::Option<::prost::alloc::string::String>,
5348    #[prost(message, repeated, tag = "5")]
5349    pub criteria: ::prost::alloc::vec::Vec<c_user_message_notify_response_found::Criteria>,
5350    #[prost(uint32, repeated, tag = "6")]
5351    pub int_criteria_names: ::prost::alloc::vec::Vec<u32>,
5352    #[prost(int32, repeated, tag = "7")]
5353    pub int_criteria_values: ::prost::alloc::vec::Vec<i32>,
5354    #[prost(uint32, repeated, tag = "8")]
5355    pub float_criteria_names: ::prost::alloc::vec::Vec<u32>,
5356    #[prost(float, repeated, packed = "false", tag = "9")]
5357    pub float_criteria_values: ::prost::alloc::vec::Vec<f32>,
5358    #[prost(uint32, repeated, tag = "10")]
5359    pub symbol_criteria_names: ::prost::alloc::vec::Vec<u32>,
5360    #[prost(uint32, repeated, tag = "11")]
5361    pub symbol_criteria_values: ::prost::alloc::vec::Vec<u32>,
5362    #[prost(int32, optional, tag = "12")]
5363    pub speak_result: ::core::option::Option<i32>,
5364}
5365pub mod c_user_message_notify_response_found {
5366    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5367    pub struct Criteria {
5368        #[prost(uint32, optional, tag = "1")]
5369        pub name_symbol: ::core::option::Option<u32>,
5370        #[prost(string, optional, tag = "2")]
5371        pub value: ::core::option::Option<::prost::alloc::string::String>,
5372    }
5373}
5374#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5375pub struct CUserMessagePlayResponseConditional {
5376    #[prost(int32, optional, tag = "1", default = "-1")]
5377    pub ent_index: ::core::option::Option<i32>,
5378    #[prost(int32, repeated, packed = "false", tag = "2")]
5379    pub player_slots: ::prost::alloc::vec::Vec<i32>,
5380    #[prost(string, optional, tag = "3")]
5381    pub response: ::core::option::Option<::prost::alloc::string::String>,
5382    #[prost(message, optional, tag = "4")]
5383    pub ent_origin: ::core::option::Option<CMsgVector>,
5384    #[prost(float, optional, tag = "5")]
5385    pub pre_delay: ::core::option::Option<f32>,
5386    #[prost(int32, optional, tag = "6")]
5387    pub mix_priority: ::core::option::Option<i32>,
5388}
5389#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5390#[repr(i32)]
5391pub enum EBaseUserMessages {
5392    UmAchievementEvent = 101,
5393    UmCloseCaption = 102,
5394    UmCloseCaptionDirect = 103,
5395    UmCurrentTimescale = 104,
5396    UmDesiredTimescale = 105,
5397    UmFade = 106,
5398    UmGameTitle = 107,
5399    UmHudMsg = 110,
5400    UmHudText = 111,
5401    UmColoredText = 113,
5402    UmRequestState = 114,
5403    UmResetHud = 115,
5404    UmRumble = 116,
5405    UmSayText = 117,
5406    UmSayText2 = 118,
5407    UmSayTextChannel = 119,
5408    UmShake = 120,
5409    UmShakeDir = 121,
5410    UmWaterShake = 122,
5411    UmTextMsg = 124,
5412    UmScreenTilt = 125,
5413    UmVoiceMask = 128,
5414    UmSendAudio = 130,
5415    UmItemPickup = 131,
5416    UmAmmoDenied = 132,
5417    UmShowMenu = 134,
5418    UmCreditsMsg = 135,
5419    UmCloseCaptionPlaceholder = 142,
5420    UmCameraTransition = 143,
5421    UmAudioParameter = 144,
5422    UmParticleManager = 145,
5423    UmHudError = 146,
5424    UmCustomGameEvent = 148,
5425    UmAnimGraphUpdate = 149,
5426    UmHapticsManagerPulse = 150,
5427    UmHapticsManagerEffect = 151,
5428    UmUpdateCssClasses = 153,
5429    UmServerFrameTime = 154,
5430    UmLagCompensationError = 155,
5431    UmRequestDllStatus = 156,
5432    UmRequestUtilAction = 157,
5433    UmUtilActionResponse = 158,
5434    UmDllStatusResponse = 159,
5435    UmRequestInventory = 160,
5436    UmInventoryResponse = 161,
5437    UmRequestDiagnostic = 162,
5438    UmDiagnosticResponse = 163,
5439    UmExtraUserData = 164,
5440    UmNotifyResponseFound = 165,
5441    UmPlayResponseConditional = 166,
5442    UmMaxBase = 200,
5443}
5444#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5445#[repr(i32)]
5446pub enum EBaseEntityMessages {
5447    EmPlayJingle = 136,
5448    EmScreenOverlay = 137,
5449    EmRemoveAllDecals = 138,
5450    EmPropagateForce = 139,
5451    EmDoSpark = 140,
5452    EmFixAngle = 141,
5453}
5454#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5455#[repr(i32)]
5456pub enum ERollType {
5457    RollNone = -1,
5458    RollStats = 0,
5459    RollCredits = 1,
5460    RollLateJoinLogo = 2,
5461    RollOuttro = 3,
5462}
5463#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5464#[repr(i32)]
5465pub enum ParticleMessage {
5466    GameParticleManagerEventCreate = 0,
5467    GameParticleManagerEventUpdate = 1,
5468    GameParticleManagerEventUpdateForward = 2,
5469    GameParticleManagerEventUpdateOrientation = 3,
5470    GameParticleManagerEventUpdateFallback = 4,
5471    GameParticleManagerEventUpdateEnt = 5,
5472    GameParticleManagerEventUpdateOffset = 6,
5473    GameParticleManagerEventDestroy = 7,
5474    GameParticleManagerEventDestroyInvolving = 8,
5475    GameParticleManagerEventRelease = 9,
5476    GameParticleManagerEventLatency = 10,
5477    GameParticleManagerEventShouldDraw = 11,
5478    GameParticleManagerEventFrozen = 12,
5479    GameParticleManagerEventChangeControlPointAttachment = 13,
5480    GameParticleManagerEventUpdateEntityPosition = 14,
5481    GameParticleManagerEventSetFowProperties = 15,
5482    GameParticleManagerEventSetText = 16,
5483    GameParticleManagerEventSetShouldCheckFow = 17,
5484    GameParticleManagerEventSetControlPointModel = 18,
5485    GameParticleManagerEventSetControlPointSnapshot = 19,
5486    GameParticleManagerEventSetTextureAttribute = 20,
5487    GameParticleManagerEventSetSceneObjectGenericFlag = 21,
5488    GameParticleManagerEventSetSceneObjectTintAndDesat = 22,
5489    GameParticleManagerEventDestroyNamed = 23,
5490    GameParticleManagerEventSkipToTime = 24,
5491    GameParticleManagerEventCanFreeze = 25,
5492    GameParticleManagerEventSetNamedValueContext = 26,
5493    GameParticleManagerEventUpdateTransform = 27,
5494    GameParticleManagerEventFreezeTransitionOverride = 28,
5495    GameParticleManagerEventFreezeInvolving = 29,
5496    GameParticleManagerEventAddModellistOverrideElement = 30,
5497    GameParticleManagerEventClearModellistOverride = 31,
5498    GameParticleManagerEventCreatePhysicsSim = 32,
5499    GameParticleManagerEventDestroyPhysicsSim = 33,
5500    GameParticleManagerEventSetVdata = 34,
5501    GameParticleManagerEventSetMaterialOverride = 35,
5502    GameParticleManagerEventAddFan = 36,
5503    GameParticleManagerEventUpdateFan = 37,
5504    GameParticleManagerEventSetClusterGrowth = 38,
5505    GameParticleManagerEventRemoveFan = 39,
5506}
5507#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5508#[repr(i32)]
5509pub enum EHapticPulseType {
5510    VrHandHapticPulseLight = 0,
5511    VrHandHapticPulseMedium = 1,
5512    VrHandHapticPulseStrong = 2,
5513}