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 network_protocol: ::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, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4099#[repr(i32)]
4100pub enum ClcMessages {
4101    ClcClientInfo = 20,
4102    ClcMove = 21,
4103    ClcVoiceData = 22,
4104    ClcBaselineAck = 23,
4105    ClcRespondCvarValue = 25,
4106    ClcLoadingProgress = 27,
4107    ClcSplitPlayerConnect = 28,
4108    ClcSplitPlayerDisconnect = 30,
4109    ClcServerStatus = 31,
4110    ClcRequestPause = 33,
4111    ClcCmdKeyValues = 34,
4112    ClcRconServerDetails = 35,
4113    ClcHltvReplay = 36,
4114    ClcDiagnostic = 37,
4115}
4116#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4117#[repr(i32)]
4118pub enum SvcMessages {
4119    SvcServerInfo = 40,
4120    SvcFlattenedSerializer = 41,
4121    SvcClassInfo = 42,
4122    SvcSetPause = 43,
4123    SvcCreateStringTable = 44,
4124    SvcUpdateStringTable = 45,
4125    SvcVoiceInit = 46,
4126    SvcVoiceData = 47,
4127    SvcPrint = 48,
4128    SvcSounds = 49,
4129    SvcSetView = 50,
4130    SvcClearAllStringTables = 51,
4131    SvcCmdKeyValues = 52,
4132    SvcBspDecal = 53,
4133    SvcSplitScreen = 54,
4134    SvcPacketEntities = 55,
4135    SvcPrefetch = 56,
4136    SvcMenu = 57,
4137    SvcGetCvarValue = 58,
4138    SvcStopSound = 59,
4139    SvcPeerList = 60,
4140    SvcPacketReliable = 61,
4141    SvcHltvStatus = 62,
4142    SvcServerSteamId = 63,
4143    SvcFullFrameSplit = 70,
4144    SvcRconServerDetails = 71,
4145    SvcUserMessage = 72,
4146    SvcBroadcastCommand = 74,
4147    SvcHltvFixupOperatorStatus = 75,
4148    SvcUserCmds = 76,
4149}
4150#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4151#[repr(i32)]
4152pub enum VoiceDataFormatT {
4153    VoicedataFormatSteam = 0,
4154    VoicedataFormatEngine = 1,
4155    VoicedataFormatOpus = 2,
4156}
4157#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4158#[repr(i32)]
4159pub enum RequestPauseT {
4160    RpPause = 0,
4161    RpUnpause = 1,
4162    RpTogglepause = 2,
4163}
4164#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4165#[repr(i32)]
4166pub enum PrefetchType {
4167    PftSound = 0,
4168}
4169#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4170#[repr(i32)]
4171pub enum ESplitScreenMessageType {
4172    MsgSplitscreenAdduser = 0,
4173    MsgSplitscreenRemoveuser = 1,
4174}
4175#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4176#[repr(i32)]
4177pub enum EQueryCvarValueStatus {
4178    ValueIntact = 0,
4179    CvarNotFound = 1,
4180    NotACvar = 2,
4181    CvarProtected = 3,
4182}
4183#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4184#[repr(i32)]
4185pub enum DialogType {
4186    DialogMsg = 0,
4187    DialogMenu = 1,
4188    DialogText = 2,
4189    DialogEntry = 3,
4190    DialogAskconnect = 4,
4191}
4192#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4193#[repr(i32)]
4194pub enum SvcMessagesLowFrequency {
4195    SvcDummy = 600,
4196}
4197#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4198#[repr(i32)]
4199pub enum BidirectionalMessages {
4200    BiRebroadcastGameEvent = 16,
4201    BiRebroadcastSource = 17,
4202    BiGameEvent = 18,
4203    BiPredictionEvent = 19,
4204}
4205#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4206#[repr(i32)]
4207pub enum BidirectionalMessagesLowFrequency {
4208    BiRelayInfo = 700,
4209    BiRelayPacket = 701,
4210}
4211#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4212#[repr(i32)]
4213pub enum ReplayEventTypeT {
4214    ReplayEventCancel = 0,
4215    ReplayEventDeath = 1,
4216    ReplayEventGeneric = 2,
4217    ReplayEventStuckNeedFullUpdate = 3,
4218    ReplayEventVictory = 4,
4219}
4220#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4221pub struct CUserMessageAchievementEvent {
4222    #[prost(uint32, optional, tag = "1")]
4223    pub achievement: ::core::option::Option<u32>,
4224}
4225#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4226pub struct CUserMessageCloseCaption {
4227    #[prost(fixed32, optional, tag = "1")]
4228    pub hash: ::core::option::Option<u32>,
4229    #[prost(float, optional, tag = "2")]
4230    pub duration: ::core::option::Option<f32>,
4231    #[prost(bool, optional, tag = "3")]
4232    pub from_player: ::core::option::Option<bool>,
4233    #[prost(int32, optional, tag = "4", default = "-1")]
4234    pub ent_index: ::core::option::Option<i32>,
4235}
4236#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4237pub struct CUserMessageCloseCaptionDirect {
4238    #[prost(fixed32, optional, tag = "1")]
4239    pub hash: ::core::option::Option<u32>,
4240    #[prost(float, optional, tag = "2")]
4241    pub duration: ::core::option::Option<f32>,
4242    #[prost(bool, optional, tag = "3")]
4243    pub from_player: ::core::option::Option<bool>,
4244    #[prost(int32, optional, tag = "4", default = "-1")]
4245    pub ent_index: ::core::option::Option<i32>,
4246}
4247#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4248pub struct CUserMessageCloseCaptionPlaceholder {
4249    #[prost(string, optional, tag = "1")]
4250    pub string: ::core::option::Option<::prost::alloc::string::String>,
4251    #[prost(float, optional, tag = "2")]
4252    pub duration: ::core::option::Option<f32>,
4253    #[prost(bool, optional, tag = "3")]
4254    pub from_player: ::core::option::Option<bool>,
4255    #[prost(int32, optional, tag = "4", default = "-1")]
4256    pub ent_index: ::core::option::Option<i32>,
4257}
4258#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4259pub struct CUserMessageCurrentTimescale {
4260    #[prost(float, optional, tag = "1")]
4261    pub current: ::core::option::Option<f32>,
4262}
4263#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4264pub struct CUserMessageDesiredTimescale {
4265    #[prost(float, optional, tag = "1")]
4266    pub desired: ::core::option::Option<f32>,
4267    #[prost(float, optional, tag = "2")]
4268    pub acceleration: ::core::option::Option<f32>,
4269    #[prost(float, optional, tag = "3")]
4270    pub minblendrate: ::core::option::Option<f32>,
4271    #[prost(float, optional, tag = "4")]
4272    pub blenddeltamultiplier: ::core::option::Option<f32>,
4273}
4274#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4275pub struct CUserMessageFade {
4276    #[prost(uint32, optional, tag = "1")]
4277    pub duration: ::core::option::Option<u32>,
4278    #[prost(uint32, optional, tag = "2")]
4279    pub hold_time: ::core::option::Option<u32>,
4280    #[prost(uint32, optional, tag = "3")]
4281    pub flags: ::core::option::Option<u32>,
4282    #[prost(fixed32, optional, tag = "4")]
4283    pub color: ::core::option::Option<u32>,
4284}
4285#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4286pub struct CUserMessageShake {
4287    #[prost(uint32, optional, tag = "1")]
4288    pub command: ::core::option::Option<u32>,
4289    #[prost(float, optional, tag = "2")]
4290    pub amplitude: ::core::option::Option<f32>,
4291    #[prost(float, optional, tag = "3")]
4292    pub frequency: ::core::option::Option<f32>,
4293    #[prost(float, optional, tag = "4")]
4294    pub duration: ::core::option::Option<f32>,
4295}
4296#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4297pub struct CUserMessageShakeDir {
4298    #[prost(message, optional, tag = "1")]
4299    pub shake: ::core::option::Option<CUserMessageShake>,
4300    #[prost(message, optional, tag = "2")]
4301    pub direction: ::core::option::Option<CMsgVector>,
4302}
4303#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4304pub struct CUserMessageWaterShake {
4305    #[prost(uint32, optional, tag = "1")]
4306    pub command: ::core::option::Option<u32>,
4307    #[prost(float, optional, tag = "2")]
4308    pub amplitude: ::core::option::Option<f32>,
4309    #[prost(float, optional, tag = "3")]
4310    pub frequency: ::core::option::Option<f32>,
4311    #[prost(float, optional, tag = "4")]
4312    pub duration: ::core::option::Option<f32>,
4313}
4314#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4315pub struct CUserMessageScreenTilt {
4316    #[prost(uint32, optional, tag = "1")]
4317    pub command: ::core::option::Option<u32>,
4318    #[prost(bool, optional, tag = "2")]
4319    pub ease_in_out: ::core::option::Option<bool>,
4320    #[prost(message, optional, tag = "3")]
4321    pub angle: ::core::option::Option<CMsgVector>,
4322    #[prost(float, optional, tag = "4")]
4323    pub duration: ::core::option::Option<f32>,
4324    #[prost(float, optional, tag = "5")]
4325    pub time: ::core::option::Option<f32>,
4326}
4327#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4328pub struct CUserMessageSayText {
4329    #[prost(int32, optional, tag = "1", default = "-1")]
4330    pub playerindex: ::core::option::Option<i32>,
4331    #[prost(string, optional, tag = "2")]
4332    pub text: ::core::option::Option<::prost::alloc::string::String>,
4333    #[prost(bool, optional, tag = "3")]
4334    pub chat: ::core::option::Option<bool>,
4335}
4336#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4337pub struct CUserMessageSayText2 {
4338    #[prost(int32, optional, tag = "1", default = "-1")]
4339    pub entityindex: ::core::option::Option<i32>,
4340    #[prost(bool, optional, tag = "2")]
4341    pub chat: ::core::option::Option<bool>,
4342    #[prost(string, optional, tag = "3")]
4343    pub messagename: ::core::option::Option<::prost::alloc::string::String>,
4344    #[prost(string, optional, tag = "4")]
4345    pub param1: ::core::option::Option<::prost::alloc::string::String>,
4346    #[prost(string, optional, tag = "5")]
4347    pub param2: ::core::option::Option<::prost::alloc::string::String>,
4348    #[prost(string, optional, tag = "6")]
4349    pub param3: ::core::option::Option<::prost::alloc::string::String>,
4350    #[prost(string, optional, tag = "7")]
4351    pub param4: ::core::option::Option<::prost::alloc::string::String>,
4352}
4353#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4354pub struct CUserMessageHudMsg {
4355    #[prost(uint32, optional, tag = "1")]
4356    pub channel: ::core::option::Option<u32>,
4357    #[prost(float, optional, tag = "2")]
4358    pub x: ::core::option::Option<f32>,
4359    #[prost(float, optional, tag = "3")]
4360    pub y: ::core::option::Option<f32>,
4361    #[prost(fixed32, optional, tag = "4")]
4362    pub color1: ::core::option::Option<u32>,
4363    #[prost(fixed32, optional, tag = "5")]
4364    pub color2: ::core::option::Option<u32>,
4365    #[prost(uint32, optional, tag = "6")]
4366    pub effect: ::core::option::Option<u32>,
4367    #[prost(string, optional, tag = "11")]
4368    pub message: ::core::option::Option<::prost::alloc::string::String>,
4369}
4370#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4371pub struct CUserMessageHudText {
4372    #[prost(string, optional, tag = "1")]
4373    pub message: ::core::option::Option<::prost::alloc::string::String>,
4374}
4375#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4376pub struct CUserMessageTextMsg {
4377    #[prost(uint32, optional, tag = "1")]
4378    pub dest: ::core::option::Option<u32>,
4379    #[prost(string, repeated, tag = "2")]
4380    pub param: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4381}
4382#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4383pub struct CUserMessageGameTitle {}
4384#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4385pub struct CUserMessageResetHud {}
4386#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4387pub struct CUserMessageSendAudio {
4388    #[prost(string, optional, tag = "1")]
4389    pub soundname: ::core::option::Option<::prost::alloc::string::String>,
4390    #[prost(bool, optional, tag = "2")]
4391    pub stop: ::core::option::Option<bool>,
4392}
4393#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4394pub struct CUserMessageAudioParameter {
4395    #[prost(uint32, optional, tag = "1")]
4396    pub parameter_type: ::core::option::Option<u32>,
4397    #[prost(uint32, optional, tag = "2")]
4398    pub name_hash_code: ::core::option::Option<u32>,
4399    #[prost(float, optional, tag = "3")]
4400    pub value: ::core::option::Option<f32>,
4401    #[prost(uint32, optional, tag = "4")]
4402    pub int_value: ::core::option::Option<u32>,
4403}
4404#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4405pub struct CUserMessageVoiceMask {
4406    #[prost(uint32, repeated, packed = "false", tag = "1")]
4407    pub gamerules_masks: ::prost::alloc::vec::Vec<u32>,
4408    #[prost(uint32, repeated, packed = "false", tag = "2")]
4409    pub ban_masks: ::prost::alloc::vec::Vec<u32>,
4410    #[prost(bool, optional, tag = "3")]
4411    pub mod_enable: ::core::option::Option<bool>,
4412}
4413#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4414pub struct CUserMessageRequestState {}
4415#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4416pub struct CUserMessageRumble {
4417    #[prost(int32, optional, tag = "1")]
4418    pub index: ::core::option::Option<i32>,
4419    #[prost(int32, optional, tag = "2")]
4420    pub data: ::core::option::Option<i32>,
4421    #[prost(int32, optional, tag = "3")]
4422    pub flags: ::core::option::Option<i32>,
4423}
4424#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4425pub struct CUserMessageSayTextChannel {
4426    #[prost(int32, optional, tag = "1")]
4427    pub player: ::core::option::Option<i32>,
4428    #[prost(int32, optional, tag = "2")]
4429    pub channel: ::core::option::Option<i32>,
4430    #[prost(string, optional, tag = "3")]
4431    pub text: ::core::option::Option<::prost::alloc::string::String>,
4432}
4433#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4434pub struct CUserMessageColoredText {
4435    #[prost(uint32, optional, tag = "1")]
4436    pub color: ::core::option::Option<u32>,
4437    #[prost(string, optional, tag = "2")]
4438    pub text: ::core::option::Option<::prost::alloc::string::String>,
4439    #[prost(bool, optional, tag = "3")]
4440    pub reset: ::core::option::Option<bool>,
4441    #[prost(int32, optional, tag = "4", default = "-1")]
4442    pub context_player_slot: ::core::option::Option<i32>,
4443    #[prost(int32, optional, tag = "5")]
4444    pub context_value: ::core::option::Option<i32>,
4445    #[prost(int32, optional, tag = "6")]
4446    pub context_team_id: ::core::option::Option<i32>,
4447}
4448#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4449pub struct CUserMessageItemPickup {
4450    #[prost(string, optional, tag = "1")]
4451    pub itemname: ::core::option::Option<::prost::alloc::string::String>,
4452}
4453#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4454pub struct CUserMessageAmmoDenied {
4455    #[prost(uint32, optional, tag = "1")]
4456    pub ammo_id: ::core::option::Option<u32>,
4457}
4458#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4459pub struct CUserMessageShowMenu {
4460    #[prost(uint32, optional, tag = "1")]
4461    pub validslots: ::core::option::Option<u32>,
4462    #[prost(uint32, optional, tag = "2")]
4463    pub displaytime: ::core::option::Option<u32>,
4464    #[prost(bool, optional, tag = "3")]
4465    pub needmore: ::core::option::Option<bool>,
4466    #[prost(string, optional, tag = "4")]
4467    pub menustring: ::core::option::Option<::prost::alloc::string::String>,
4468}
4469#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4470pub struct CUserMessageCreditsMsg {
4471    #[prost(enumeration = "ERollType", optional, tag = "1", default = "RollNone")]
4472    pub rolltype: ::core::option::Option<i32>,
4473    #[prost(float, optional, tag = "2")]
4474    pub logo_length: ::core::option::Option<f32>,
4475}
4476#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4477pub struct CEntityMessagePlayJingle {
4478    #[prost(message, optional, tag = "1")]
4479    pub entity_msg: ::core::option::Option<CEntityMsg>,
4480}
4481#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4482pub struct CEntityMessageScreenOverlay {
4483    #[prost(bool, optional, tag = "1")]
4484    pub start_effect: ::core::option::Option<bool>,
4485    #[prost(message, optional, tag = "2")]
4486    pub entity_msg: ::core::option::Option<CEntityMsg>,
4487}
4488#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4489pub struct CEntityMessageRemoveAllDecals {
4490    #[prost(bool, optional, tag = "1")]
4491    pub remove_decals: ::core::option::Option<bool>,
4492    #[prost(message, optional, tag = "2")]
4493    pub entity_msg: ::core::option::Option<CEntityMsg>,
4494}
4495#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4496pub struct CEntityMessagePropagateForce {
4497    #[prost(message, optional, tag = "1")]
4498    pub impulse: ::core::option::Option<CMsgVector>,
4499    #[prost(message, optional, tag = "2")]
4500    pub entity_msg: ::core::option::Option<CEntityMsg>,
4501}
4502#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4503pub struct CEntityMessageDoSpark {
4504    #[prost(message, optional, tag = "1")]
4505    pub origin: ::core::option::Option<CMsgVector>,
4506    #[prost(int32, optional, tag = "2", default = "-1")]
4507    pub entityindex: ::core::option::Option<i32>,
4508    #[prost(float, optional, tag = "3")]
4509    pub radius: ::core::option::Option<f32>,
4510    #[prost(fixed32, optional, tag = "4")]
4511    pub color: ::core::option::Option<u32>,
4512    #[prost(uint32, optional, tag = "5")]
4513    pub beams: ::core::option::Option<u32>,
4514    #[prost(float, optional, tag = "6")]
4515    pub thick: ::core::option::Option<f32>,
4516    #[prost(float, optional, tag = "7")]
4517    pub duration: ::core::option::Option<f32>,
4518    #[prost(message, optional, tag = "8")]
4519    pub entity_msg: ::core::option::Option<CEntityMsg>,
4520}
4521#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4522pub struct CEntityMessageFixAngle {
4523    #[prost(bool, optional, tag = "1")]
4524    pub relative: ::core::option::Option<bool>,
4525    #[prost(message, optional, tag = "2")]
4526    pub angle: ::core::option::Option<CMsgQAngle>,
4527    #[prost(message, optional, tag = "3")]
4528    pub entity_msg: ::core::option::Option<CEntityMsg>,
4529}
4530#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4531pub struct CUserMessageCameraTransition {
4532    #[prost(uint32, optional, tag = "1")]
4533    pub camera_type: ::core::option::Option<u32>,
4534    #[prost(float, optional, tag = "2")]
4535    pub duration: ::core::option::Option<f32>,
4536    #[prost(message, optional, tag = "3")]
4537    pub params_data_driven: ::core::option::Option<c_user_message_camera_transition::TransitionDataDriven>,
4538}
4539pub mod c_user_message_camera_transition {
4540    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4541    pub struct TransitionDataDriven {
4542        #[prost(string, optional, tag = "1")]
4543        pub filename: ::core::option::Option<::prost::alloc::string::String>,
4544        #[prost(int32, optional, tag = "2", default = "-1")]
4545        pub attach_ent_index: ::core::option::Option<i32>,
4546        #[prost(float, optional, tag = "3")]
4547        pub duration: ::core::option::Option<f32>,
4548    }
4549}
4550#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4551pub struct CUserMsgParticleManager {
4552    #[prost(enumeration = "ParticleMessage", required, tag = "1", default = "GameParticleManagerEventCreate")]
4553    pub r#type: i32,
4554    #[prost(uint32, required, tag = "2")]
4555    pub index: u32,
4556    #[prost(message, optional, tag = "3")]
4557    pub release_particle_index: ::core::option::Option<c_user_msg_particle_manager::ReleaseParticleIndex>,
4558    #[prost(message, optional, tag = "4")]
4559    pub create_particle: ::core::option::Option<c_user_msg_particle_manager::CreateParticle>,
4560    #[prost(message, optional, tag = "5")]
4561    pub destroy_particle: ::core::option::Option<c_user_msg_particle_manager::DestroyParticle>,
4562    #[prost(message, optional, tag = "6")]
4563    pub destroy_particle_involving: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleInvolving>,
4564    #[prost(message, optional, tag = "7")]
4565    pub update_particle: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleObsolete>,
4566    #[prost(message, optional, tag = "8")]
4567    pub update_particle_fwd: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFwdObsolete>,
4568    #[prost(message, optional, tag = "9")]
4569    pub update_particle_orient: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOrientObsolete>,
4570    #[prost(message, optional, tag = "10")]
4571    pub update_particle_fallback: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFallback>,
4572    #[prost(message, optional, tag = "11")]
4573    pub update_particle_offset: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOffset>,
4574    #[prost(message, optional, tag = "12")]
4575    pub update_particle_ent: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleEnt>,
4576    #[prost(message, optional, tag = "14")]
4577    pub update_particle_should_draw: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleShouldDraw>,
4578    #[prost(message, optional, tag = "15")]
4579    pub update_particle_set_frozen: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleSetFrozen>,
4580    #[prost(message, optional, tag = "16")]
4581    pub change_control_point_attachment: ::core::option::Option<c_user_msg_particle_manager::ChangeControlPointAttachment>,
4582    #[prost(message, optional, tag = "17")]
4583    pub update_entity_position: ::core::option::Option<c_user_msg_particle_manager::UpdateEntityPosition>,
4584    #[prost(message, optional, tag = "18")]
4585    pub set_particle_fow_properties: ::core::option::Option<c_user_msg_particle_manager::SetParticleFoWProperties>,
4586    #[prost(message, optional, tag = "19")]
4587    pub set_particle_text: ::core::option::Option<c_user_msg_particle_manager::SetParticleText>,
4588    #[prost(message, optional, tag = "20")]
4589    pub set_particle_should_check_fow: ::core::option::Option<c_user_msg_particle_manager::SetParticleShouldCheckFoW>,
4590    #[prost(message, optional, tag = "21")]
4591    pub set_control_point_model: ::core::option::Option<c_user_msg_particle_manager::SetControlPointModel>,
4592    #[prost(message, optional, tag = "22")]
4593    pub set_control_point_snapshot: ::core::option::Option<c_user_msg_particle_manager::SetControlPointSnapshot>,
4594    #[prost(message, optional, tag = "23")]
4595    pub set_texture_attribute: ::core::option::Option<c_user_msg_particle_manager::SetTextureAttribute>,
4596    #[prost(message, optional, tag = "24")]
4597    pub set_scene_object_generic_flag: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectGenericFlag>,
4598    #[prost(message, optional, tag = "25")]
4599    pub set_scene_object_tint_and_desat: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectTintAndDesat>,
4600    #[prost(message, optional, tag = "26")]
4601    pub destroy_particle_named: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleNamed>,
4602    #[prost(message, optional, tag = "27")]
4603    pub particle_skip_to_time: ::core::option::Option<c_user_msg_particle_manager::ParticleSkipToTime>,
4604    #[prost(message, optional, tag = "28")]
4605    pub particle_can_freeze: ::core::option::Option<c_user_msg_particle_manager::ParticleCanFreeze>,
4606    #[prost(message, optional, tag = "29")]
4607    pub set_named_value_context: ::core::option::Option<c_user_msg_particle_manager::SetParticleNamedValueContext>,
4608    #[prost(message, optional, tag = "30")]
4609    pub update_particle_transform: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleTransform>,
4610    #[prost(message, optional, tag = "31")]
4611    pub particle_freeze_transition_override: ::core::option::Option<c_user_msg_particle_manager::ParticleFreezeTransitionOverride>,
4612    #[prost(message, optional, tag = "32")]
4613    pub freeze_particle_involving: ::core::option::Option<c_user_msg_particle_manager::FreezeParticleInvolving>,
4614    #[prost(message, optional, tag = "33")]
4615    pub add_modellist_override_element: ::core::option::Option<c_user_msg_particle_manager::AddModellistOverrideElement>,
4616    #[prost(message, optional, tag = "34")]
4617    pub clear_modellist_override: ::core::option::Option<c_user_msg_particle_manager::ClearModellistOverride>,
4618    #[prost(message, optional, tag = "35")]
4619    pub create_physics_sim: ::core::option::Option<c_user_msg_particle_manager::CreatePhysicsSim>,
4620    #[prost(message, optional, tag = "36")]
4621    pub destroy_physics_sim: ::core::option::Option<c_user_msg_particle_manager::DestroyPhysicsSim>,
4622    #[prost(message, optional, tag = "37")]
4623    pub set_vdata: ::core::option::Option<c_user_msg_particle_manager::SetVData>,
4624    #[prost(message, optional, tag = "38")]
4625    pub set_material_override: ::core::option::Option<c_user_msg_particle_manager::SetMaterialOverride>,
4626    #[prost(message, optional, tag = "39")]
4627    pub add_fan: ::core::option::Option<c_user_msg_particle_manager::AddFan>,
4628    #[prost(message, optional, tag = "40")]
4629    pub update_fan: ::core::option::Option<c_user_msg_particle_manager::UpdateFan>,
4630    #[prost(message, optional, tag = "41")]
4631    pub set_particle_cluster_growth: ::core::option::Option<c_user_msg_particle_manager::SetParticleClusterGrowth>,
4632    #[prost(message, optional, tag = "42")]
4633    pub remove_fan: ::core::option::Option<c_user_msg_particle_manager::RemoveFan>,
4634}
4635pub mod c_user_msg_particle_manager {
4636    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4637    pub struct ReleaseParticleIndex {}
4638    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4639    pub struct CreateParticle {
4640        #[prost(fixed64, optional, tag = "1")]
4641        pub particle_name_index: ::core::option::Option<u64>,
4642        #[prost(int32, optional, tag = "2")]
4643        pub attach_type: ::core::option::Option<i32>,
4644        #[prost(uint32, optional, tag = "3", default = "16777215")]
4645        pub entity_handle: ::core::option::Option<u32>,
4646        #[prost(uint32, optional, tag = "4", default = "16777215")]
4647        pub entity_handle_for_modifiers: ::core::option::Option<u32>,
4648        #[prost(bool, optional, tag = "5")]
4649        pub apply_voice_ban_rules: ::core::option::Option<bool>,
4650        #[prost(int32, optional, tag = "6")]
4651        pub team_behavior: ::core::option::Option<i32>,
4652        #[prost(string, optional, tag = "7")]
4653        pub control_point_configuration: ::core::option::Option<::prost::alloc::string::String>,
4654        #[prost(bool, optional, tag = "8")]
4655        pub cluster: ::core::option::Option<bool>,
4656        #[prost(float, optional, tag = "9")]
4657        pub endcap_time: ::core::option::Option<f32>,
4658        #[prost(message, optional, tag = "10")]
4659        pub aggregation_position: ::core::option::Option<super::CMsgVector>,
4660    }
4661    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4662    pub struct DestroyParticle {
4663        #[prost(bool, optional, tag = "1")]
4664        pub destroy_immediately: ::core::option::Option<bool>,
4665    }
4666    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4667    pub struct DestroyParticleInvolving {
4668        #[prost(bool, optional, tag = "1")]
4669        pub destroy_immediately: ::core::option::Option<bool>,
4670        #[prost(uint32, optional, tag = "3", default = "16777215")]
4671        pub entity_handle: ::core::option::Option<u32>,
4672    }
4673    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4674    pub struct DestroyParticleNamed {
4675        #[prost(fixed64, optional, tag = "1")]
4676        pub particle_name_index: ::core::option::Option<u64>,
4677        #[prost(uint32, optional, tag = "2", default = "16777215")]
4678        pub entity_handle: ::core::option::Option<u32>,
4679        #[prost(bool, optional, tag = "3")]
4680        pub destroy_immediately: ::core::option::Option<bool>,
4681        #[prost(bool, optional, tag = "4")]
4682        pub play_endcap: ::core::option::Option<bool>,
4683    }
4684    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4685    pub struct UpdateParticleObsolete {
4686        #[prost(int32, optional, tag = "1")]
4687        pub control_point: ::core::option::Option<i32>,
4688        #[prost(message, optional, tag = "2")]
4689        pub position: ::core::option::Option<super::CMsgVector>,
4690    }
4691    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4692    pub struct UpdateParticleFwdObsolete {
4693        #[prost(int32, optional, tag = "1")]
4694        pub control_point: ::core::option::Option<i32>,
4695        #[prost(message, optional, tag = "2")]
4696        pub forward: ::core::option::Option<super::CMsgVector>,
4697    }
4698    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4699    pub struct UpdateParticleOrientObsolete {
4700        #[prost(int32, optional, tag = "1")]
4701        pub control_point: ::core::option::Option<i32>,
4702        #[prost(message, optional, tag = "2")]
4703        pub forward: ::core::option::Option<super::CMsgVector>,
4704        #[prost(message, optional, tag = "3")]
4705        pub deprecated_right: ::core::option::Option<super::CMsgVector>,
4706        #[prost(message, optional, tag = "4")]
4707        pub up: ::core::option::Option<super::CMsgVector>,
4708        #[prost(message, optional, tag = "5")]
4709        pub left: ::core::option::Option<super::CMsgVector>,
4710    }
4711    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4712    pub struct UpdateParticleTransform {
4713        #[prost(int32, optional, tag = "1")]
4714        pub control_point: ::core::option::Option<i32>,
4715        #[prost(message, optional, tag = "2")]
4716        pub position: ::core::option::Option<super::CMsgVector>,
4717        #[prost(message, optional, tag = "3")]
4718        pub orientation: ::core::option::Option<super::CMsgQuaternion>,
4719        #[prost(float, optional, tag = "4")]
4720        pub interpolation_interval: ::core::option::Option<f32>,
4721    }
4722    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4723    pub struct UpdateParticleFallback {
4724        #[prost(int32, optional, tag = "1")]
4725        pub control_point: ::core::option::Option<i32>,
4726        #[prost(message, optional, tag = "2")]
4727        pub position: ::core::option::Option<super::CMsgVector>,
4728    }
4729    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4730    pub struct UpdateParticleOffset {
4731        #[prost(int32, optional, tag = "1")]
4732        pub control_point: ::core::option::Option<i32>,
4733        #[prost(message, optional, tag = "2")]
4734        pub origin_offset: ::core::option::Option<super::CMsgVector>,
4735        #[prost(message, optional, tag = "3")]
4736        pub angle_offset: ::core::option::Option<super::CMsgQAngle>,
4737    }
4738    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4739    pub struct UpdateParticleEnt {
4740        #[prost(int32, optional, tag = "1")]
4741        pub control_point: ::core::option::Option<i32>,
4742        #[prost(uint32, optional, tag = "2", default = "16777215")]
4743        pub entity_handle: ::core::option::Option<u32>,
4744        #[prost(int32, optional, tag = "3")]
4745        pub attach_type: ::core::option::Option<i32>,
4746        #[prost(int32, optional, tag = "4")]
4747        pub attachment: ::core::option::Option<i32>,
4748        #[prost(message, optional, tag = "5")]
4749        pub fallback_position: ::core::option::Option<super::CMsgVector>,
4750        #[prost(bool, optional, tag = "6")]
4751        pub include_wearables: ::core::option::Option<bool>,
4752        #[prost(message, optional, tag = "7")]
4753        pub offset_position: ::core::option::Option<super::CMsgVector>,
4754        #[prost(message, optional, tag = "8")]
4755        pub offset_angles: ::core::option::Option<super::CMsgQAngle>,
4756    }
4757    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4758    pub struct UpdateParticleSetFrozen {
4759        #[prost(bool, optional, tag = "1")]
4760        pub set_frozen: ::core::option::Option<bool>,
4761        #[prost(float, optional, tag = "2")]
4762        pub transition_duration: ::core::option::Option<f32>,
4763    }
4764    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4765    pub struct UpdateParticleShouldDraw {
4766        #[prost(bool, optional, tag = "1")]
4767        pub should_draw: ::core::option::Option<bool>,
4768    }
4769    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4770    pub struct ChangeControlPointAttachment {
4771        #[prost(int32, optional, tag = "1")]
4772        pub attachment_old: ::core::option::Option<i32>,
4773        #[prost(int32, optional, tag = "2")]
4774        pub attachment_new: ::core::option::Option<i32>,
4775        #[prost(uint32, optional, tag = "3", default = "16777215")]
4776        pub entity_handle: ::core::option::Option<u32>,
4777    }
4778    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4779    pub struct UpdateEntityPosition {
4780        #[prost(uint32, optional, tag = "1", default = "16777215")]
4781        pub entity_handle: ::core::option::Option<u32>,
4782        #[prost(message, optional, tag = "2")]
4783        pub position: ::core::option::Option<super::CMsgVector>,
4784    }
4785    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4786    pub struct SetParticleFoWProperties {
4787        #[prost(int32, optional, tag = "1")]
4788        pub fow_control_point: ::core::option::Option<i32>,
4789        #[prost(int32, optional, tag = "2")]
4790        pub fow_control_point2: ::core::option::Option<i32>,
4791        #[prost(float, optional, tag = "3")]
4792        pub fow_radius: ::core::option::Option<f32>,
4793    }
4794    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4795    pub struct SetParticleShouldCheckFoW {
4796        #[prost(bool, optional, tag = "1")]
4797        pub check_fow: ::core::option::Option<bool>,
4798    }
4799    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4800    pub struct SetControlPointModel {
4801        #[prost(int32, optional, tag = "1")]
4802        pub control_point: ::core::option::Option<i32>,
4803        #[prost(string, optional, tag = "2")]
4804        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
4805    }
4806    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4807    pub struct SetControlPointSnapshot {
4808        #[prost(int32, optional, tag = "1")]
4809        pub control_point: ::core::option::Option<i32>,
4810        #[prost(string, optional, tag = "2")]
4811        pub snapshot_name: ::core::option::Option<::prost::alloc::string::String>,
4812    }
4813    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4814    pub struct SetParticleText {
4815        #[prost(string, optional, tag = "1")]
4816        pub text: ::core::option::Option<::prost::alloc::string::String>,
4817    }
4818    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4819    pub struct SetTextureAttribute {
4820        #[prost(string, optional, tag = "1")]
4821        pub attribute_name: ::core::option::Option<::prost::alloc::string::String>,
4822        #[prost(string, optional, tag = "2")]
4823        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
4824    }
4825    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4826    pub struct SetSceneObjectGenericFlag {
4827        #[prost(bool, optional, tag = "1")]
4828        pub flag_value: ::core::option::Option<bool>,
4829    }
4830    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4831    pub struct SetSceneObjectTintAndDesat {
4832        #[prost(fixed32, optional, tag = "1")]
4833        pub tint: ::core::option::Option<u32>,
4834        #[prost(float, optional, tag = "2")]
4835        pub desat: ::core::option::Option<f32>,
4836    }
4837    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4838    pub struct ParticleSkipToTime {
4839        #[prost(float, optional, tag = "1")]
4840        pub skip_to_time: ::core::option::Option<f32>,
4841    }
4842    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4843    pub struct ParticleCanFreeze {
4844        #[prost(bool, optional, tag = "1")]
4845        pub can_freeze: ::core::option::Option<bool>,
4846    }
4847    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4848    pub struct ParticleFreezeTransitionOverride {
4849        #[prost(float, optional, tag = "1")]
4850        pub freeze_transition_override: ::core::option::Option<f32>,
4851    }
4852    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4853    pub struct FreezeParticleInvolving {
4854        #[prost(bool, optional, tag = "1")]
4855        pub set_frozen: ::core::option::Option<bool>,
4856        #[prost(float, optional, tag = "2")]
4857        pub transition_duration: ::core::option::Option<f32>,
4858        #[prost(uint32, optional, tag = "3", default = "16777215")]
4859        pub entity_handle: ::core::option::Option<u32>,
4860    }
4861    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4862    pub struct AddModellistOverrideElement {
4863        #[prost(string, optional, tag = "1")]
4864        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
4865        #[prost(float, optional, tag = "2")]
4866        pub spawn_probability: ::core::option::Option<f32>,
4867        #[prost(uint32, optional, tag = "3")]
4868        pub groupid: ::core::option::Option<u32>,
4869    }
4870    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4871    pub struct ClearModellistOverride {
4872        #[prost(uint32, optional, tag = "1")]
4873        pub groupid: ::core::option::Option<u32>,
4874    }
4875    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4876    pub struct SetParticleNamedValueContext {
4877        #[prost(message, repeated, tag = "1")]
4878        pub float_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::FloatContextValue>,
4879        #[prost(message, repeated, tag = "2")]
4880        pub vector_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::VectorContextValue>,
4881        #[prost(message, repeated, tag = "3")]
4882        pub transform_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::TransformContextValue>,
4883        #[prost(message, repeated, tag = "4")]
4884        pub ehandle_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::EHandleContext>,
4885    }
4886    pub mod set_particle_named_value_context {
4887        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4888        pub struct FloatContextValue {
4889            #[prost(uint32, optional, tag = "1")]
4890            pub value_name_hash: ::core::option::Option<u32>,
4891            #[prost(float, optional, tag = "2")]
4892            pub value: ::core::option::Option<f32>,
4893        }
4894        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4895        pub struct VectorContextValue {
4896            #[prost(uint32, optional, tag = "1")]
4897            pub value_name_hash: ::core::option::Option<u32>,
4898            #[prost(message, optional, tag = "2")]
4899            pub value: ::core::option::Option<super::super::CMsgVector>,
4900        }
4901        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4902        pub struct TransformContextValue {
4903            #[prost(uint32, optional, tag = "1")]
4904            pub value_name_hash: ::core::option::Option<u32>,
4905            #[prost(message, optional, tag = "2")]
4906            pub angles: ::core::option::Option<super::super::CMsgQAngle>,
4907            #[prost(message, optional, tag = "3")]
4908            pub translation: ::core::option::Option<super::super::CMsgVector>,
4909        }
4910        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4911        pub struct EHandleContext {
4912            #[prost(uint32, optional, tag = "1")]
4913            pub value_name_hash: ::core::option::Option<u32>,
4914            #[prost(uint32, optional, tag = "2", default = "16777215")]
4915            pub ent_index: ::core::option::Option<u32>,
4916        }
4917    }
4918    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4919    pub struct CreatePhysicsSim {
4920        #[prost(string, optional, tag = "1")]
4921        pub prop_group_name: ::core::option::Option<::prost::alloc::string::String>,
4922        #[prost(bool, optional, tag = "2")]
4923        pub use_high_quality_simulation: ::core::option::Option<bool>,
4924        #[prost(uint32, optional, tag = "3")]
4925        pub max_particle_count: ::core::option::Option<u32>,
4926    }
4927    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4928    pub struct DestroyPhysicsSim {}
4929    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4930    pub struct SetVData {
4931        #[prost(string, optional, tag = "1")]
4932        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
4933    }
4934    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4935    pub struct SetMaterialOverride {
4936        #[prost(string, optional, tag = "1")]
4937        pub material_name: ::core::option::Option<::prost::alloc::string::String>,
4938        #[prost(bool, optional, tag = "2")]
4939        pub include_children: ::core::option::Option<bool>,
4940    }
4941    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4942    pub struct AddFan {
4943        #[prost(bool, optional, tag = "1")]
4944        pub active: ::core::option::Option<bool>,
4945        #[prost(message, optional, tag = "2")]
4946        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
4947        #[prost(message, optional, tag = "3")]
4948        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
4949        #[prost(message, optional, tag = "4")]
4950        pub fan_origin: ::core::option::Option<super::CMsgVector>,
4951        #[prost(message, optional, tag = "5")]
4952        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
4953        #[prost(message, optional, tag = "6")]
4954        pub fan_direction: ::core::option::Option<super::CMsgVector>,
4955        #[prost(float, optional, tag = "7")]
4956        pub force: ::core::option::Option<f32>,
4957        #[prost(string, optional, tag = "8")]
4958        pub fan_force_curve: ::core::option::Option<::prost::alloc::string::String>,
4959        #[prost(bool, optional, tag = "9")]
4960        pub falloff: ::core::option::Option<bool>,
4961        #[prost(bool, optional, tag = "10")]
4962        pub pull_towards_point: ::core::option::Option<bool>,
4963        #[prost(float, optional, tag = "11")]
4964        pub curve_min_dist: ::core::option::Option<f32>,
4965        #[prost(float, optional, tag = "12")]
4966        pub curve_max_dist: ::core::option::Option<f32>,
4967        #[prost(uint32, optional, tag = "13")]
4968        pub fan_type: ::core::option::Option<u32>,
4969        #[prost(float, optional, tag = "14")]
4970        pub cone_start_radius: ::core::option::Option<f32>,
4971        #[prost(float, optional, tag = "15")]
4972        pub cone_end_radius: ::core::option::Option<f32>,
4973        #[prost(float, optional, tag = "16")]
4974        pub cone_length: ::core::option::Option<f32>,
4975        #[prost(uint32, optional, tag = "17", default = "16777215")]
4976        pub entity_handle: ::core::option::Option<u32>,
4977        #[prost(string, optional, tag = "18")]
4978        pub attachment_name: ::core::option::Option<::prost::alloc::string::String>,
4979    }
4980    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4981    pub struct UpdateFan {
4982        #[prost(bool, optional, tag = "1")]
4983        pub active: ::core::option::Option<bool>,
4984        #[prost(message, optional, tag = "2")]
4985        pub fan_origin: ::core::option::Option<super::CMsgVector>,
4986        #[prost(message, optional, tag = "3")]
4987        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
4988        #[prost(message, optional, tag = "4")]
4989        pub fan_direction: ::core::option::Option<super::CMsgVector>,
4990        #[prost(float, optional, tag = "7")]
4991        pub fan_ramp_ratio: ::core::option::Option<f32>,
4992        #[prost(message, optional, tag = "5")]
4993        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
4994        #[prost(message, optional, tag = "6")]
4995        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
4996    }
4997    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4998    pub struct RemoveFan {}
4999    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5000    pub struct SetParticleClusterGrowth {
5001        #[prost(float, optional, tag = "1")]
5002        pub duration: ::core::option::Option<f32>,
5003        #[prost(message, optional, tag = "2")]
5004        pub origin: ::core::option::Option<super::CMsgVector>,
5005    }
5006}
5007#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5008pub struct CUserMsgHudError {
5009    #[prost(int32, optional, tag = "1")]
5010    pub order_id: ::core::option::Option<i32>,
5011}
5012#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5013pub struct CUserMsgCustomGameEvent {
5014    #[prost(string, optional, tag = "1")]
5015    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
5016    #[prost(bytes = "vec", optional, tag = "2")]
5017    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5018}
5019#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5020pub struct CUserMessageHapticsManagerPulse {
5021    #[prost(int32, optional, tag = "1")]
5022    pub hand_id: ::core::option::Option<i32>,
5023    #[prost(float, optional, tag = "2")]
5024    pub effect_amplitude: ::core::option::Option<f32>,
5025    #[prost(float, optional, tag = "3")]
5026    pub effect_frequency: ::core::option::Option<f32>,
5027    #[prost(float, optional, tag = "4")]
5028    pub effect_duration: ::core::option::Option<f32>,
5029}
5030#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5031pub struct CUserMessageHapticsManagerEffect {
5032    #[prost(int32, optional, tag = "1")]
5033    pub hand_id: ::core::option::Option<i32>,
5034    #[prost(uint32, optional, tag = "2")]
5035    pub effect_name_hash_code: ::core::option::Option<u32>,
5036    #[prost(float, optional, tag = "3")]
5037    pub effect_scale: ::core::option::Option<f32>,
5038}
5039#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5040pub struct CUserMessageAnimStateGraphState {
5041    #[prost(int32, optional, tag = "1")]
5042    pub entity_index: ::core::option::Option<i32>,
5043    #[prost(bytes = "vec", optional, tag = "2")]
5044    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5045}
5046#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5047pub struct CUserMessageUpdateCssClasses {
5048    #[prost(int32, optional, tag = "1")]
5049    pub target_world_panel: ::core::option::Option<i32>,
5050    #[prost(string, optional, tag = "2")]
5051    pub css_classes: ::core::option::Option<::prost::alloc::string::String>,
5052    #[prost(bool, optional, tag = "3")]
5053    pub is_add: ::core::option::Option<bool>,
5054}
5055#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5056pub struct CUserMessageServerFrameTime {
5057    #[prost(float, optional, tag = "1")]
5058    pub frame_time: ::core::option::Option<f32>,
5059}
5060#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5061pub struct CUserMessageLagCompensationError {
5062    #[prost(float, optional, tag = "1")]
5063    pub distance: ::core::option::Option<f32>,
5064}
5065#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5066pub struct CUserMessageRequestDllStatus {
5067    #[prost(string, optional, tag = "1")]
5068    pub dll_action: ::core::option::Option<::prost::alloc::string::String>,
5069    #[prost(bool, optional, tag = "2")]
5070    pub full_report: ::core::option::Option<bool>,
5071}
5072#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5073pub struct CUserMessageRequestUtilAction {
5074    #[prost(int32, optional, tag = "2")]
5075    pub util1: ::core::option::Option<i32>,
5076    #[prost(int32, optional, tag = "3")]
5077    pub util2: ::core::option::Option<i32>,
5078    #[prost(int32, optional, tag = "4")]
5079    pub util3: ::core::option::Option<i32>,
5080    #[prost(int32, optional, tag = "5")]
5081    pub util4: ::core::option::Option<i32>,
5082    #[prost(int32, optional, tag = "6")]
5083    pub util5: ::core::option::Option<i32>,
5084}
5085#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5086pub struct CUserMessageUtilMsgResponse {
5087    #[prost(fixed32, optional, tag = "1")]
5088    pub crc: ::core::option::Option<u32>,
5089    #[prost(int32, optional, tag = "2")]
5090    pub item_count: ::core::option::Option<i32>,
5091    #[prost(fixed32, optional, tag = "3")]
5092    pub crc2: ::core::option::Option<u32>,
5093    #[prost(int32, optional, tag = "4")]
5094    pub item_count2: ::core::option::Option<i32>,
5095    #[prost(int32, repeated, packed = "false", tag = "5")]
5096    pub crc_part: ::prost::alloc::vec::Vec<i32>,
5097    #[prost(int32, repeated, packed = "false", tag = "6")]
5098    pub crc_part2: ::prost::alloc::vec::Vec<i32>,
5099    #[prost(int32, optional, tag = "7")]
5100    pub client_timestamp: ::core::option::Option<i32>,
5101    #[prost(int32, optional, tag = "8")]
5102    pub platform: ::core::option::Option<i32>,
5103    #[prost(message, repeated, tag = "9")]
5104    pub itemdetails: ::prost::alloc::vec::Vec<c_user_message_util_msg_response::ItemDetail>,
5105    #[prost(int32, optional, tag = "10")]
5106    pub itemgroup: ::core::option::Option<i32>,
5107    #[prost(int32, optional, tag = "11")]
5108    pub total_count: ::core::option::Option<i32>,
5109    #[prost(int32, optional, tag = "12")]
5110    pub total_count2: ::core::option::Option<i32>,
5111}
5112pub mod c_user_message_util_msg_response {
5113    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5114    pub struct ItemDetail {
5115        #[prost(int32, optional, tag = "1")]
5116        pub index: ::core::option::Option<i32>,
5117        #[prost(int32, optional, tag = "2")]
5118        pub hash: ::core::option::Option<i32>,
5119        #[prost(int32, optional, tag = "3")]
5120        pub crc: ::core::option::Option<i32>,
5121        #[prost(string, optional, tag = "4")]
5122        pub name: ::core::option::Option<::prost::alloc::string::String>,
5123    }
5124}
5125#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5126pub struct CUserMessageDllStatus {
5127    #[prost(string, optional, tag = "1")]
5128    pub file_report: ::core::option::Option<::prost::alloc::string::String>,
5129    #[prost(string, optional, tag = "2")]
5130    pub command_line: ::core::option::Option<::prost::alloc::string::String>,
5131    #[prost(uint32, optional, tag = "3")]
5132    pub total_files: ::core::option::Option<u32>,
5133    #[prost(uint32, optional, tag = "4")]
5134    pub process_id: ::core::option::Option<u32>,
5135    #[prost(int32, optional, tag = "5")]
5136    pub osversion: ::core::option::Option<i32>,
5137    #[prost(uint64, optional, tag = "6")]
5138    pub client_time: ::core::option::Option<u64>,
5139    #[prost(message, repeated, tag = "7")]
5140    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_dll_status::CvDiagnostic>,
5141    #[prost(message, repeated, tag = "8")]
5142    pub modules: ::prost::alloc::vec::Vec<c_user_message_dll_status::CModule>,
5143}
5144pub mod c_user_message_dll_status {
5145    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5146    pub struct CvDiagnostic {
5147        #[prost(uint32, optional, tag = "1")]
5148        pub id: ::core::option::Option<u32>,
5149        #[prost(uint32, optional, tag = "2")]
5150        pub extended: ::core::option::Option<u32>,
5151        #[prost(uint64, optional, tag = "3")]
5152        pub value: ::core::option::Option<u64>,
5153        #[prost(string, optional, tag = "4")]
5154        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
5155    }
5156    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5157    pub struct CModule {
5158        #[prost(uint64, optional, tag = "1")]
5159        pub base_addr: ::core::option::Option<u64>,
5160        #[prost(string, optional, tag = "2")]
5161        pub name: ::core::option::Option<::prost::alloc::string::String>,
5162        #[prost(uint32, optional, tag = "3")]
5163        pub size: ::core::option::Option<u32>,
5164        #[prost(uint32, optional, tag = "4")]
5165        pub timestamp: ::core::option::Option<u32>,
5166    }
5167}
5168#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5169pub struct CUserMessageRequestInventory {
5170    #[prost(int32, optional, tag = "1")]
5171    pub inventory: ::core::option::Option<i32>,
5172    #[prost(int32, optional, tag = "2")]
5173    pub offset: ::core::option::Option<i32>,
5174    #[prost(int32, optional, tag = "3")]
5175    pub options: ::core::option::Option<i32>,
5176}
5177#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5178pub struct CUserMessageInventoryResponse {
5179    #[prost(fixed32, optional, tag = "1")]
5180    pub crc: ::core::option::Option<u32>,
5181    #[prost(int32, optional, tag = "2")]
5182    pub item_count: ::core::option::Option<i32>,
5183    #[prost(int32, optional, tag = "5")]
5184    pub osversion: ::core::option::Option<i32>,
5185    #[prost(int32, optional, tag = "6")]
5186    pub perf_time: ::core::option::Option<i32>,
5187    #[prost(int32, optional, tag = "7")]
5188    pub client_timestamp: ::core::option::Option<i32>,
5189    #[prost(int32, optional, tag = "8")]
5190    pub platform: ::core::option::Option<i32>,
5191    #[prost(message, repeated, tag = "9")]
5192    pub inventories: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5193    #[prost(message, repeated, tag = "10")]
5194    pub inventories2: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5195    #[prost(message, repeated, tag = "14")]
5196    pub inventories3: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5197    #[prost(int32, optional, tag = "11")]
5198    pub inv_type: ::core::option::Option<i32>,
5199    #[prost(int32, optional, tag = "12")]
5200    pub build_version: ::core::option::Option<i32>,
5201    #[prost(int32, optional, tag = "13")]
5202    pub instance: ::core::option::Option<i32>,
5203    #[prost(int64, optional, tag = "15")]
5204    pub start_time: ::core::option::Option<i64>,
5205}
5206pub mod c_user_message_inventory_response {
5207    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5208    pub struct InventoryDetail {
5209        #[prost(int32, optional, tag = "1")]
5210        pub index: ::core::option::Option<i32>,
5211        #[prost(int64, optional, tag = "2")]
5212        pub primary: ::core::option::Option<i64>,
5213        #[prost(int64, optional, tag = "3")]
5214        pub offset: ::core::option::Option<i64>,
5215        #[prost(int64, optional, tag = "4")]
5216        pub first: ::core::option::Option<i64>,
5217        #[prost(int64, optional, tag = "5")]
5218        pub base: ::core::option::Option<i64>,
5219        #[prost(string, optional, tag = "6")]
5220        pub name: ::core::option::Option<::prost::alloc::string::String>,
5221        #[prost(string, optional, tag = "7")]
5222        pub base_name: ::core::option::Option<::prost::alloc::string::String>,
5223        #[prost(int32, optional, tag = "8")]
5224        pub base_detail: ::core::option::Option<i32>,
5225        #[prost(int32, optional, tag = "9")]
5226        pub base_time: ::core::option::Option<i32>,
5227        #[prost(int32, optional, tag = "10")]
5228        pub base_hash: ::core::option::Option<i32>,
5229    }
5230}
5231#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5232pub struct CUserMessageRequestDiagnostic {
5233    #[prost(message, repeated, tag = "1")]
5234    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_request_diagnostic::Diagnostic>,
5235}
5236pub mod c_user_message_request_diagnostic {
5237    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5238    pub struct Diagnostic {
5239        #[prost(int32, optional, tag = "1")]
5240        pub index: ::core::option::Option<i32>,
5241        #[prost(int64, optional, tag = "2")]
5242        pub offset: ::core::option::Option<i64>,
5243        #[prost(int32, optional, tag = "3")]
5244        pub param: ::core::option::Option<i32>,
5245        #[prost(int32, optional, tag = "4")]
5246        pub length: ::core::option::Option<i32>,
5247        #[prost(int32, optional, tag = "5")]
5248        pub r#type: ::core::option::Option<i32>,
5249        #[prost(int64, optional, tag = "6")]
5250        pub base: ::core::option::Option<i64>,
5251        #[prost(int64, optional, tag = "7")]
5252        pub range: ::core::option::Option<i64>,
5253        #[prost(int64, optional, tag = "8")]
5254        pub extent: ::core::option::Option<i64>,
5255        #[prost(int64, optional, tag = "9")]
5256        pub detail: ::core::option::Option<i64>,
5257        #[prost(string, optional, tag = "10")]
5258        pub name: ::core::option::Option<::prost::alloc::string::String>,
5259        #[prost(string, optional, tag = "11")]
5260        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5261        #[prost(bytes = "vec", optional, tag = "12")]
5262        pub vardetail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5263        #[prost(int32, optional, tag = "13")]
5264        pub context: ::core::option::Option<i32>,
5265    }
5266}
5267#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5268pub struct CUserMessageDiagnosticResponse {
5269    #[prost(message, repeated, tag = "1")]
5270    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_diagnostic_response::Diagnostic>,
5271    #[prost(int32, optional, tag = "2")]
5272    pub build_version: ::core::option::Option<i32>,
5273    #[prost(int32, optional, tag = "3")]
5274    pub instance: ::core::option::Option<i32>,
5275    #[prost(int64, optional, tag = "4")]
5276    pub start_time: ::core::option::Option<i64>,
5277    #[prost(int32, optional, tag = "5")]
5278    pub osversion: ::core::option::Option<i32>,
5279    #[prost(int32, optional, tag = "6")]
5280    pub platform: ::core::option::Option<i32>,
5281}
5282pub mod c_user_message_diagnostic_response {
5283    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5284    pub struct Diagnostic {
5285        #[prost(int32, optional, tag = "1")]
5286        pub index: ::core::option::Option<i32>,
5287        #[prost(int64, optional, tag = "2")]
5288        pub offset: ::core::option::Option<i64>,
5289        #[prost(int32, optional, tag = "3")]
5290        pub param: ::core::option::Option<i32>,
5291        #[prost(int32, optional, tag = "4")]
5292        pub length: ::core::option::Option<i32>,
5293        #[prost(bytes = "vec", optional, tag = "5")]
5294        pub detail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5295        #[prost(int64, optional, tag = "6")]
5296        pub base: ::core::option::Option<i64>,
5297        #[prost(int64, optional, tag = "7")]
5298        pub range: ::core::option::Option<i64>,
5299        #[prost(int32, optional, tag = "8")]
5300        pub r#type: ::core::option::Option<i32>,
5301        #[prost(string, optional, tag = "10")]
5302        pub name: ::core::option::Option<::prost::alloc::string::String>,
5303        #[prost(string, optional, tag = "11")]
5304        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5305        #[prost(bytes = "vec", optional, tag = "12")]
5306        pub backup: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5307        #[prost(int32, optional, tag = "13")]
5308        pub context: ::core::option::Option<i32>,
5309        #[prost(int64, optional, tag = "14")]
5310        pub control: ::core::option::Option<i64>,
5311        #[prost(int64, optional, tag = "15")]
5312        pub augment: ::core::option::Option<i64>,
5313        #[prost(int64, optional, tag = "16")]
5314        pub placebo: ::core::option::Option<i64>,
5315    }
5316}
5317#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5318pub struct CUserMessageExtraUserData {
5319    #[prost(int32, optional, tag = "1")]
5320    pub item: ::core::option::Option<i32>,
5321    #[prost(int64, optional, tag = "2")]
5322    pub value1: ::core::option::Option<i64>,
5323    #[prost(int64, optional, tag = "3")]
5324    pub value2: ::core::option::Option<i64>,
5325    #[prost(bytes = "vec", repeated, tag = "4")]
5326    pub detail1: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5327    #[prost(bytes = "vec", repeated, tag = "5")]
5328    pub detail2: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5329}
5330#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5331pub struct CUserMessageNotifyResponseFound {
5332    #[prost(int32, optional, tag = "1", default = "-1")]
5333    pub ent_index: ::core::option::Option<i32>,
5334    #[prost(string, optional, tag = "2")]
5335    pub rule_name: ::core::option::Option<::prost::alloc::string::String>,
5336    #[prost(string, optional, tag = "3")]
5337    pub response_value: ::core::option::Option<::prost::alloc::string::String>,
5338    #[prost(string, optional, tag = "4")]
5339    pub response_concept: ::core::option::Option<::prost::alloc::string::String>,
5340    #[prost(message, repeated, tag = "5")]
5341    pub criteria: ::prost::alloc::vec::Vec<c_user_message_notify_response_found::Criteria>,
5342    #[prost(uint32, repeated, tag = "6")]
5343    pub int_criteria_names: ::prost::alloc::vec::Vec<u32>,
5344    #[prost(int32, repeated, tag = "7")]
5345    pub int_criteria_values: ::prost::alloc::vec::Vec<i32>,
5346    #[prost(uint32, repeated, tag = "8")]
5347    pub float_criteria_names: ::prost::alloc::vec::Vec<u32>,
5348    #[prost(float, repeated, packed = "false", tag = "9")]
5349    pub float_criteria_values: ::prost::alloc::vec::Vec<f32>,
5350    #[prost(uint32, repeated, tag = "10")]
5351    pub symbol_criteria_names: ::prost::alloc::vec::Vec<u32>,
5352    #[prost(uint32, repeated, tag = "11")]
5353    pub symbol_criteria_values: ::prost::alloc::vec::Vec<u32>,
5354    #[prost(int32, optional, tag = "12")]
5355    pub speak_result: ::core::option::Option<i32>,
5356}
5357pub mod c_user_message_notify_response_found {
5358    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5359    pub struct Criteria {
5360        #[prost(uint32, optional, tag = "1")]
5361        pub name_symbol: ::core::option::Option<u32>,
5362        #[prost(string, optional, tag = "2")]
5363        pub value: ::core::option::Option<::prost::alloc::string::String>,
5364    }
5365}
5366#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5367pub struct CUserMessagePlayResponseConditional {
5368    #[prost(int32, optional, tag = "1", default = "-1")]
5369    pub ent_index: ::core::option::Option<i32>,
5370    #[prost(int32, repeated, packed = "false", tag = "2")]
5371    pub player_slots: ::prost::alloc::vec::Vec<i32>,
5372    #[prost(string, optional, tag = "3")]
5373    pub response: ::core::option::Option<::prost::alloc::string::String>,
5374    #[prost(message, optional, tag = "4")]
5375    pub ent_origin: ::core::option::Option<CMsgVector>,
5376    #[prost(float, optional, tag = "5")]
5377    pub pre_delay: ::core::option::Option<f32>,
5378    #[prost(int32, optional, tag = "6")]
5379    pub mix_priority: ::core::option::Option<i32>,
5380}
5381#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5382#[repr(i32)]
5383pub enum EBaseUserMessages {
5384    UmAchievementEvent = 101,
5385    UmCloseCaption = 102,
5386    UmCloseCaptionDirect = 103,
5387    UmCurrentTimescale = 104,
5388    UmDesiredTimescale = 105,
5389    UmFade = 106,
5390    UmGameTitle = 107,
5391    UmHudMsg = 110,
5392    UmHudText = 111,
5393    UmColoredText = 113,
5394    UmRequestState = 114,
5395    UmResetHud = 115,
5396    UmRumble = 116,
5397    UmSayText = 117,
5398    UmSayText2 = 118,
5399    UmSayTextChannel = 119,
5400    UmShake = 120,
5401    UmShakeDir = 121,
5402    UmWaterShake = 122,
5403    UmTextMsg = 124,
5404    UmScreenTilt = 125,
5405    UmVoiceMask = 128,
5406    UmSendAudio = 130,
5407    UmItemPickup = 131,
5408    UmAmmoDenied = 132,
5409    UmShowMenu = 134,
5410    UmCreditsMsg = 135,
5411    UmCloseCaptionPlaceholder = 142,
5412    UmCameraTransition = 143,
5413    UmAudioParameter = 144,
5414    UmParticleManager = 145,
5415    UmHudError = 146,
5416    UmCustomGameEvent = 148,
5417    UmAnimGraphUpdate = 149,
5418    UmHapticsManagerPulse = 150,
5419    UmHapticsManagerEffect = 151,
5420    UmUpdateCssClasses = 153,
5421    UmServerFrameTime = 154,
5422    UmLagCompensationError = 155,
5423    UmRequestDllStatus = 156,
5424    UmRequestUtilAction = 157,
5425    UmUtilActionResponse = 158,
5426    UmDllStatusResponse = 159,
5427    UmRequestInventory = 160,
5428    UmInventoryResponse = 161,
5429    UmRequestDiagnostic = 162,
5430    UmDiagnosticResponse = 163,
5431    UmExtraUserData = 164,
5432    UmNotifyResponseFound = 165,
5433    UmPlayResponseConditional = 166,
5434    UmMaxBase = 200,
5435}
5436#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5437#[repr(i32)]
5438pub enum EBaseEntityMessages {
5439    EmPlayJingle = 136,
5440    EmScreenOverlay = 137,
5441    EmRemoveAllDecals = 138,
5442    EmPropagateForce = 139,
5443    EmDoSpark = 140,
5444    EmFixAngle = 141,
5445}
5446#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5447#[repr(i32)]
5448pub enum ERollType {
5449    RollNone = -1,
5450    RollStats = 0,
5451    RollCredits = 1,
5452    RollLateJoinLogo = 2,
5453    RollOuttro = 3,
5454}
5455#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5456#[repr(i32)]
5457pub enum ParticleMessage {
5458    GameParticleManagerEventCreate = 0,
5459    GameParticleManagerEventUpdate = 1,
5460    GameParticleManagerEventUpdateForward = 2,
5461    GameParticleManagerEventUpdateOrientation = 3,
5462    GameParticleManagerEventUpdateFallback = 4,
5463    GameParticleManagerEventUpdateEnt = 5,
5464    GameParticleManagerEventUpdateOffset = 6,
5465    GameParticleManagerEventDestroy = 7,
5466    GameParticleManagerEventDestroyInvolving = 8,
5467    GameParticleManagerEventRelease = 9,
5468    GameParticleManagerEventLatency = 10,
5469    GameParticleManagerEventShouldDraw = 11,
5470    GameParticleManagerEventFrozen = 12,
5471    GameParticleManagerEventChangeControlPointAttachment = 13,
5472    GameParticleManagerEventUpdateEntityPosition = 14,
5473    GameParticleManagerEventSetFowProperties = 15,
5474    GameParticleManagerEventSetText = 16,
5475    GameParticleManagerEventSetShouldCheckFow = 17,
5476    GameParticleManagerEventSetControlPointModel = 18,
5477    GameParticleManagerEventSetControlPointSnapshot = 19,
5478    GameParticleManagerEventSetTextureAttribute = 20,
5479    GameParticleManagerEventSetSceneObjectGenericFlag = 21,
5480    GameParticleManagerEventSetSceneObjectTintAndDesat = 22,
5481    GameParticleManagerEventDestroyNamed = 23,
5482    GameParticleManagerEventSkipToTime = 24,
5483    GameParticleManagerEventCanFreeze = 25,
5484    GameParticleManagerEventSetNamedValueContext = 26,
5485    GameParticleManagerEventUpdateTransform = 27,
5486    GameParticleManagerEventFreezeTransitionOverride = 28,
5487    GameParticleManagerEventFreezeInvolving = 29,
5488    GameParticleManagerEventAddModellistOverrideElement = 30,
5489    GameParticleManagerEventClearModellistOverride = 31,
5490    GameParticleManagerEventCreatePhysicsSim = 32,
5491    GameParticleManagerEventDestroyPhysicsSim = 33,
5492    GameParticleManagerEventSetVdata = 34,
5493    GameParticleManagerEventSetMaterialOverride = 35,
5494    GameParticleManagerEventAddFan = 36,
5495    GameParticleManagerEventUpdateFan = 37,
5496    GameParticleManagerEventSetClusterGrowth = 38,
5497    GameParticleManagerEventRemoveFan = 39,
5498}
5499#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5500#[repr(i32)]
5501pub enum EHapticPulseType {
5502    VrHandHapticPulseLight = 0,
5503    VrHandHapticPulseMedium = 1,
5504    VrHandHapticPulseStrong = 2,
5505}