Skip to main content

pogo_masterfile_types/singletons/
types.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct AccessibilitySettings {
6    pub enabled: bool,
7    pub plugin_enabled: bool,
8}
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
11#[serde(rename_all = "camelCase")]
12pub struct AdditiveSceneSettings {
13    pub enabled: bool,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17#[serde(rename_all = "camelCase")]
18pub struct AddressablePokemonSettings {
19    pub addressable_pokemon_ids: [String; 9],
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23#[serde(rename_all = "camelCase")]
24pub struct AddressBookImportSettings {
25    pub is_enabled: bool,
26    pub onboarding_screen_level: u64,
27    pub reprompt_onboarding_for_v1: bool,
28    pub show_opt_out_checkbox: bool,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct AdvancedSettings {
34    pub download_all_assets_enabled: bool,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(rename_all = "camelCase")]
39pub struct CaptureSettings {
40    pub contextual_check_interval_seconds: f64,
41    pub countdown_seconds: u64,
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
45#[serde(rename_all = "camelCase")]
46pub struct ErrorReportingSettings {
47    pub is_enabled: bool,
48    pub max_events_per_sliding_window: u64,
49    pub max_total_events_before_shutdown: String,
50    pub percent_chance_player_sends: f64,
51    pub sliding_window_length_s: u64,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(rename_all = "camelCase")]
56pub struct Incentives {
57    pub incentive_icon_name: String,
58    pub incentive_string_key: String,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(rename_all = "camelCase")]
63pub struct PokemonWithExcludedForms {
64    pub excluded_forms: [String; 1],
65    pub pokemon_id: String,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(rename_all = "camelCase")]
70pub struct PokemonWithExcludedFormsV2 {
71    pub excluded_forms: [String; 19],
72    pub pokemon_id: String,
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(rename_all = "camelCase")]
77pub struct PokemonWithExcludedFormsV3 {
78    pub excluded_forms: [String; 18],
79    pub pokemon_id: String,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(rename_all = "camelCase")]
84pub struct PokemonWithExcludedFormsV4 {
85    pub excluded_forms: [String; 2],
86    pub pokemon_id: String,
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(rename_all = "camelCase")]
91pub struct PokemonWithExcludedFormsV5 {
92    pub excluded_forms: [String; 5],
93    pub pokemon_id: String,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(rename_all = "camelCase")]
98pub struct PokemonWithExcludedFormsV6 {
99    pub excluded_forms: [String; 4],
100    pub pokemon_id: String,
101}
102
103#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(rename_all = "camelCase")]
105pub struct PokemonWithExcludedFormsV7 {
106    pub excluded_forms: [String; 9],
107    pub pokemon_id: String,
108}
109
110#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(rename_all = "camelCase")]
112pub struct PokemonWithExcludedFormsV8 {
113    pub excluded_forms: [String; 3],
114    pub pokemon_id: String,
115}
116
117#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(rename_all = "camelCase")]
119pub struct PokemonWithExcludedFormsV9 {
120    pub excluded_forms: Vec<String>,
121    pub pokemon_id: String,
122}
123
124#[derive(Debug, Clone, Serialize, Deserialize)]
125#[serde(rename_all = "camelCase")]
126pub struct ArPhotoFeatureFlags {
127    pub ar_menu_entry_enabled: i64,
128    pub capture_settings: CaptureSettings,
129    pub download_message_enabled: bool,
130    pub error_reporting_settings: ErrorReportingSettings,
131    pub excluded_pokemon_ids: Vec<String>,
132    pub incentives: [Incentives; 2],
133    pub incentives_enabled: bool,
134    pub is_feature_enabled: bool,
135    pub lapsed_days_cutoff: u64,
136    pub main_menu_entry_enabled: i64,
137    pub new_days_cutoff: u64,
138    pub pokemon_with_excluded_forms: Vec<PokemonWithExcludedFormsV9>,
139    pub pre_login_device_allow_list: [String; 6],
140    pub pre_login_metrics_enabled: i64,
141    pub pre_login_roll_out_ratio: f64,
142    pub reorder_summary: bool,
143    pub share_functionality_enabled: u64,
144    pub share_message_enabled: bool,
145    pub show_sticker: String,
146    pub sign_in_button_enabled: bool,
147}
148
149#[derive(Debug, Clone, Serialize, Deserialize)]
150#[serde(rename_all = "camelCase")]
151pub struct ArTelemetrySettings {
152    pub battery_sampling_interval_ms: u64,
153    pub enable_ardk_telemetry: bool,
154    pub framerate_sampling_interval_ms: u64,
155    pub measure_battery: bool,
156    pub measure_framerate: bool,
157    pub percentage_sessions_to_sample: f64,
158}
159
160#[derive(Debug, Clone, Serialize, Deserialize)]
161#[serde(rename_all = "camelCase")]
162pub struct AssetRefreshProto {
163    pub string_refresh_seconds: u64,
164}
165
166#[derive(Debug, Clone, Serialize, Deserialize)]
167#[serde(rename_all = "camelCase")]
168pub struct AvatarFeatureFlags {
169    pub corndog_enabled: bool,
170}
171
172#[derive(Debug, Clone, Serialize, Deserialize)]
173#[serde(rename_all = "camelCase")]
174pub struct AvatarStoreFooterFlags {
175    pub enabled: bool,
176}
177
178#[derive(Debug, Clone, Serialize, Deserialize)]
179#[serde(rename_all = "camelCase")]
180pub struct AvatarStoreSubcategoryFilteringFlags {
181    pub enabled: bool,
182}
183
184#[derive(Debug, Clone, Serialize, Deserialize)]
185#[serde(rename_all = "camelCase")]
186pub struct BackgroundModeSettings {
187    pub weekly_fitness_goal_level1_distance_km: f64,
188    pub weekly_fitness_goal_level2_distance_km: f64,
189    pub weekly_fitness_goal_level3_distance_km: f64,
190    pub weekly_fitness_goal_level4_distance_km: f64,
191    pub weekly_fitness_goal_reminder_km: f64,
192}
193
194#[derive(Debug, Clone, Serialize, Deserialize)]
195#[serde(rename_all = "camelCase")]
196pub struct FastAttackSettings {}
197
198#[derive(Debug, Clone, Serialize, Deserialize)]
199#[serde(rename_all = "camelCase")]
200pub struct UiCameraAnimationSettings {
201    pub transition_in_duration_seconds: f64,
202    pub transition_interim_delay_seconds: f64,
203    pub transition_out_duration_seconds: f64,
204}
205
206#[derive(Debug, Clone, Serialize, Deserialize)]
207#[serde(rename_all = "camelCase")]
208pub struct CombatAnimationConfiguration {
209    pub fast_attack_settings: FastAttackSettings,
210    pub projected_health_animation_duration_seconds: f64,
211    pub ui_camera_animation_settings: UiCameraAnimationSettings,
212}
213
214#[derive(Debug, Clone, Serialize, Deserialize)]
215#[serde(rename_all = "camelCase")]
216pub struct FastAttackSettingsV2 {
217    pub cross_fade_duration_seconds: f64,
218    pub normalized_start_offset: f64,
219}
220
221#[derive(Debug, Clone, Serialize, Deserialize)]
222#[serde(rename_all = "camelCase")]
223pub struct MaxBattleAnimationConfiguration {
224    pub fast_attack_settings: FastAttackSettingsV2,
225}
226
227#[derive(Debug, Clone, Serialize, Deserialize)]
228#[serde(rename_all = "camelCase")]
229pub struct BattleAnimationSettings {
230    pub combat_animation_configuration: CombatAnimationConfiguration,
231    pub max_battle_animation_configuration: MaxBattleAnimationConfiguration,
232    pub raids_animation_configuration: MaxBattleAnimationConfiguration,
233}
234
235#[derive(Debug, Clone, Serialize, Deserialize)]
236#[serde(rename_all = "camelCase")]
237pub struct BattleHubBadgeSettings {
238    pub combat_hub_displayed_badges: [String; 5],
239}
240
241#[derive(Debug, Clone, Serialize, Deserialize)]
242#[serde(rename_all = "camelCase")]
243pub struct Section {
244    pub main_section: String,
245    pub subsection: [String; 3],
246}
247
248#[derive(Debug, Clone, Serialize, Deserialize)]
249#[serde(rename_all = "camelCase")]
250pub struct SectionGroup {
251    pub section: [String; 3],
252}
253
254#[derive(Debug, Clone, Serialize, Deserialize)]
255#[serde(rename_all = "camelCase")]
256pub struct SectionGroupV2 {
257    pub section: [String; 1],
258}
259
260#[derive(Debug, Clone, Serialize, Deserialize)]
261#[serde(rename_all = "camelCase")]
262pub struct BattleHubOrderSettings {
263    pub section: [Section; 1],
264    pub section_group: (SectionGroup, SectionGroupV2, SectionGroupV2),
265}
266
267#[derive(Debug, Clone, Serialize, Deserialize)]
268#[serde(rename_all = "camelCase")]
269pub struct InputBlockExceptionList {
270    pub allowed_buffered_actions: [String; 1],
271    pub current_action: String,
272}
273
274#[derive(Debug, Clone, Serialize, Deserialize)]
275#[serde(rename_all = "camelCase")]
276pub struct BreadInputBufferPriorityList {
277    pub buffer_blocking_event_type_list: [String; 2],
278    pub event_priority: [String; 2],
279    pub input_block_exception_list: [InputBlockExceptionList; 1],
280    pub priority_event_type_list: [String; 3],
281}
282
283#[derive(Debug, Clone, Serialize, Deserialize)]
284#[serde(rename_all = "camelCase")]
285pub struct CombatInputBufferPriorityList {
286    pub buffer_blocking_event_type_list: [String; 2],
287    pub event_priority: [String; 1],
288    pub priority_event_type_list: [String; 2],
289}
290
291#[derive(Debug, Clone, Serialize, Deserialize)]
292#[serde(rename_all = "camelCase")]
293pub struct InputBlockExceptionListV2 {
294    pub allowed_buffered_actions: [String; 2],
295    pub current_action: String,
296}
297
298#[derive(Debug, Clone, Serialize, Deserialize)]
299#[serde(rename_all = "camelCase")]
300pub struct RaidsInputBufferPriorityList {
301    pub buffer_blocking_event_type_list: [String; 1],
302    pub event_priority: [String; 4],
303    pub input_block_exception_list: [InputBlockExceptionListV2; 1],
304    pub priority_event_type_list: [String; 5],
305}
306
307#[derive(Debug, Clone, Serialize, Deserialize)]
308#[serde(rename_all = "camelCase")]
309pub struct BattleInputBufferSettings {
310    pub bread_input_buffer_priority_list: BreadInputBufferPriorityList,
311    pub combat_input_buffer_priority_list: CombatInputBufferPriorityList,
312    pub raids_input_buffer_priority_list: RaidsInputBufferPriorityList,
313}
314
315#[derive(Debug, Clone, Serialize, Deserialize)]
316#[serde(rename_all = "camelCase")]
317pub struct BattlePartySettings {
318    pub enable_battle_party_saving: bool,
319    pub max_battle_parties: u64,
320    pub overall_parties_cap: u64,
321}
322
323#[derive(Debug, Clone, Serialize, Deserialize)]
324#[serde(rename_all = "camelCase")]
325pub struct BattleSettings {
326    pub attack_server_interval: f64,
327    pub bonus_time_per_ally_seconds: f64,
328    pub boss_energy_regeneration_per_health_lost: f64,
329    pub dodge_damage_reduction_percent: f64,
330    pub dodge_duration_ms: u64,
331    pub enemy_attack_interval: f64,
332    pub energy_delta_per_health_lost: f64,
333    pub maximum_attackers_per_battle: u64,
334    pub maximum_energy: u64,
335    pub minimum_player_level: u64,
336    pub minimum_raid_player_level: u64,
337    pub purified_pokemon_attack_multiplier_vs_shadow: f64,
338    pub retarget_seconds: f64,
339    pub round_duration_seconds: f64,
340    pub same_type_attack_bonus_multiplier: f64,
341    pub shadow_pokemon_attack_bonus_multiplier: f64,
342    pub shadow_pokemon_defense_bonus_multiplier: f64,
343    pub swap_duration_ms: u64,
344}
345
346#[derive(Debug, Clone, Serialize, Deserialize)]
347#[serde(rename_all = "camelCase")]
348pub struct BattleVisualSettings {
349    pub banner_texture_asset: String,
350    pub crowd_texture_asset: String,
351    pub enhancements_enabled: bool,
352}
353
354#[derive(Debug, Clone, Serialize, Deserialize)]
355#[serde(rename_all = "camelCase")]
356pub struct BelugaPokemonWhitelist {
357    pub additional_pokemon_allowed: [String; 2],
358    pub costumes_allowed: [String; 1],
359    pub max_allowed_pokemon_pokedex_number: u64,
360}
361
362#[derive(Debug, Clone, Serialize, Deserialize)]
363#[serde(rename_all = "camelCase")]
364pub struct BestFriendsPlusSettings {
365    pub enabled: bool,
366    pub tutorial_time_cutoff: String,
367}
368
369#[derive(Debug, Clone, Serialize, Deserialize)]
370#[serde(rename_all = "camelCase")]
371pub struct BreadBattleClientSettings {
372    pub bread_battle_min_player_level: u64,
373    pub can_invite_friends_in_person: bool,
374    pub can_invite_friends_remotely: bool,
375    pub fetch_profile_from_social_enabled: bool,
376    pub friend_invite_cutoff_time_sec: u64,
377    pub invite_cooldown_duration_millis: String,
378    pub max_num_friend_invites: u64,
379    pub max_num_friend_invites_per_action: u64,
380    pub max_num_friend_invites_to_bread_dough_lobby_per_action: u64,
381    pub max_players_per_bread_dough_lobby: u64,
382    pub max_players_per_bread_lobby: u64,
383    pub max_players_to_prepare_bread_dough_lobby: u64,
384    pub max_remote_bread_battle_passes_allowed: u64,
385    pub max_remote_players_per_bread_dough_lobby: u64,
386    pub max_remote_players_per_bread_lobby: u64,
387    pub min_players_to_prepare_bread_lobby: u64,
388    pub prepare_bread_lobby_cutoff_ms: u64,
389    pub prepare_bread_lobby_enabled: bool,
390    pub prepare_bread_lobby_solo_ms: u64,
391    pub remote_bread_battle_enabled: bool,
392    pub remote_bread_battle_min_player_level: u64,
393    pub rvn_version: u64,
394}
395
396#[derive(Debug, Clone, Serialize, Deserialize)]
397#[serde(rename_all = "camelCase")]
398pub struct BreadFeatureFlags {
399    pub battle_enabled: bool,
400    pub battle_spawn_mode: String,
401    pub boost_item_enabled: bool,
402    pub bread_post_battle_recovery_enabled: bool,
403    pub can_use_master_ball_post_battle: bool,
404    pub debug_rpc_enabled: bool,
405    pub discovery_enabled: bool,
406    pub enabled: bool,
407    pub minimum_player_level: u64,
408    pub mp_enabled: bool,
409    pub nearby_lobby_counter_enabled: bool,
410    pub power_spot_edits_enabled: bool,
411    pub station_discovery_mode: String,
412}
413
414#[derive(Debug, Clone, Serialize, Deserialize)]
415#[serde(rename_all = "camelCase")]
416pub struct BreadLobbyCounterSettings {
417    pub bread_dough_lobby_max_count_to_update: u64,
418    pub publish_cutoff_time_ms: String,
419    pub show_counter_radius_meters: f64,
420    pub subscribe_s2_level: u64,
421    pub subscription_namespace: String,
422}
423
424#[derive(Debug, Clone, Serialize, Deserialize)]
425#[serde(rename_all = "camelCase")]
426pub struct BreadLobbyUpdateSettings {
427    pub join_publish_cutoff_time_ms: String,
428    pub server_publish_rate_limit_interval_ms: String,
429}
430
431#[derive(Debug, Clone, Serialize, Deserialize)]
432#[serde(rename_all = "camelCase")]
433pub struct Mappings {
434    pub r#move: String,
435    pub r#type: String,
436}
437
438#[derive(Debug, Clone, Serialize, Deserialize)]
439#[serde(rename_all = "camelCase")]
440pub struct BreadMoveMappings {
441    pub mappings: [Mappings; 18],
442}
443
444#[derive(Debug, Clone, Serialize, Deserialize)]
445#[serde(rename_all = "camelCase")]
446pub struct BreadBattleTrainerVisualData {
447    pub x_offset: f64,
448}
449
450#[derive(Debug, Clone, Serialize, Deserialize)]
451#[serde(rename_all = "camelCase")]
452pub struct BreadBattleVisualData {
453    pub scale: f64,
454}
455
456#[derive(Debug, Clone, Serialize, Deserialize)]
457#[serde(rename_all = "camelCase")]
458pub struct BreadEncounterVisiualData {
459    pub camera_distance: f64,
460    pub max_reticle_size: f64,
461    pub scale: f64,
462}
463
464#[derive(Debug, Clone, Serialize, Deserialize)]
465#[serde(rename_all = "camelCase")]
466pub struct VisualData {
467    pub bread_battle_trainer_visual_data: BreadBattleTrainerVisualData,
468    pub bread_battle_visual_data: BreadBattleVisualData,
469    pub bread_encounter_visiual_data: BreadEncounterVisiualData,
470    pub bread_mode: String,
471    pub bread_station_visual_data: BreadBattleVisualData,
472}
473
474#[derive(Debug, Clone, Serialize, Deserialize)]
475#[serde(rename_all = "camelCase")]
476pub struct PokemonFormData {
477    pub pokemon_form: String,
478    pub visual_data: [VisualData; 1],
479}
480
481#[derive(Debug, Clone, Serialize, Deserialize)]
482#[serde(rename_all = "camelCase")]
483pub struct VisualSettings {
484    pub pokemon_form_data: [PokemonFormData; 1],
485    pub pokemon_id: String,
486}
487
488#[derive(Debug, Clone, Serialize, Deserialize)]
489#[serde(rename_all = "camelCase")]
490pub struct BreadBattleTrainerVisualDataV2 {
491    pub x_offset: f64,
492    pub y_offset: f64,
493}
494
495#[derive(Debug, Clone, Serialize, Deserialize)]
496#[serde(rename_all = "camelCase")]
497pub struct VisualDataV2 {
498    pub bread_battle_trainer_visual_data: BreadBattleTrainerVisualDataV2,
499    pub bread_battle_visual_data: BreadBattleVisualData,
500    pub bread_encounter_visiual_data: BreadEncounterVisiualData,
501    pub bread_mode: String,
502    pub bread_station_visual_data: BreadBattleVisualData,
503}
504
505#[derive(Debug, Clone, Serialize, Deserialize)]
506#[serde(rename_all = "camelCase")]
507pub struct BreadBattleVisualDataV2 {
508    pub scale: f64,
509    pub y_offset: f64,
510}
511
512#[derive(Debug, Clone, Serialize, Deserialize)]
513#[serde(rename_all = "camelCase")]
514pub struct VisualDataV3 {
515    pub bread_battle_trainer_visual_data: BreadBattleTrainerVisualDataV2,
516    pub bread_battle_visual_data: BreadBattleVisualDataV2,
517    pub bread_encounter_visiual_data: BreadEncounterVisiualData,
518    pub bread_mode: String,
519    pub bread_station_visual_data: BreadBattleVisualData,
520}
521
522#[derive(Debug, Clone, Serialize, Deserialize)]
523#[serde(rename_all = "camelCase")]
524pub struct PokemonFormDataV2 {
525    pub pokemon_form: String,
526    pub visual_data: (VisualDataV2, VisualDataV3),
527}
528
529#[derive(Debug, Clone, Serialize, Deserialize)]
530#[serde(rename_all = "camelCase")]
531pub struct VisualSettingsV2 {
532    pub pokemon_form_data: [PokemonFormDataV2; 1],
533    pub pokemon_id: String,
534}
535
536#[derive(Debug, Clone, Serialize, Deserialize)]
537#[serde(rename_all = "camelCase")]
538pub struct VisualDataV4 {
539    pub bread_battle_visual_data: BreadBattleVisualData,
540    pub bread_encounter_visiual_data: BreadEncounterVisiualData,
541    pub bread_mode: String,
542    pub bread_station_visual_data: BreadBattleVisualData,
543}
544
545#[derive(Debug, Clone, Serialize, Deserialize)]
546#[serde(rename_all = "camelCase")]
547pub struct PokemonFormDataV3 {
548    pub pokemon_form: String,
549    pub visual_data: (VisualDataV4, VisualData),
550}
551
552#[derive(Debug, Clone, Serialize, Deserialize)]
553#[serde(rename_all = "camelCase")]
554pub struct VisualSettingsV3 {
555    pub pokemon_form_data: [PokemonFormDataV3; 1],
556    pub pokemon_id: String,
557}
558
559#[derive(Debug, Clone, Serialize, Deserialize)]
560#[serde(rename_all = "camelCase")]
561pub struct BreadBattleVisualDataV3 {
562    pub scale: f64,
563    pub x_offset: f64,
564}
565
566#[derive(Debug, Clone, Serialize, Deserialize)]
567#[serde(rename_all = "camelCase")]
568pub struct VisualDataV5 {
569    pub bread_battle_trainer_visual_data: BreadBattleTrainerVisualData,
570    pub bread_battle_visual_data: BreadBattleVisualDataV3,
571    pub bread_encounter_visiual_data: BreadEncounterVisiualData,
572    pub bread_mode: String,
573    pub bread_station_visual_data: BreadBattleVisualDataV3,
574}
575
576#[derive(Debug, Clone, Serialize, Deserialize)]
577#[serde(rename_all = "camelCase")]
578pub struct PokemonFormDataV4 {
579    pub pokemon_form: String,
580    pub visual_data: (VisualDataV4, VisualDataV5),
581}
582
583#[derive(Debug, Clone, Serialize, Deserialize)]
584#[serde(rename_all = "camelCase")]
585pub struct VisualSettingsV4 {
586    pub pokemon_form_data: [PokemonFormDataV4; 1],
587    pub pokemon_id: String,
588}
589
590#[derive(Debug, Clone, Serialize, Deserialize)]
591#[serde(rename_all = "camelCase")]
592pub struct PokemonFormDataV5 {
593    pub pokemon_form: String,
594    pub visual_data: [VisualDataV4; 1],
595}
596
597#[derive(Debug, Clone, Serialize, Deserialize)]
598#[serde(rename_all = "camelCase")]
599pub struct VisualSettingsV5 {
600    pub pokemon_form_data: [PokemonFormDataV5; 1],
601    pub pokemon_id: String,
602}
603
604#[derive(Debug, Clone, Serialize, Deserialize)]
605#[serde(rename_all = "camelCase")]
606pub struct PokemonFormDataV6 {
607    pub visual_data: [VisualDataV4; 1],
608}
609
610#[derive(Debug, Clone, Serialize, Deserialize)]
611#[serde(rename_all = "camelCase")]
612pub struct VisualSettingsV6 {
613    pub pokemon_form_data: [PokemonFormDataV6; 1],
614    pub pokemon_id: String,
615}
616
617#[derive(Debug, Clone, Serialize, Deserialize)]
618#[serde(rename_all = "camelCase")]
619pub struct PokemonFormDataV7 {
620    pub visual_data: [VisualData; 1],
621}
622
623#[derive(Debug, Clone, Serialize, Deserialize)]
624#[serde(rename_all = "camelCase")]
625pub struct VisualSettingsV7 {
626    pub pokemon_form_data: [PokemonFormDataV7; 1],
627    pub pokemon_id: String,
628}
629
630#[derive(Debug, Clone, Serialize, Deserialize)]
631#[serde(rename_all = "camelCase")]
632pub struct VisualDataV6 {
633    pub bread_battle_visual_data: BreadBattleVisualDataV2,
634    pub bread_encounter_visiual_data: BreadEncounterVisiualData,
635    pub bread_mode: String,
636    pub bread_station_visual_data: BreadBattleVisualData,
637}
638
639#[derive(Debug, Clone, Serialize, Deserialize)]
640#[serde(rename_all = "camelCase")]
641pub struct PokemonFormDataV8 {
642    pub visual_data: [VisualDataV6; 1],
643}
644
645#[derive(Debug, Clone, Serialize, Deserialize)]
646#[serde(rename_all = "camelCase")]
647pub struct VisualSettingsV8 {
648    pub pokemon_form_data: [PokemonFormDataV8; 1],
649    pub pokemon_id: String,
650}
651
652#[derive(Debug, Clone, Serialize, Deserialize)]
653#[serde(rename_all = "camelCase")]
654pub struct VisualDataV7 {
655    pub bread_battle_trainer_visual_data: BreadBattleTrainerVisualData,
656    pub bread_battle_visual_data: BreadBattleVisualDataV2,
657    pub bread_encounter_visiual_data: BreadEncounterVisiualData,
658    pub bread_mode: String,
659    pub bread_station_visual_data: BreadBattleVisualData,
660}
661
662#[derive(Debug, Clone, Serialize, Deserialize)]
663#[serde(rename_all = "camelCase")]
664pub struct PokemonFormDataV9 {
665    pub pokemon_form: String,
666    pub visual_data: [VisualDataV7; 1],
667}
668
669#[derive(Debug, Clone, Serialize, Deserialize)]
670#[serde(rename_all = "camelCase")]
671pub struct VisualSettingsV9 {
672    pub pokemon_form_data: [PokemonFormDataV9; 1],
673    pub pokemon_id: String,
674}
675
676#[derive(Debug, Clone, Serialize, Deserialize)]
677#[serde(rename_all = "camelCase")]
678pub struct BreadEncounterVisiualDataV2 {
679    pub camera_distance: f64,
680    pub scale: f64,
681}
682
683#[derive(Debug, Clone, Serialize, Deserialize)]
684#[serde(rename_all = "camelCase")]
685pub struct VisualDataV8 {
686    pub bread_battle_visual_data: BreadBattleVisualData,
687    pub bread_encounter_visiual_data: BreadEncounterVisiualDataV2,
688    pub bread_mode: String,
689    pub bread_station_visual_data: BreadBattleVisualData,
690}
691
692#[derive(Debug, Clone, Serialize, Deserialize)]
693#[serde(rename_all = "camelCase")]
694pub struct PokemonFormDataV10 {
695    pub visual_data: [VisualDataV8; 1],
696}
697
698#[derive(Debug, Clone, Serialize, Deserialize)]
699#[serde(rename_all = "camelCase")]
700pub struct VisualSettingsV10 {
701    pub pokemon_form_data: [PokemonFormDataV10; 1],
702    pub pokemon_id: String,
703}
704
705#[derive(Debug, Clone, Serialize, Deserialize)]
706#[serde(rename_all = "camelCase")]
707pub struct BreadBattleBossVisualData {
708    pub scale: f64,
709    pub x_offset: f64,
710    pub y_offset: f64,
711}
712
713#[derive(Debug, Clone, Serialize, Deserialize)]
714#[serde(rename_all = "camelCase")]
715pub struct VisualDataV9 {
716    pub bread_battle_boss_visual_data: BreadBattleBossVisualData,
717    pub bread_mode: u64,
718}
719
720#[derive(Debug, Clone, Serialize, Deserialize)]
721#[serde(rename_all = "camelCase")]
722pub struct PokemonFormDataV11 {
723    pub pokemon_form: String,
724    pub visual_data: [VisualDataV9; 1],
725}
726
727#[derive(Debug, Clone, Serialize, Deserialize)]
728#[serde(rename_all = "camelCase")]
729pub struct VisualSettingsV11 {
730    pub pokemon_form_data: [PokemonFormDataV11; 1],
731    pub pokemon_id: String,
732}
733
734#[derive(Debug, Clone, Serialize, Deserialize)]
735#[serde(rename_all = "camelCase")]
736pub struct BreadBattleTrainerVisualDataV3 {
737    pub x_offset: f64,
738    pub y_offset: Option<f64>,
739}
740
741#[derive(Debug, Clone, Serialize, Deserialize)]
742#[serde(rename_all = "camelCase")]
743pub struct BreadBattleVisualDataV4 {
744    pub scale: f64,
745    pub x_offset: Option<f64>,
746    pub y_offset: Option<f64>,
747}
748
749#[derive(Debug, Clone, Serialize, Deserialize)]
750#[serde(rename_all = "camelCase")]
751pub struct BreadEncounterVisiualDataV3 {
752    pub camera_distance: f64,
753    pub max_reticle_size: Option<f64>,
754    pub scale: f64,
755}
756
757#[derive(Debug, Clone, Serialize, Deserialize)]
758#[serde(untagged)]
759pub enum BreadModeValue {
760    String(String),
761    StringV2(String),
762    StringV3(String),
763    StringV4(String),
764    StringV5(String),
765    StringV6(String),
766    StringV7(String),
767    StringV8(String),
768    StringV9(String),
769    StringV10(String),
770    StringV11(String),
771    StringV12(String),
772    StringV13(String),
773    StringV14(String),
774    StringV15(String),
775    StringV16(String),
776    StringV17(String),
777    StringV18(String),
778    StringV19(String),
779    StringV20(String),
780    StringV21(String),
781    StringV22(String),
782    StringV23(String),
783    StringV24(String),
784    StringV25(String),
785    StringV26(String),
786    StringV27(String),
787    StringV28(String),
788    StringV29(String),
789    StringV30(String),
790    StringV31(String),
791    StringV32(String),
792    StringV33(String),
793    StringV34(String),
794    StringV35(String),
795    StringV36(String),
796    StringV37(String),
797    StringV38(String),
798    StringV39(String),
799    StringV40(String),
800    StringV41(String),
801    StringV42(String),
802    StringV43(String),
803    StringV44(String),
804    StringV45(String),
805    StringV46(String),
806    StringV47(String),
807    StringV48(String),
808    StringV49(String),
809    StringV50(String),
810    StringV51(String),
811    StringV52(String),
812    StringV53(String),
813    StringV54(String),
814    StringV55(String),
815    StringV56(String),
816    StringV57(String),
817    StringV58(String),
818    StringV59(String),
819    StringV60(String),
820    StringV61(String),
821    StringV62(String),
822    StringV63(String),
823    StringV64(String),
824    StringV65(String),
825    StringV66(String),
826    StringV67(String),
827    StringV68(String),
828    StringV69(String),
829    StringV70(String),
830    StringV71(String),
831    StringV72(String),
832    Uint(u64),
833}
834
835#[derive(Debug, Clone, Serialize, Deserialize)]
836#[serde(rename_all = "camelCase")]
837pub struct BreadStationVisualData {
838    pub scale: f64,
839    pub x_offset: Option<f64>,
840}
841
842#[derive(Debug, Clone, Serialize, Deserialize)]
843#[serde(rename_all = "camelCase")]
844pub struct VisualDataV10 {
845    pub bread_battle_boss_visual_data: Option<BreadBattleBossVisualData>,
846    pub bread_battle_trainer_visual_data: Option<BreadBattleTrainerVisualDataV3>,
847    pub bread_battle_visual_data: Option<BreadBattleVisualDataV4>,
848    pub bread_encounter_visiual_data: Option<BreadEncounterVisiualDataV3>,
849    pub bread_mode: BreadModeValue,
850    pub bread_station_visual_data: Option<BreadStationVisualData>,
851}
852
853#[derive(Debug, Clone, Serialize, Deserialize)]
854#[serde(rename_all = "camelCase")]
855pub struct PokemonFormDataV12 {
856    pub pokemon_form: Option<String>,
857    pub visual_data: Vec<VisualDataV10>,
858}
859
860#[derive(Debug, Clone, Serialize, Deserialize)]
861#[serde(rename_all = "camelCase")]
862pub struct VisualSettingsV12 {
863    pub pokemon_form_data: [PokemonFormDataV12; 1],
864    pub pokemon_id: String,
865}
866
867#[derive(Debug, Clone, Serialize, Deserialize)]
868#[serde(rename_all = "camelCase")]
869pub struct BreadPokemonScalingSettings {
870    pub visual_settings: Vec<VisualSettingsV12>,
871}
872
873#[derive(Debug, Clone, Serialize, Deserialize)]
874#[serde(rename_all = "camelCase")]
875pub struct AllowedSourdoughPokemon {
876    pub bread_mode: String,
877    pub form: [String; 1],
878    pub pokemon_id: String,
879}
880
881#[derive(Debug, Clone, Serialize, Deserialize)]
882#[serde(rename_all = "camelCase")]
883pub struct AllowedSourdoughPokemonV2 {
884    pub bread_mode: String,
885    pub form: [String; 2],
886    pub pokemon_id: String,
887}
888
889#[derive(Debug, Clone, Serialize, Deserialize)]
890#[serde(rename_all = "camelCase")]
891pub struct AllowedSourdoughPokemonV3 {
892    pub bread_mode: String,
893    pub form: Vec<String>,
894    pub pokemon_id: String,
895}
896
897#[derive(Debug, Clone, Serialize, Deserialize)]
898#[serde(rename_all = "camelCase")]
899pub struct BreadBattleAvailability {
900    pub bread_battle_availability_end_minute: u64,
901    pub bread_battle_availability_start_minute: u64,
902}
903
904#[derive(Debug, Clone, Serialize, Deserialize)]
905#[serde(rename_all = "camelCase")]
906pub struct BreadSettings {
907    pub allowed_sourdough_pokemon: Vec<AllowedSourdoughPokemonV3>,
908    pub bread_battle_availability: BreadBattleAvailability,
909    pub max_range_for_nearby_state_meters: u64,
910    pub max_stationed_pokemon: u64,
911    pub max_stationed_pokemon_display_count: u64,
912    pub max_stationed_pokemon_per_player: u64,
913    pub min_ms_to_receive_release_station_rewards: String,
914    pub num_stationed_pokemon_to_return: u64,
915    pub show_timer_when_far: bool,
916    pub start_of_day_offset_duration_ms: String,
917    pub tutorial_max_boost_item_duration_s: f64,
918}
919
920#[derive(Debug, Clone, Serialize, Deserialize)]
921#[serde(rename_all = "camelCase")]
922pub struct BuddyEncounterCameoSettings {
923    pub buddy_invasion_encounter_cameo_chance_percent: f64,
924    pub buddy_quest_encounter_cameo_chance_percent: f64,
925    pub buddy_raid_encounter_cameo_chance_percent: f64,
926    pub buddy_wild_encounter_cameo_chance_percent: f64,
927}
928
929#[derive(Debug, Clone, Serialize, Deserialize)]
930#[serde(rename_all = "camelCase")]
931pub struct BuddyHungerSettings {
932    pub cooldown_duration_ms: String,
933    pub decay_duration_after_full_ms: String,
934    pub decay_points_per_bucket: u64,
935    pub milliseconds_per_bucket: String,
936    pub num_hunger_points_required_for_full: u64,
937}
938
939#[derive(Debug, Clone, Serialize, Deserialize)]
940#[serde(rename_all = "camelCase")]
941pub struct BuddyInteractionSettings {
942    pub feed_item_whitelist: [String; 6],
943}
944
945#[derive(Debug, Clone, Serialize, Deserialize)]
946#[serde(rename_all = "camelCase")]
947pub struct BuddySwapSettings {
948    pub enable_quick_swap: bool,
949    pub enable_swap_free_evolution: bool,
950    pub max_swaps_per_day: u64,
951}
952
953#[derive(Debug, Clone, Serialize, Deserialize)]
954#[serde(rename_all = "camelCase")]
955pub struct BuddyWalkSettings {
956    pub km_required_per_affection_point: f64,
957}
958
959#[derive(Debug, Clone, Serialize, Deserialize)]
960#[serde(rename_all = "camelCase")]
961pub struct BulkHealingSettings {
962    pub enabled: bool,
963    pub max_pokemons_per_heal: u64,
964}
965
966#[derive(Debug, Clone, Serialize, Deserialize)]
967#[serde(rename_all = "camelCase")]
968pub struct ButterflyCollectorSettings {
969    pub daily_progress_from_inventory: u64,
970    pub enabled: bool,
971    pub region: [String; 18],
972    pub version: u64,
973}
974
975#[derive(Debug, Clone, Serialize, Deserialize)]
976#[serde(rename_all = "camelCase")]
977pub struct CampfireSettings {
978    pub ar_catch_card_enabled: bool,
979    pub ar_catch_card_share_campfire_enabled: bool,
980    pub campfire_enabled: bool,
981    pub catch_card_available_seconds: u64,
982    pub catch_card_enabled: bool,
983    pub catch_card_share_campfire_enabled: bool,
984    pub map_buttons_enabled: bool,
985    pub meetup_query_timer_ms: String,
986    pub passwordless_login_enabled: bool,
987}
988
989#[derive(Debug, Clone, Serialize, Deserialize)]
990#[serde(rename_all = "camelCase")]
991pub struct CatchRadiusMultiplierSettings {
992    pub catch_radius_multiplier_settings_enabled: bool,
993}
994
995#[derive(Debug, Clone, Serialize, Deserialize)]
996#[serde(rename_all = "camelCase")]
997pub struct CombatCompetitiveSeasonSettings {
998    pub ranking_adjustment_percentage: f64,
999    pub rating_adjustment_percentage: f64,
1000    pub season_end_time_timestamp: [String; 31],
1001}
1002
1003#[derive(Debug, Clone, Serialize, Deserialize)]
1004#[serde(rename_all = "camelCase")]
1005pub struct CombatLeagueSettings {
1006    pub combat_league_template_id: [String; 3],
1007}
1008
1009#[derive(Debug, Clone, Serialize, Deserialize)]
1010#[serde(rename_all = "camelCase")]
1011pub struct ClockSyncSettings {
1012    pub enabled: bool,
1013    pub sync_attempt_count: u64,
1014}
1015
1016#[derive(Debug, Clone, Serialize, Deserialize)]
1017#[serde(rename_all = "camelCase")]
1018pub struct CombatFeatureFlags {
1019    pub real_device_time_enabled: bool,
1020}
1021
1022#[derive(Debug, Clone, Serialize, Deserialize)]
1023#[serde(rename_all = "camelCase")]
1024pub struct CombatSettings {
1025    pub blocked_flyout_duration_turns: u64,
1026    pub change_pokemon_duration_seconds: f64,
1027    pub charge_attack_bonus_multiplier: f64,
1028    pub charge_score_base: f64,
1029    pub charge_score_excellent: f64,
1030    pub charge_score_great: f64,
1031    pub charge_score_nice: f64,
1032    pub clock_sync_settings: ClockSyncSettings,
1033    pub combat_experiment: Vec<serde_json::Value>,
1034    pub combat_feature_flags: CombatFeatureFlags,
1035    pub defender_minigame_multiplier: f64,
1036    pub defense_bonus_multiplier: f64,
1037    pub fast_attack_bonus_multiplier: f64,
1038    pub flyin_duration_turns: u64,
1039    pub max_energy: u64,
1040    pub minigame_bonus_base_multiplier: f64,
1041    pub minigame_bonus_variable_multiplier: f64,
1042    pub minigame_duration_seconds: f64,
1043    pub minigame_submit_score_duration_seconds: f64,
1044    pub normal_effective_flyout_duration_turns: u64,
1045    pub not_very_effective_flyout_duration_turns: u64,
1046    pub ob_combat_settings_not_pushed_bool2: bool,
1047    pub purified_pokemon_attack_multiplier_vs_shadow: f64,
1048    pub quick_swap_cooldown_duration_seconds: f64,
1049    pub round_duration_seconds: f64,
1050    pub same_type_attack_bonus_multiplier: f64,
1051    pub shadow_pokemon_attack_bonus_multiplier: f64,
1052    pub shadow_pokemon_defense_bonus_multiplier: f64,
1053    pub show_quick_swap_buttons_during_countdown: bool,
1054    pub super_effective_flyout_duration_turns: u64,
1055    pub turn_duration_seconds: f64,
1056}
1057
1058#[derive(Debug, Clone, Serialize, Deserialize)]
1059#[serde(rename_all = "camelCase")]
1060pub struct CombatStatStageSettings {
1061    pub attack_buff_multiplier: [f64; 9],
1062    pub defense_buff_multiplier: [f64; 9],
1063    pub maximum_stat_stage: u64,
1064    pub minimum_stat_stage: i64,
1065}
1066
1067#[derive(Debug, Clone, Serialize, Deserialize)]
1068#[serde(rename_all = "camelCase")]
1069pub struct ContestLengthThresholds {
1070    pub length: String,
1071    pub max_duration_ms: String,
1072    pub min_duration_ms: String,
1073}
1074
1075#[derive(Debug, Clone, Serialize, Deserialize)]
1076#[serde(rename_all = "camelCase")]
1077pub struct ContestMetric {
1078    pub pokemon_metric: String,
1079    pub ranking_standard: String,
1080}
1081
1082#[derive(Debug, Clone, Serialize, Deserialize)]
1083#[serde(rename_all = "camelCase")]
1084pub struct ContestLimits {
1085    pub contest_metric: ContestMetric,
1086    pub contest_occurrence: String,
1087    pub per_contest_max_entries: u64,
1088}
1089
1090#[derive(Debug, Clone, Serialize, Deserialize)]
1091#[serde(rename_all = "camelCase")]
1092pub struct PokemonSize {
1093    pub height_coefficient: f64,
1094    pub iv_coefficient: f64,
1095    pub weight_coefficient: f64,
1096    pub xxl_adjustment_factor: f64,
1097}
1098
1099#[derive(Debug, Clone, Serialize, Deserialize)]
1100#[serde(rename_all = "camelCase")]
1101pub struct ContestScoreCoefficient {
1102    pub pokemon_size: PokemonSize,
1103}
1104
1105#[derive(Debug, Clone, Serialize, Deserialize)]
1106#[serde(rename_all = "camelCase")]
1107pub struct ContestWarmupAndCooldownDurationsMs {
1108    pub contest_occurrence: String,
1109    pub cycle_cooldown_duration_ms: String,
1110    pub cycle_warmup_duration_ms: String,
1111}
1112
1113#[derive(Debug, Clone, Serialize, Deserialize)]
1114#[serde(rename_all = "camelCase")]
1115pub struct ContestSettings {
1116    pub catch_prompt_timeout_ms: f64,
1117    pub contest_length_thresholds: [ContestLengthThresholds; 3],
1118    pub contest_limits: [ContestLimits; 1],
1119    pub contest_score_coefficient: [ContestScoreCoefficient; 1],
1120    pub contest_warmup_and_cooldown_durations_ms: [ContestWarmupAndCooldownDurationsMs; 2],
1121    pub default_contest_max_entries: u64,
1122    pub default_cycle_cooldown_duration_ms: String,
1123    pub default_cycle_warmup_duration_ms: String,
1124    pub is_anticheat_removal_enabled: bool,
1125    pub is_contest_in_nearby_menu: bool,
1126    pub is_feature_enabled: bool,
1127    pub is_friends_display_enabled: bool,
1128    pub is_normalized_score_to_species: bool,
1129    pub is_pokemon_scalar_enabled: bool,
1130    pub is_v2_feature_enabled: bool,
1131    pub is_v2_focuses_enabled: bool,
1132    pub max_catch_prompt_range: f64,
1133    pub min_cooldown_before_season_end_ms: String,
1134    pub player_contest_max_entries: u64,
1135}
1136
1137#[derive(Debug, Clone, Serialize, Deserialize)]
1138#[serde(rename_all = "camelCase")]
1139pub struct PokemonFormAppraisalOverrides {
1140    pub add_to_start: bool,
1141    pub appraisal_key: String,
1142    pub form: String,
1143    pub id: String,
1144}
1145
1146#[derive(Debug, Clone, Serialize, Deserialize)]
1147#[serde(rename_all = "camelCase")]
1148pub struct ConversationSettings {
1149    pub pokemon_form_appraisal_overrides: [PokemonFormAppraisalOverrides; 8],
1150}
1151
1152#[derive(Debug, Clone, Serialize, Deserialize)]
1153#[serde(rename_all = "camelCase")]
1154pub struct CrossGameSocialSettings {
1155    pub niantic_profile_enabled_override_level: bool,
1156    pub online_status_enabled_override_level: bool,
1157}
1158
1159#[derive(Debug, Clone, Serialize, Deserialize)]
1160#[serde(rename_all = "camelCase")]
1161pub struct LootItem {
1162    pub count: u64,
1163    pub item: String,
1164}
1165
1166#[derive(Debug, Clone, Serialize, Deserialize)]
1167#[serde(rename_all = "camelCase")]
1168pub struct PokeballGrant {
1169    pub loot_item: [LootItem; 1],
1170}
1171
1172#[derive(Debug, Clone, Serialize, Deserialize)]
1173#[serde(rename_all = "camelCase")]
1174pub struct DailyAdventureIncenseSettings {
1175    pub enabled: bool,
1176    pub enable_push_notification: bool,
1177    pub local_delivery_time: String,
1178    pub pokeball_grant: PokeballGrant,
1179    pub pokeball_grant_threshold: u64,
1180    pub push_notification_hour_of_day: u64,
1181}
1182
1183#[derive(Debug, Clone, Serialize, Deserialize)]
1184#[serde(rename_all = "camelCase")]
1185pub struct DeepLinkingSettings {
1186    pub actions_that_execute_before_map_loads: (String, u64),
1187    pub actions_that_ignore_min_level: (String, u64),
1188    pub ios_action_button_enabled: bool,
1189    pub min_player_level_for_external_link: u64,
1190    pub min_player_level_for_notification_link: u64,
1191}
1192
1193#[derive(Debug, Clone, Serialize, Deserialize)]
1194#[serde(rename_all = "camelCase")]
1195pub struct EggHatchImprovementsSettings {
1196    pub boot_delay_ms: u64,
1197    pub feature_enabled: bool,
1198    pub raid_invite_hard_cap_ms: u64,
1199}
1200
1201#[derive(Debug, Clone, Serialize, Deserialize)]
1202#[serde(rename_all = "camelCase")]
1203pub struct EncounterSettings {
1204    pub ar_close_proximity_threshold: f64,
1205    pub ar_low_awareness_threshold: f64,
1206    pub ar_plus_mode_enabled: bool,
1207    pub enable_item_selection_slider_v2: bool,
1208    pub excellent_throw_threshold: f64,
1209    pub great_throw_threshold: f64,
1210    pub milestone_threshold: u64,
1211    pub nice_throw_threshold: f64,
1212    pub spin_bonus_threshold: f64,
1213}
1214
1215#[derive(Debug, Clone, Serialize, Deserialize)]
1216#[serde(rename_all = "camelCase")]
1217pub struct ErrorReportingSettingsV2 {
1218    pub event_sample_rate: f64,
1219    pub is_enabled: bool,
1220    pub max_events_per_sliding_window: u64,
1221    pub max_total_events_before_shutdown: String,
1222    pub percent_chance_player_sends: f64,
1223    pub sliding_window_length_s: u64,
1224}
1225
1226#[derive(Debug, Clone, Serialize, Deserialize)]
1227#[serde(rename_all = "camelCase")]
1228pub struct EventPlannerPopularNotificationSettings {
1229    pub battle_levels: [u64; 9],
1230    pub first_scan_offset_seconds: String,
1231    pub max_notif_per_day: u64,
1232    pub nearby_poi_threshold: u64,
1233    pub notif_delay_intervals_seconds: String,
1234    pub rural_threshold: u64,
1235    pub scan_interval_seconds: String,
1236    pub timeslot_buffer_window_seconds: String,
1237    pub urban_threshold: u64,
1238}
1239
1240#[derive(Debug, Clone, Serialize, Deserialize)]
1241#[serde(rename_all = "camelCase")]
1242pub struct ExternalAddressableAssetsSettings {}
1243
1244#[derive(Debug, Clone, Serialize, Deserialize)]
1245#[serde(rename_all = "camelCase")]
1246pub struct FeatureUnlockLevelSettings {
1247    pub lures_unlock_level: u64,
1248    pub rare_candy_conversion_unlock_level: u64,
1249}
1250
1251#[derive(Debug, Clone, Serialize, Deserialize)]
1252#[serde(rename_all = "camelCase")]
1253pub struct GeotargetedQuestSettings {
1254    pub enable_geotargeted_quests: bool,
1255}
1256
1257#[derive(Debug, Clone, Serialize, Deserialize)]
1258#[serde(rename_all = "camelCase")]
1259pub struct StardustMultiplier {
1260    pub multiplier: f64,
1261    pub random_weight: f64,
1262}
1263
1264#[derive(Debug, Clone, Serialize, Deserialize)]
1265#[serde(rename_all = "camelCase")]
1266pub struct GiftingSettings {
1267    pub enable_gift_to_stardust: bool,
1268    pub flow_polish_enabled: bool,
1269    pub multi_major_reward_ui_enabled: bool,
1270    pub stardust_multiplier: [StardustMultiplier; 3],
1271    pub stardust_per_gift: u64,
1272}
1273
1274#[derive(Debug, Clone, Serialize, Deserialize)]
1275#[serde(rename_all = "camelCase")]
1276pub struct GuiSearchSettings {
1277    pub complete_start_letter_count_per_language: [String; 15],
1278    pub gui_search_enabled: bool,
1279    pub max_number_favorite_searches: u64,
1280    pub max_number_recent_searches: u64,
1281    pub max_query_length: u64,
1282    pub search_help_url: String,
1283}
1284
1285#[derive(Debug, Clone, Serialize, Deserialize)]
1286#[serde(rename_all = "camelCase")]
1287pub struct GymBadgeSettings {
1288    pub battle_winning_score_per_defender_cp: f64,
1289    pub berry_feeding_score: u64,
1290    pub gym_defending_score_per_minute: f64,
1291    pub lose_all_battles_score: u64,
1292    pub pokemon_deploy_score: u64,
1293    pub raid_battle_winning_score: u64,
1294    pub target: [u64; 3],
1295}
1296
1297#[derive(Debug, Clone, Serialize, Deserialize)]
1298#[serde(rename_all = "camelCase")]
1299pub struct HapticsSettings {
1300    pub advanced_haptics_enabled: bool,
1301}
1302
1303#[derive(Debug, Clone, Serialize, Deserialize)]
1304#[serde(rename_all = "camelCase")]
1305pub struct IapSettings {
1306    pub daily_defender_bonus_currency: [String; 2],
1307    pub daily_defender_bonus_max_defenders: u64,
1308    pub daily_defender_bonus_per_pokemon: [u64; 2],
1309    pub min_time_between_claims_ms: String,
1310    pub prohibit_purchase_in_test_envirnment: bool,
1311}
1312
1313#[derive(Debug, Clone, Serialize, Deserialize)]
1314#[serde(rename_all = "camelCase")]
1315pub struct IbfcLightweightSettings {
1316    pub default_defense_multiplier: f64,
1317    pub default_defense_override: f64,
1318    pub default_energy_charge_override: f64,
1319    pub default_stamina_override: f64,
1320}
1321
1322#[derive(Debug, Clone, Serialize, Deserialize)]
1323#[serde(rename_all = "camelCase")]
1324pub struct ImpressionTrackingSettings {
1325    pub approach_gym_tracking_enabled: bool,
1326    pub approach_raid_tracking_enabled: bool,
1327    pub full_screen_ad_view_tracking_enabled: bool,
1328    pub impression_tracking_enabled: bool,
1329    pub pokestop_spinner_interaction_tracking_enabled: bool,
1330}
1331
1332#[derive(Debug, Clone, Serialize, Deserialize)]
1333#[serde(rename_all = "camelCase")]
1334pub struct InAppSurveySettings {
1335    pub survey_poll_frequency_s: u64,
1336}
1337
1338#[derive(Debug, Clone, Serialize, Deserialize)]
1339#[serde(rename_all = "camelCase")]
1340pub struct IncidentPriority {
1341    pub display_type: String,
1342    pub priority: u64,
1343}
1344
1345#[derive(Debug, Clone, Serialize, Deserialize)]
1346#[serde(rename_all = "camelCase")]
1347pub struct IncidentPrioritySettings {
1348    pub incident_priority: [IncidentPriority; 7],
1349}
1350
1351#[derive(Debug, Clone, Serialize, Deserialize)]
1352#[serde(rename_all = "camelCase")]
1353pub struct IncidentVisibilitySettings {
1354    pub hide_incident_for_character: [String; 11],
1355}
1356
1357#[derive(Debug, Clone, Serialize, Deserialize)]
1358#[serde(rename_all = "camelCase")]
1359pub struct BagUpgradeTimerStages {
1360    pub dismiss_stage_secs: f64,
1361}
1362
1363#[derive(Debug, Clone, Serialize, Deserialize)]
1364#[serde(rename_all = "camelCase")]
1365pub struct InventorySettings {
1366    pub bag_upgrade_banner_contexts: [String; 5],
1367    pub bag_upgrade_banner_enabled: bool,
1368    pub bag_upgrade_timer_stages: [BagUpgradeTimerStages; 4],
1369    pub base_bag_items: u64,
1370    pub base_daily_adventure_eggs: u64,
1371    pub base_eggs: u64,
1372    pub base_pokemon: u64,
1373    pub base_postcards: u64,
1374    pub can_raid_pass_overflow_bag_space: bool,
1375    pub easy_incubator_buy_enabled: bool,
1376    pub enable_eggs_not_inventory: bool,
1377    pub lucky_friend_applicator_settings_toggle_enabled: bool,
1378    pub max_bag_items: u64,
1379    pub max_item_boost_duration_ms: String,
1380    pub max_pokemon: u64,
1381    pub max_postcards: u64,
1382    pub max_stone_a_count: u64,
1383    pub max_team_changes: u64,
1384    pub special_egg_overflow_spots: u64,
1385    pub team_change_item_reset_period_in_days: String,
1386}
1387
1388#[derive(Debug, Clone, Serialize, Deserialize)]
1389#[serde(rename_all = "camelCase")]
1390pub struct IrisSocialSettings {
1391    pub add_pokemon_modal_delay_ms: f64,
1392    pub banned_pokedex_ids: [String; 21],
1393    pub combined_shadows_enabled: bool,
1394    pub enable_sqc_guidance: bool,
1395    pub expression_update_broadcast_method: String,
1396    pub ftue_version: String,
1397    pub gameplay_reports_active: bool,
1398    pub ground_focus_guardrail_enabled: bool,
1399    pub ground_focus_guardrail_enter_angle: f64,
1400    pub ground_focus_guardrail_exit_angle: f64,
1401    pub guidance_in_car_threshold: f64,
1402    pub guidance_path_nearby_finish_delay_ms: f64,
1403    pub guidance_path_nearby_finish_distance_meters: f64,
1404    pub iris_social_enabled: bool,
1405    pub iris_social_poi_deactivation_cooldown_ms: String,
1406    pub limited_localization_timeout_duration_ms: String,
1407    pub limited_pokedex_ids: Vec<String>,
1408    pub localization_guidance_path_enabled: bool,
1409    pub localization_timeout_duration_ms: String,
1410    pub location_manager_jpeg_compression_quality: u64,
1411    pub max_boundary_area_sq_meters: f64,
1412    pub max_distance_allow_localization_meters: String,
1413    pub max_num_pokemon_per_player: u64,
1414    pub max_num_pokemon_per_scene: u64,
1415    pub max_time_bg_mode_before_expulsion_ms: String,
1416    pub max_time_no_activity_player_inactive_ms: String,
1417    pub min_boundary_area_sq_meters: f64,
1418    pub pokeball_ping_time_delay_ms: f64,
1419    pub pokemon_expire_after_ms: String,
1420    pub pokemon_spawn_stagger_duration_ms: String,
1421    pub push_gateway_enabled: bool,
1422    pub sunrise_threshold_offset_ms: String,
1423    pub sunset_threshold_offset_ms: String,
1424    pub sun_threshold_check_enabled: bool,
1425    pub use_boundary_vertices_from_data_flow: bool,
1426    pub use_vps_enabled_status: bool,
1427}
1428
1429#[derive(Debug, Clone, Serialize, Deserialize)]
1430#[serde(rename_all = "camelCase")]
1431pub struct EventStep {
1432    pub event: String,
1433    pub step_number: u64,
1434}
1435
1436#[derive(Debug, Clone, Serialize, Deserialize)]
1437#[serde(rename_all = "camelCase")]
1438pub struct EventStepV2 {
1439    pub event: u64,
1440    pub step_number: u64,
1441}
1442
1443#[derive(Debug, Clone, Serialize, Deserialize)]
1444#[serde(untagged)]
1445pub enum EventValue {
1446    String(String),
1447    StringV2(String),
1448    StringV3(String),
1449    StringV4(String),
1450    StringV5(String),
1451    StringV6(String),
1452    StringV7(String),
1453    StringV8(String),
1454    StringV9(String),
1455    StringV10(String),
1456    StringV11(String),
1457    StringV12(String),
1458    StringV13(String),
1459    StringV14(String),
1460    StringV15(String),
1461    StringV16(String),
1462    StringV17(String),
1463    StringV18(String),
1464    StringV19(String),
1465    StringV20(String),
1466    StringV21(String),
1467    StringV22(String),
1468    StringV23(String),
1469    StringV24(String),
1470    Uint(u64),
1471    UintV2(u64),
1472    UintV3(u64),
1473    UintV4(u64),
1474    UintV5(u64),
1475    UintV6(u64),
1476    UintV7(u64),
1477    UintV8(u64),
1478    UintV9(u64),
1479    UintV10(u64),
1480    UintV11(u64),
1481    UintV12(u64),
1482    UintV13(u64),
1483    UintV14(u64),
1484    UintV15(u64),
1485    UintV16(u64),
1486    UintV17(u64),
1487    UintV18(u64),
1488    UintV19(u64),
1489    UintV20(u64),
1490    UintV21(u64),
1491}
1492
1493#[derive(Debug, Clone, Serialize, Deserialize)]
1494#[serde(rename_all = "camelCase")]
1495pub struct EventStepV3 {
1496    pub event: EventValue,
1497    pub step_number: u64,
1498}
1499
1500#[derive(Debug, Clone, Serialize, Deserialize)]
1501#[serde(rename_all = "camelCase")]
1502pub struct IrisSocialUxFunnelSettings {
1503    pub event_step: Vec<EventStepV3>,
1504    pub ux_funnel_version: u64,
1505}
1506
1507#[derive(Debug, Clone, Serialize, Deserialize)]
1508#[serde(rename_all = "camelCase")]
1509pub struct ItemCoinValues {
1510    pub coin_value: f64,
1511    pub item: String,
1512}
1513
1514#[derive(Debug, Clone, Serialize, Deserialize)]
1515#[serde(rename_all = "camelCase")]
1516pub struct ItemCurrencyValues {
1517    pub item_coin_values: [ItemCoinValues; 23],
1518}
1519
1520#[derive(Debug, Clone, Serialize, Deserialize)]
1521#[serde(rename_all = "camelCase")]
1522pub struct CategoryProto {
1523    pub category: [String; 1],
1524    pub category_name: String,
1525}
1526
1527#[derive(Debug, Clone, Serialize, Deserialize)]
1528#[serde(rename_all = "camelCase")]
1529pub struct CategoryProtoV2 {
1530    pub category: [String; 1],
1531    pub category_name: String,
1532    pub sort_order: u64,
1533}
1534
1535#[derive(Debug, Clone, Serialize, Deserialize)]
1536#[serde(rename_all = "camelCase")]
1537pub struct CategoryProtoV3 {
1538    pub category: [String; 3],
1539    pub category_name: String,
1540    pub sort_order: u64,
1541}
1542
1543#[derive(Debug, Clone, Serialize, Deserialize)]
1544#[serde(rename_all = "camelCase")]
1545pub struct CategoryProtoV4 {
1546    pub category: [String; 4],
1547    pub category_name: String,
1548    pub sort_order: u64,
1549}
1550
1551#[derive(Debug, Clone, Serialize, Deserialize)]
1552#[serde(rename_all = "camelCase")]
1553pub struct CategoryProtoV5 {
1554    pub category: [String; 7],
1555    pub category_name: String,
1556    pub sort_order: u64,
1557}
1558
1559#[derive(Debug, Clone, Serialize, Deserialize)]
1560#[serde(rename_all = "camelCase")]
1561pub struct ItemInventoryUpdateSettings {
1562    pub category_proto: (
1563        CategoryProto,
1564        CategoryProtoV2,
1565        CategoryProtoV2,
1566        CategoryProtoV2,
1567        CategoryProtoV3,
1568        CategoryProtoV4,
1569        CategoryProtoV5,
1570        CategoryProtoV3,
1571        CategoryProtoV2,
1572        CategoryProtoV4,
1573        CategoryProtoV2,
1574        CategoryProtoV2,
1575    ),
1576}
1577
1578#[derive(Debug, Clone, Serialize, Deserialize)]
1579#[serde(rename_all = "camelCase")]
1580pub struct JoinRaidViaFriendListSettings {
1581    pub enabled: bool,
1582    pub friend_activities_background_update_period_ms: String,
1583    pub max_battle_enabled: bool,
1584    pub max_battle_min_friendship_score: u64,
1585    pub max_battle_min_player_level: u64,
1586    pub min_friendship_score: u64,
1587    pub min_player_level: u64,
1588}
1589
1590#[derive(Debug, Clone, Serialize, Deserialize)]
1591#[serde(rename_all = "camelCase")]
1592pub struct LanguageSelectorSettings {
1593    pub language_selector_enabled: bool,
1594}
1595
1596#[derive(Debug, Clone, Serialize, Deserialize)]
1597#[serde(rename_all = "camelCase")]
1598pub struct LuckyPokemonSettings {
1599    pub power_up_stardust_discount_percent: f64,
1600}
1601
1602#[derive(Debug, Clone, Serialize, Deserialize)]
1603#[serde(rename_all = "camelCase")]
1604pub struct MainMenuChanges {
1605    pub enabled: bool,
1606}
1607
1608#[derive(Debug, Clone, Serialize, Deserialize)]
1609#[serde(rename_all = "camelCase")]
1610pub struct MapDisplaySettings {
1611    pub show_enhanced_sky: bool,
1612}
1613
1614#[derive(Debug, Clone, Serialize, Deserialize)]
1615#[serde(rename_all = "camelCase")]
1616pub struct MapObjectsInteractionRangeSettings {
1617    pub far_interaction_range_meters: f64,
1618    pub interaction_range_meters: f64,
1619    pub remote_interaction_range_meters: f64,
1620    pub white_pulse_radius_meters: f64,
1621}
1622
1623#[derive(Debug, Clone, Serialize, Deserialize)]
1624#[serde(rename_all = "camelCase")]
1625pub struct MegaEvoSettings {
1626    pub active_mega_bonus_catch_candy: u64,
1627    pub attack_boost_from_mega_different_type: f64,
1628    pub attack_boost_from_mega_same_type: f64,
1629    pub client_mega_cooldown_buffer_ms: u64,
1630    pub enable_buddy_walking_mega_energy_award: bool,
1631    pub enable_mega_evolve_in_lobby: bool,
1632    pub enable_mega_level: bool,
1633    pub enable_mega_level_legacy_award: bool,
1634    pub evolution_length_ms: String,
1635    pub max_candy_hoard_size: u64,
1636    pub num_mega_levels: u64,
1637}
1638
1639#[derive(Debug, Clone, Serialize, Deserialize)]
1640#[serde(rename_all = "camelCase")]
1641pub struct MonodepthSettings {
1642    pub enable_ground_suppression: bool,
1643    pub enable_occlusions: bool,
1644    pub min_ground_suppression_thresh: f64,
1645    pub occlusions_toggle_visible: bool,
1646    pub suppression_channel_id: u64,
1647}
1648
1649#[derive(Debug, Clone, Serialize, Deserialize)]
1650#[serde(rename_all = "camelCase")]
1651pub struct BattleMpCostPerTier {
1652    pub battle_level: String,
1653    pub bread_battle_catch_mp_cost: u64,
1654    pub bread_battle_remote_catch_mp_cost: u64,
1655}
1656
1657#[derive(Debug, Clone, Serialize, Deserialize)]
1658#[serde(rename_all = "camelCase")]
1659pub struct BattleMpCostPerTierV2 {
1660    pub battle_level: u64,
1661    pub bread_battle_catch_mp_cost: u64,
1662    pub bread_battle_remote_catch_mp_cost: u64,
1663}
1664
1665#[derive(Debug, Clone, Serialize, Deserialize)]
1666#[serde(rename_all = "camelCase")]
1667pub struct MpSettings {
1668    pub battle_mp_cost_per_tier: (
1669        BattleMpCostPerTier,
1670        BattleMpCostPerTier,
1671        BattleMpCostPerTier,
1672        BattleMpCostPerTier,
1673        BattleMpCostPerTier,
1674        BattleMpCostPerTier,
1675        BattleMpCostPerTierV2,
1676    ),
1677    pub debug_allow_remove_walk_quest: bool,
1678    pub ftue_mp_capacity: u64,
1679    pub mp_base_daily_limit: u64,
1680    pub mp_capacity: u64,
1681    pub mp_claim_particle_speed_multiplier: f64,
1682    pub num_extra_mp_from_first_loot_station: u64,
1683    pub num_meters_goal: u64,
1684    pub num_mp_from_loot_station: u64,
1685    pub num_mp_from_walk_quest: u64,
1686}
1687
1688#[derive(Debug, Clone, Serialize, Deserialize)]
1689#[serde(rename_all = "camelCase")]
1690pub struct NaturalArtDayNightFeatureSettings {
1691    pub day_end_time: String,
1692    pub day_start_time: String,
1693    pub dbs_spawn_radius_meters: f64,
1694    pub night_end_time: String,
1695}
1696
1697#[derive(Debug, Clone, Serialize, Deserialize)]
1698#[serde(rename_all = "camelCase")]
1699pub struct NearbyPokemonSettings {
1700    pub ob_enabled: bool,
1701    pub ob_nearby_pokemon_settings_bool1: bool,
1702}
1703
1704#[derive(Debug, Clone, Serialize, Deserialize)]
1705#[serde(rename_all = "camelCase")]
1706pub struct BustSlider {
1707    pub max_bounds: f64,
1708}
1709
1710#[derive(Debug, Clone, Serialize, Deserialize)]
1711#[serde(rename_all = "camelCase")]
1712pub struct SizeSlider {
1713    pub max_bounds: f64,
1714    pub min_bounds: f64,
1715}
1716
1717#[derive(Debug, Clone, Serialize, Deserialize)]
1718#[serde(rename_all = "camelCase")]
1719pub struct BodySliderSettings {
1720    pub bust_slider: BustSlider,
1721    pub hips_slider: BustSlider,
1722    pub muscle_slider: BustSlider,
1723    pub shoulder_slider: BustSlider,
1724    pub size_slider: SizeSlider,
1725}
1726
1727#[derive(Debug, Clone, Serialize, Deserialize)]
1728#[serde(rename_all = "camelCase")]
1729pub struct Backpack {
1730    pub article_id: String,
1731}
1732
1733#[derive(Debug, Clone, Serialize, Deserialize)]
1734#[serde(rename_all = "camelCase")]
1735pub struct Articles {
1736    pub backpack: Backpack,
1737    pub body_preset: Backpack,
1738    pub eyebrow: Backpack,
1739    pub eyelash: Backpack,
1740    pub face_preset: Backpack,
1741    pub gloves: Backpack,
1742    pub hair: Backpack,
1743    pub pants: Backpack,
1744    pub pose: Backpack,
1745    pub shirt: Backpack,
1746    pub shoes: Backpack,
1747    pub socks: Backpack,
1748}
1749
1750#[derive(Debug, Clone, Serialize, Deserialize)]
1751#[serde(rename_all = "camelCase")]
1752pub struct BodyBlend {
1753    pub hips: f64,
1754    pub musculature: f64,
1755    pub shoulders: f64,
1756    pub size: f64,
1757}
1758
1759#[derive(Debug, Clone, Serialize, Deserialize)]
1760#[serde(rename_all = "camelCase")]
1761pub struct EarSelection {
1762    pub selection: String,
1763}
1764
1765#[derive(Debug, Clone, Serialize, Deserialize)]
1766#[serde(rename_all = "camelCase")]
1767pub struct ColorKeys {
1768    pub key_position: f64,
1769}
1770
1771#[derive(Debug, Clone, Serialize, Deserialize)]
1772#[serde(rename_all = "camelCase")]
1773pub struct ColorKeysV2 {
1774    pub blue: f64,
1775    pub green: f64,
1776    pub key_position: f64,
1777    pub red: f64,
1778}
1779
1780#[derive(Debug, Clone, Serialize, Deserialize)]
1781#[serde(rename_all = "camelCase")]
1782pub struct EyeGradient {
1783    pub color_keys: (ColorKeys, ColorKeysV2, ColorKeysV2, ColorKeysV2),
1784}
1785
1786#[derive(Debug, Clone, Serialize, Deserialize)]
1787#[serde(rename_all = "camelCase")]
1788pub struct FacePositions {
1789    pub brow_depth: f64,
1790    pub brow_vertical: f64,
1791    pub eye_depth: f64,
1792    pub eye_horizontal: f64,
1793    pub eye_vertical: f64,
1794    pub mouth_depth: f64,
1795    pub mouth_horizontal: f64,
1796    pub mouth_vertical: f64,
1797    pub nose_depth: f64,
1798    pub nose_vertical: f64,
1799}
1800
1801#[derive(Debug, Clone, Serialize, Deserialize)]
1802#[serde(rename_all = "camelCase")]
1803pub struct ColorKeysV3 {
1804    pub blue: f64,
1805    pub green: f64,
1806    pub red: f64,
1807}
1808
1809#[derive(Debug, Clone, Serialize, Deserialize)]
1810#[serde(rename_all = "camelCase")]
1811pub struct HairGradient {
1812    pub color_keys: (
1813        ColorKeysV3,
1814        ColorKeysV2,
1815        ColorKeysV2,
1816        ColorKeysV2,
1817        ColorKeysV2,
1818    ),
1819}
1820
1821#[derive(Debug, Clone, Serialize, Deserialize)]
1822#[serde(rename_all = "camelCase")]
1823pub struct SkinGradient {
1824    pub color_keys: [ColorKeysV2; 5],
1825}
1826
1827#[derive(Debug, Clone, Serialize, Deserialize)]
1828#[serde(rename_all = "camelCase")]
1829pub struct DefaultNeutralAvatar {
1830    pub articles: Articles,
1831    pub body_blend: BodyBlend,
1832    pub ear_selection: EarSelection,
1833    pub eye_gradient: EyeGradient,
1834    pub eye_selection: EarSelection,
1835    pub face_positions: FacePositions,
1836    pub hair_gradient: HairGradient,
1837    pub head_selection: EarSelection,
1838    pub mouth_selection: EarSelection,
1839    pub nose_selection: EarSelection,
1840    pub skin_gradient: SkinGradient,
1841}
1842
1843#[derive(Debug, Clone, Serialize, Deserialize)]
1844#[serde(rename_all = "camelCase")]
1845pub struct ArticlesV2 {
1846    pub backpack: Backpack,
1847    pub belt: Backpack,
1848    pub body_preset: Backpack,
1849    pub eyebrow: Backpack,
1850    pub eyelash: Backpack,
1851    pub face_preset: Backpack,
1852    pub gloves: Backpack,
1853    pub hair: Backpack,
1854    pub hat: Backpack,
1855    pub necklace: Backpack,
1856    pub pants: Backpack,
1857    pub pose: Backpack,
1858    pub shirt: Backpack,
1859    pub shoes: Backpack,
1860    pub socks: Backpack,
1861}
1862
1863#[derive(Debug, Clone, Serialize, Deserialize)]
1864#[serde(rename_all = "camelCase")]
1865pub struct BodyBlendV2 {
1866    pub bust: f64,
1867    pub hips: f64,
1868}
1869
1870#[derive(Debug, Clone, Serialize, Deserialize)]
1871#[serde(rename_all = "camelCase")]
1872pub struct FacePositionsV2 {
1873    pub brow_depth: f64,
1874    pub brow_horizontal: f64,
1875    pub brow_vertical: f64,
1876    pub eye_depth: f64,
1877    pub eye_horizontal: f64,
1878    pub eye_vertical: f64,
1879    pub mouth_depth: f64,
1880    pub mouth_horizontal: f64,
1881    pub mouth_vertical: f64,
1882    pub nose_depth: f64,
1883    pub nose_vertical: f64,
1884}
1885
1886#[derive(Debug, Clone, Serialize, Deserialize)]
1887#[serde(rename_all = "camelCase")]
1888pub struct SkinGradientV2 {
1889    pub color_keys: [ColorKeysV2; 6],
1890}
1891
1892#[derive(Debug, Clone, Serialize, Deserialize)]
1893#[serde(rename_all = "camelCase")]
1894pub struct FemaleNeutralAvatar {
1895    pub articles: ArticlesV2,
1896    pub body_blend: BodyBlendV2,
1897    pub ear_selection: EarSelection,
1898    pub eye_gradient: EyeGradient,
1899    pub eye_selection: EarSelection,
1900    pub face_positions: FacePositionsV2,
1901    pub hair_gradient: HairGradient,
1902    pub head_selection: EarSelection,
1903    pub mouth_selection: EarSelection,
1904    pub nose_selection: EarSelection,
1905    pub skin_gradient: SkinGradientV2,
1906}
1907
1908#[derive(Debug, Clone, Serialize, Deserialize)]
1909#[serde(rename_all = "camelCase")]
1910pub struct ArticlesV3 {
1911    pub backpack: Backpack,
1912    pub body_preset: Backpack,
1913    pub eyebrow: Backpack,
1914    pub eyelash: Backpack,
1915    pub face_preset: Backpack,
1916    pub gloves: Backpack,
1917    pub hair: Backpack,
1918    pub hat: Backpack,
1919    pub pants: Backpack,
1920    pub pose: Backpack,
1921    pub shirt: Backpack,
1922    pub shoes: Backpack,
1923    pub socks: Backpack,
1924}
1925
1926#[derive(Debug, Clone, Serialize, Deserialize)]
1927#[serde(rename_all = "camelCase")]
1928pub struct MaleNeutralAvatar {
1929    pub articles: ArticlesV3,
1930    pub body_blend: BodyBlend,
1931    pub ear_selection: EarSelection,
1932    pub eye_gradient: EyeGradient,
1933    pub eye_selection: EarSelection,
1934    pub face_positions: FacePositionsV2,
1935    pub hair_gradient: HairGradient,
1936    pub head_selection: EarSelection,
1937    pub mouth_selection: EarSelection,
1938    pub nose_selection: EarSelection,
1939    pub skin_gradient: SkinGradientV2,
1940}
1941
1942#[derive(Debug, Clone, Serialize, Deserialize)]
1943#[serde(rename_all = "camelCase")]
1944pub struct NeutralAvatarSettings {
1945    pub body_slider_settings: BodySliderSettings,
1946    pub default_neutral_avatar: DefaultNeutralAvatar,
1947    pub female_neutral_avatar: FemaleNeutralAvatar,
1948    pub male_neutral_avatar: MaleNeutralAvatar,
1949    pub neutral_avatar_legacy_mapping_version: u64,
1950    pub neutral_avatar_settings_enabled: bool,
1951    pub neutral_avatar_settings_sentinel_value: u64,
1952    pub ob_move_settings_number101: bool,
1953    pub ob_move_settings_number120: bool,
1954    pub ob_move_settings_number123: bool,
1955    pub ob_move_settings_number124: bool,
1956}
1957
1958#[derive(Debug, Clone, Serialize, Deserialize)]
1959#[serde(rename_all = "camelCase")]
1960pub struct OnboardingSettings {
1961    pub adventure_sync_prompt_step: u64,
1962    pub ar_prompt_player_level: u64,
1963    pub disable_initial_ar_prompt: bool,
1964}
1965
1966#[derive(Debug, Clone, Serialize, Deserialize)]
1967#[serde(rename_all = "camelCase")]
1968pub struct OptimizationsProto {
1969    pub adaptive_performance_min_resolution_scale: f64,
1970    pub adaptive_performance_update_interval: f64,
1971    pub optimization_physics_toggle_enabled: bool,
1972}
1973
1974#[derive(Debug, Clone, Serialize, Deserialize)]
1975#[serde(rename_all = "camelCase")]
1976pub struct CreateOrJoinWaitProbability {
1977    pub wait_time_ms: u64,
1978    pub weight: u64,
1979}
1980
1981#[derive(Debug, Clone, Serialize, Deserialize)]
1982#[serde(rename_all = "camelCase")]
1983pub struct LeavePartyProbablity {
1984    pub max_duration_ms: u64,
1985    pub weight: u64,
1986}
1987
1988#[derive(Debug, Clone, Serialize, Deserialize)]
1989#[serde(rename_all = "camelCase")]
1990pub struct PartyDarkLaunchSettings {
1991    pub create_or_join_wait_probability: [CreateOrJoinWaitProbability; 4],
1992    pub leave_party_probablity: [LeavePartyProbablity; 4],
1993    pub probability_to_create_percent: u64,
1994    pub rollout_players_per_billion: u64,
1995    pub update_location_enabled: bool,
1996    pub update_location_override_period_ms: u64,
1997}
1998
1999#[derive(Debug, Clone, Serialize, Deserialize)]
2000#[serde(rename_all = "camelCase")]
2001pub struct Boost {
2002    pub daily_contribution_limit: u64,
2003    pub duration_multiplier: f64,
2004    pub supported_item_types: String,
2005}
2006
2007#[derive(Debug, Clone, Serialize, Deserialize)]
2008#[serde(rename_all = "camelCase")]
2009pub struct PartyIapBoostsSettings {
2010    pub boost: [Boost; 3],
2011}
2012
2013#[derive(Debug, Clone, Serialize, Deserialize)]
2014#[serde(rename_all = "camelCase")]
2015pub struct PartyRecommendationSettings {
2016    pub mega_evo_combat_rating_scale: f64,
2017    pub mode: String,
2018    pub third_move_weight: f64,
2019    pub variance: f64,
2020}
2021
2022#[derive(Debug, Clone, Serialize, Deserialize)]
2023#[serde(rename_all = "camelCase")]
2024pub struct PhotoSettings {
2025    pub banner_image_url: [String; 3],
2026    pub iris_flags: u64,
2027    pub is_iris_enabled: bool,
2028    pub screen_capture_size: f64,
2029}
2030
2031#[derive(Debug, Clone, Serialize, Deserialize)]
2032#[serde(rename_all = "camelCase")]
2033pub struct MessageTiming {
2034    pub message_send_time: String,
2035}
2036
2037#[derive(Debug, Clone, Serialize, Deserialize)]
2038#[serde(rename_all = "camelCase")]
2039pub struct MessageTimingV2 {
2040    pub message_send_before_event_seconds: u64,
2041    pub message_send_time: String,
2042}
2043
2044#[derive(Debug, Clone, Serialize, Deserialize)]
2045#[serde(rename_all = "camelCase")]
2046pub struct EventSettings {
2047    pub max_rsvps_per_slot: u64,
2048    pub max_timeslots: u64,
2049    pub message_timing: (MessageTiming, MessageTimingV2),
2050    pub rsvp_bonus_time_window_minutes: u64,
2051    pub rsvp_clear_inventory_minutes: u64,
2052    pub rsvp_invite_enabled: bool,
2053    pub rsvp_timeslot_duration_seconds: u64,
2054    pub timeslot_gap_seconds: u64,
2055}
2056
2057#[derive(Debug, Clone, Serialize, Deserialize)]
2058#[serde(rename_all = "camelCase")]
2059pub struct EventSettingsV2 {
2060    pub event_type: String,
2061    pub max_rsvps_per_slot: u64,
2062    pub max_timeslots: u64,
2063    pub message_timing: (MessageTiming, MessageTimingV2),
2064    pub rsvp_bonus_time_window_minutes: u64,
2065    pub rsvp_clear_inventory_minutes: u64,
2066    pub rsvp_invite_enabled: bool,
2067    pub rsvp_timeslot_duration_seconds: u64,
2068    pub timeslot_gap_seconds: u64,
2069}
2070
2071#[derive(Debug, Clone, Serialize, Deserialize)]
2072#[serde(rename_all = "camelCase")]
2073pub struct PlannerSettings {
2074    pub active_reminder_time_seconds: u64,
2075    pub enabled: bool,
2076    pub event_settings: (EventSettings, EventSettingsV2),
2077    pub max_pending_rsvp_invites: u64,
2078    pub max_rsvp_display_distance_m: u64,
2079    pub max_rsvp_invites: u64,
2080    pub max_rsvps_per_trainer: u64,
2081    pub nearby_rsvp_tab_enabled: bool,
2082    pub rsvp_count_geo_push_gateway_namespace: String,
2083    pub rsvp_count_push_gateway_namespace: String,
2084    pub rsvp_count_topper_polling_time_seconds: u64,
2085    pub rsvp_count_update_time_seconds: u64,
2086    pub send_rsvp_invite_enabled: bool,
2087}
2088
2089#[derive(Debug, Clone, Serialize, Deserialize)]
2090#[serde(rename_all = "camelCase")]
2091pub struct PlayerBonusSystemSettings {
2092    pub day_night_evo_enabled: bool,
2093    pub max_bonus_duration_ms: String,
2094}
2095
2096#[derive(Debug, Clone, Serialize, Deserialize)]
2097#[serde(rename_all = "camelCase")]
2098pub struct XpRewardV2thresholds {
2099    pub source: String,
2100    pub threshold: u64,
2101}
2102
2103#[derive(Debug, Clone, Serialize, Deserialize)]
2104#[serde(rename_all = "camelCase")]
2105pub struct PlayerLevel {
2106    pub cp_multiplier: Vec<f64>,
2107    pub extended_player_level_threshold: u64,
2108    pub level_requirements_v2_enabled: bool,
2109    pub level_up_screen_v3_enabled: bool,
2110    pub max_egg_player_level: u64,
2111    pub max_encounter_player_level: u64,
2112    pub max_quest_encounter_player_level: u64,
2113    pub milestone_levels: [u64; 8],
2114    pub rank_num: Vec<u64>,
2115    pub required_experience: Vec<u64>,
2116    pub smore_ftue_image_url: String,
2117    pub xp_reward_v2_enabled: bool,
2118    pub xp_reward_v2_thresholds: XpRewardV2thresholds,
2119}
2120
2121#[derive(Debug, Clone, Serialize, Deserialize)]
2122#[serde(rename_all = "camelCase")]
2123pub struct CurveballModifier {
2124    pub x: f64,
2125    pub y: f64,
2126    pub z: f64,
2127}
2128
2129#[derive(Debug, Clone, Serialize, Deserialize)]
2130#[serde(rename_all = "camelCase")]
2131pub struct LaunchVelocityMultiplier {
2132    pub x: f64,
2133    pub y: f64,
2134}
2135
2136#[derive(Debug, Clone, Serialize, Deserialize)]
2137#[serde(rename_all = "camelCase")]
2138pub struct ThrowProperties {
2139    pub below_ground_fly_timeout_seconds: f64,
2140    pub curveball_modifier: CurveballModifier,
2141    pub drag_snap_speed: f64,
2142    pub fly_timeout_duration: f64,
2143    pub launch_speed_threshold: f64,
2144    pub launch_velocity_multiplier: LaunchVelocityMultiplier,
2145    pub max_angular_velocity: f64,
2146    pub max_launch_angle: f64,
2147    pub max_launch_angle_height: f64,
2148    pub max_launch_speed: f64,
2149    pub min_launch_angle: f64,
2150    pub min_spin_particle_amount: f64,
2151    pub overshoot_correction: f64,
2152    pub throw_proerties_category: String,
2153    pub undershoot_correction: f64,
2154}
2155
2156#[derive(Debug, Clone, Serialize, Deserialize)]
2157#[serde(rename_all = "camelCase")]
2158pub struct PokeballThrowPropertySettings {
2159    pub throw_properties: [ThrowProperties; 1],
2160}
2161
2162#[derive(Debug, Clone, Serialize, Deserialize)]
2163#[serde(rename_all = "camelCase")]
2164pub struct PokecoinPurchaseDisplayGmt {
2165    pub feature_enabled: bool,
2166}
2167
2168#[derive(Debug, Clone, Serialize, Deserialize)]
2169#[serde(rename_all = "camelCase")]
2170pub struct PokedexCategorySettingsInOrder {
2171    pub milestone_goal: u64,
2172    pub pokedex_category: String,
2173}
2174
2175#[derive(Debug, Clone, Serialize, Deserialize)]
2176#[serde(rename_all = "camelCase")]
2177pub struct PokedexCategorySettingsInOrderV2 {
2178    pub milestone_goal: u64,
2179    pub pokedex_category: u64,
2180}
2181
2182#[derive(Debug, Clone, Serialize, Deserialize)]
2183#[serde(rename_all = "camelCase")]
2184pub struct PokedexCategorySettingsInOrderV3 {
2185    pub milestone_goal: u64,
2186    pub pokedex_category: String,
2187    pub visually_hidden: bool,
2188}
2189
2190#[derive(Debug, Clone, Serialize, Deserialize)]
2191#[serde(rename_all = "camelCase")]
2192pub struct PokedexCategoriesSettings {
2193    pub client_shiny_form_check: bool,
2194    pub feature_enabled: bool,
2195    pub pokedex_category_settings_in_order: (
2196        PokedexCategorySettingsInOrder,
2197        PokedexCategorySettingsInOrder,
2198        PokedexCategorySettingsInOrderV2,
2199        PokedexCategorySettingsInOrderV2,
2200        PokedexCategorySettingsInOrderV3,
2201        PokedexCategorySettingsInOrderV3,
2202        PokedexCategorySettingsInOrderV3,
2203        PokedexCategorySettingsInOrderV3,
2204        PokedexCategorySettingsInOrderV3,
2205        PokedexCategorySettingsInOrder,
2206        PokedexCategorySettingsInOrder,
2207        PokedexCategorySettingsInOrder,
2208    ),
2209    pub search_enabled: bool,
2210    pub show_dex_after_new_form_enabled: bool,
2211    pub show_shiny_dex_celebration_enabled: bool,
2212}
2213
2214#[derive(Debug, Clone, Serialize, Deserialize)]
2215#[serde(rename_all = "camelCase")]
2216pub struct PokedexSizeStatsSystemSettings {
2217    pub display_enabled: bool,
2218    pub enable_randomized_height_and_weight_for_wild_pokemon: bool,
2219    pub num_days_new_bubble_track: f64,
2220    pub pokedex_display_pokemon_tracked_threshold: u64,
2221    pub record_display_pokemon_tracked_threshold: u64,
2222}
2223
2224#[derive(Debug, Clone, Serialize, Deserialize)]
2225#[serde(rename_all = "camelCase")]
2226pub struct Pokedexv2featureFlags {
2227    pub celeb_v1_flag: i64,
2228    pub detail_battle_flag: i64,
2229    pub detail_v1_flag: i64,
2230    pub is_feature_enabled: bool,
2231    pub navigation_flag: u64,
2232    pub notification_flag: i64,
2233}
2234
2235#[derive(Debug, Clone, Serialize, Deserialize)]
2236#[serde(rename_all = "camelCase")]
2237pub struct PokedexV2settings {
2238    pub max_tracked_pokemon: u64,
2239    pub pokemon_alert_excluded: [String; 5],
2240}
2241
2242#[derive(Debug, Clone, Serialize, Deserialize)]
2243#[serde(rename_all = "camelCase")]
2244pub struct PokemonFxSettings {
2245    pub hiding_in_photo: bool,
2246}
2247
2248#[derive(Debug, Clone, Serialize, Deserialize)]
2249#[serde(rename_all = "camelCase")]
2250pub struct PokemonHomeSettings {
2251    pub energy_sku_id: String,
2252    pub player_min_level: u64,
2253    pub transporter_energy_gain_per_hour: u64,
2254    pub transporter_max_energy: u64,
2255}
2256
2257#[derive(Debug, Clone, Serialize, Deserialize)]
2258#[serde(rename_all = "camelCase")]
2259pub struct ColorBinding {
2260    pub color: String,
2261    pub hex_code: String,
2262}
2263
2264#[derive(Debug, Clone, Serialize, Deserialize)]
2265#[serde(rename_all = "camelCase")]
2266pub struct PokemonTagSettings {
2267    pub color_binding: [ColorBinding; 8],
2268    pub max_num_tags_allowed: u64,
2269    pub min_player_level_for_pokemon_tagging: u64,
2270}
2271
2272#[derive(Debug, Clone, Serialize, Deserialize)]
2273#[serde(rename_all = "camelCase")]
2274pub struct PopupControlSettings {
2275    pub hide_aware_of_your_surroundings_popup: bool,
2276    pub hide_medal_earned_popup_unit_after_first_pokemon: bool,
2277    pub hide_weather_warning_popup: bool,
2278}
2279
2280#[derive(Debug, Clone, Serialize, Deserialize)]
2281#[serde(rename_all = "camelCase")]
2282pub struct PostcardCollectionSettings {
2283    pub enabled: bool,
2284}
2285
2286#[derive(Debug, Clone, Serialize, Deserialize)]
2287#[serde(rename_all = "camelCase")]
2288pub struct PowerUpPokestopsSettings {
2289    pub power_up_pokestops_min_player_level: u64,
2290    pub validate_pokestop_on_fort_search_percent: f64,
2291}
2292
2293#[derive(Debug, Clone, Serialize, Deserialize)]
2294#[serde(rename_all = "camelCase")]
2295pub struct CommonTempSettings {
2296    pub enable_buddy_walking_temp_evo_energy_award: bool,
2297    pub evolution_length_ms: String,
2298    pub num_temp_evo_levels: u64,
2299}
2300
2301#[derive(Debug, Clone, Serialize, Deserialize)]
2302#[serde(rename_all = "camelCase")]
2303pub struct TypeBoosts {
2304    pub boost_type: [String; 3],
2305    pub pokemon_id: String,
2306}
2307
2308#[derive(Debug, Clone, Serialize, Deserialize)]
2309#[serde(rename_all = "camelCase")]
2310pub struct PrimalEvoSettings {
2311    pub common_temp_settings: CommonTempSettings,
2312    pub max_candy_hoard_size: u64,
2313    pub type_boosts: [TypeBoosts; 3],
2314}
2315
2316#[derive(Debug, Clone, Serialize, Deserialize)]
2317#[serde(rename_all = "camelCase")]
2318pub struct PtcOauthSettings {
2319    pub end_time_ms: String,
2320    pub linking_reward_item: String,
2321    pub ptc_account_linking_enabled: bool,
2322}
2323
2324#[derive(Debug, Clone, Serialize, Deserialize)]
2325#[serde(rename_all = "camelCase")]
2326pub struct QuickInviteSettings {
2327    pub enabled: bool,
2328    pub suggested_players_variation: String,
2329}
2330
2331#[derive(Debug, Clone, Serialize, Deserialize)]
2332#[serde(rename_all = "camelCase")]
2333pub struct RaidLobbyCounterSettings {
2334    pub map_display_enabled: bool,
2335    pub max_count_to_update: u64,
2336    pub nearby_display_enabled: bool,
2337    pub polling_enabled: bool,
2338    pub polling_interval_ms: u64,
2339    pub polling_radius_meters: f64,
2340    pub publish_cutoff_time_ms: u64,
2341    pub publish_enabled: bool,
2342    pub show_counter_radius_meters: f64,
2343    pub subscribe_enabled: bool,
2344    pub subscribe_s2_level: u64,
2345    pub subscription_namespace: String,
2346}
2347
2348#[derive(Debug, Clone, Serialize, Deserialize)]
2349#[serde(rename_all = "camelCase")]
2350pub struct PokemonMusicOverrides {
2351    pub battle_music_key: String,
2352    pub forms: [String; 2],
2353    pub pokemon: String,
2354}
2355
2356#[derive(Debug, Clone, Serialize, Deserialize)]
2357#[serde(rename_all = "camelCase")]
2358pub struct PokemonMusicOverridesV2 {
2359    pub battle_music_key: String,
2360    pub forms: [String; 3],
2361    pub pokemon: String,
2362}
2363
2364#[derive(Debug, Clone, Serialize, Deserialize)]
2365#[serde(rename_all = "camelCase")]
2366pub struct PokemonMusicOverridesV3 {
2367    pub battle_music_key: String,
2368    pub pokemon: String,
2369}
2370
2371#[derive(Debug, Clone, Serialize, Deserialize)]
2372#[serde(rename_all = "camelCase")]
2373pub struct PokemonMusicOverridesV4 {
2374    pub battle_music_key: String,
2375    pub forms: [String; 4],
2376    pub pokemon: String,
2377}
2378
2379#[derive(Debug, Clone, Serialize, Deserialize)]
2380#[serde(rename_all = "camelCase")]
2381pub struct PokemonMusicOverridesV5 {
2382    pub battle_music_key: String,
2383    pub forms: Option<Vec<String>>,
2384    pub pokemon: String,
2385}
2386
2387#[derive(Debug, Clone, Serialize, Deserialize)]
2388#[serde(rename_all = "camelCase")]
2389pub struct RaidFeatureFlags {
2390    pub use_cached_raid_boss_pokemon: bool,
2391}
2392
2393#[derive(Debug, Clone, Serialize, Deserialize)]
2394#[serde(rename_all = "camelCase")]
2395pub struct RaidLevelMusicOverrides {
2396    pub battle_music_key: String,
2397    pub raid_level: String,
2398}
2399
2400#[derive(Debug, Clone, Serialize, Deserialize)]
2401#[serde(rename_all = "camelCase")]
2402pub struct RaidSettings {
2403    pub ablcemdnbkc: bool,
2404    pub boot_cutoff_ms: u64,
2405    pub boot_raid_enabled: bool,
2406    pub boot_solo_ms: u64,
2407    pub can_invite_friends_in_person: bool,
2408    pub can_invite_friends_remotely: bool,
2409    pub failed_friend_invite_info_enabled: bool,
2410    pub fetch_profile_from_social_enabled: bool,
2411    pub friend_invite_cutoff_time_sec: u64,
2412    pub friend_requests_enabled: bool,
2413    pub invite_cooldown_duration_millis: String,
2414    pub max_num_friend_invites: u64,
2415    pub max_num_friend_invites_per_action: u64,
2416    pub max_players_per_lobby: u64,
2417    pub max_remote_players_per_lobby: u64,
2418    pub max_remote_raid_passes: u64,
2419    pub min_players_to_boot: u64,
2420    pub ob_raid_client_settings_number1: u64,
2421    pub ob_raid_client_settings_number29: u64,
2422    pub pokemon_music_overrides: Vec<PokemonMusicOverridesV5>,
2423    pub popup_time_ms: u64,
2424    pub raid_feature_flags: RaidFeatureFlags,
2425    pub raid_level_music_overrides: [RaidLevelMusicOverrides; 5],
2426    pub remote_damage_modifier: f64,
2427    pub remote_raid_distance_validation: bool,
2428    pub remote_raid_enabled: bool,
2429    pub remote_raids_min_player_level: u64,
2430    pub unsupported_raid_levels_for_friend_invites: (String, String, u64, u64),
2431    pub unsupported_remote_raid_levels: (String, String, u64, u64),
2432}
2433
2434#[derive(Debug, Clone, Serialize, Deserialize)]
2435#[serde(rename_all = "camelCase")]
2436pub struct RecentFeatures {
2437    pub description: String,
2438    pub feature_name: String,
2439    pub icon_type: String,
2440}
2441
2442#[derive(Debug, Clone, Serialize, Deserialize)]
2443#[serde(rename_all = "camelCase")]
2444pub struct RecentFeaturesV2 {
2445    pub description: String,
2446    pub feature_name: String,
2447    pub icon_type: u64,
2448}
2449
2450#[derive(Debug, Clone, Serialize, Deserialize)]
2451#[serde(rename_all = "camelCase")]
2452pub struct ReferralSettings {
2453    pub add_referrer_grace_period_ms: String,
2454    pub deep_link_url: String,
2455    pub feature_enabled: bool,
2456    pub image_share_referral_enabled: bool,
2457    pub min_num_days_without_session_for_lapsed_player: u64,
2458    pub recent_features: (RecentFeatures, RecentFeaturesV2, RecentFeatures),
2459}
2460
2461#[derive(Debug, Clone, Serialize, Deserialize)]
2462#[serde(rename_all = "camelCase")]
2463pub struct RemoteTradeSettings {
2464    pub enabled: bool,
2465    pub max_remote_trades_per_day: u64,
2466    pub pokemon_untradable_days: u64,
2467    pub requested_pokemon_count: u64,
2468    pub tagging_unlock_point_threshold: u64,
2469    pub time_limit_minutes: u64,
2470    pub trade_expiry_reminder_minutes: u64,
2471}
2472
2473#[derive(Debug, Clone, Serialize, Deserialize)]
2474#[serde(rename_all = "camelCase")]
2475pub struct RouteBadgeSettings {
2476    pub target: [u64; 4],
2477}
2478
2479#[derive(Debug, Clone, Serialize, Deserialize)]
2480#[serde(rename_all = "camelCase")]
2481pub struct ClientBreadcrumbSettings {
2482    pub as_fallback_foreground_reporting_inverval_s: f64,
2483    pub session_duration_m: f64,
2484    pub update_interval_s: f64,
2485}
2486
2487#[derive(Debug, Clone, Serialize, Deserialize)]
2488#[serde(rename_all = "camelCase")]
2489pub struct RouteCreationSettings {
2490    pub allowable_gps_drift_meters: u64,
2491    pub allow_appeals: bool,
2492    pub client_breadcrumb_settings: ClientBreadcrumbSettings,
2493    pub creation_limit_per_window: u64,
2494    pub creation_limit_window_days: u64,
2495    pub disabled_tags: [String; 9],
2496    pub duration_buffer_s: u64,
2497    pub duration_distance_to_speed_multiplier: f64,
2498    pub enabled: bool,
2499    pub enable_immediate_route_ingestion: bool,
2500    pub interaction_range_meters: f64,
2501    pub max_client_map_panning_distance_m: f64,
2502    pub max_description_length: u64,
2503    pub max_distance_from_anchor_pots_m: f64,
2504    pub max_distance_warning_distance_meters: u64,
2505    pub max_name_length: u64,
2506    pub max_open_routes: u64,
2507    pub max_post_punishment_ban_time_ms: String,
2508    pub max_recall_count_threshold: u64,
2509    pub max_recording_speed_meters_per_second: u64,
2510    pub max_submission_count_threshold: u64,
2511    pub max_total_distance_m: f64,
2512    pub min_breadcrumb_distance_delta_meters: u64,
2513    pub min_player_level: u64,
2514    pub min_total_distance_m: f64,
2515    pub moderation_enabled: bool,
2516    pub resume_range_meters: u64,
2517    pub show_submission_status_history: bool,
2518}
2519
2520#[derive(Debug, Clone, Serialize, Deserialize)]
2521#[serde(rename_all = "camelCase")]
2522pub struct RouteDiscoverySettings {
2523    pub enable_badge_routes_discovery: bool,
2524    pub max_badge_routes_discovery_spanner_txns: u64,
2525    pub max_client_map_panning_distance_meters: f64,
2526    pub max_favorite_routes: u64,
2527    pub max_routes_viewable: u64,
2528    pub nearby_visible_radius_meters: f64,
2529    pub new_route_threshold: u64,
2530    pub popular_routes_fraction: f64,
2531}
2532
2533#[derive(Debug, Clone, Serialize, Deserialize)]
2534#[serde(rename_all = "camelCase")]
2535pub struct PinMessage {
2536    pub category: [String; 2],
2537    pub key: String,
2538    pub level_required: u64,
2539}
2540
2541#[derive(Debug, Clone, Serialize, Deserialize)]
2542#[serde(rename_all = "camelCase")]
2543pub struct PinMessageV2 {
2544    pub category: [String; 1],
2545    pub key: String,
2546    pub level_required: u64,
2547}
2548
2549#[derive(Debug, Clone, Serialize, Deserialize)]
2550#[serde(rename_all = "camelCase")]
2551pub struct RoutePinSettings {
2552    pub creator_max: u64,
2553    pub max_distance_from_route_m: f64,
2554    pub max_named_stickers_per_pin: u64,
2555    pub max_pins_for_client_display: u64,
2556    pub max_pins_per_route: u64,
2557    pub pin_message: (PinMessage, PinMessageV2, PinMessageV2, PinMessageV2),
2558    pub player_max: u64,
2559}
2560
2561#[derive(Debug, Clone, Serialize, Deserialize)]
2562#[serde(rename_all = "camelCase")]
2563pub struct RoutePlaySettings {
2564    pub bonus_active_distance_threshold_meters: u64,
2565    pub enable_route_rating_details: bool,
2566    pub margin_minimum_meters: u64,
2567    pub margin_percentage: f64,
2568    pub min_player_level: u64,
2569    pub ob_route_play_settings_number29: u64,
2570    pub ob_route_play_settings_number30: f64,
2571    pub ob_route_play_settings_number33: f64,
2572    pub ob_route_play_settings_number45: u64,
2573    pub resume_range_meters: u64,
2574    pub route_engagement_stats_shard_count: u64,
2575    pub route_expiration_minutes: u64,
2576    pub route_pause_distance_m: u64,
2577}
2578
2579#[derive(Debug, Clone, Serialize, Deserialize)]
2580#[serde(rename_all = "camelCase")]
2581pub struct RoutesNearbyNotifSettings {
2582    pub max_notifs: u64,
2583    pub time_between_notifs_ms: String,
2584}
2585
2586#[derive(Debug, Clone, Serialize, Deserialize)]
2587#[serde(rename_all = "camelCase")]
2588pub struct RoutesPartyPlayInteropSettings {
2589    pub consumption_interoperable: bool,
2590}
2591
2592#[derive(Debug, Clone, Serialize, Deserialize)]
2593#[serde(rename_all = "camelCase")]
2594pub struct RouteStampCategorySettings {
2595    pub active: bool,
2596    pub category: String,
2597    pub collection_size: u64,
2598    pub sort_order: u64,
2599}
2600
2601#[derive(Debug, Clone, Serialize, Deserialize)]
2602#[serde(rename_all = "camelCase")]
2603pub struct SharedFusionSettings {
2604    pub fusion_enabled: bool,
2605}
2606
2607#[derive(Debug, Clone, Serialize, Deserialize)]
2608#[serde(rename_all = "camelCase")]
2609pub struct SharedMoveSettings {
2610    pub purified_third_move_unlock_candy_multiplier: f64,
2611    pub purified_third_move_unlock_stardust_multiplier: f64,
2612    pub shadow_third_move_unlock_candy_multiplier: f64,
2613    pub shadow_third_move_unlock_stardust_multiplier: f64,
2614    pub shared_move_settings_bool1: bool,
2615}
2616
2617#[derive(Debug, Clone, Serialize, Deserialize)]
2618#[serde(rename_all = "camelCase")]
2619pub struct MappingsV2 {
2620    pub form: String,
2621    pub r#move: String,
2622    pub pokemon_id: String,
2623}
2624
2625#[derive(Debug, Clone, Serialize, Deserialize)]
2626#[serde(rename_all = "camelCase")]
2627pub struct MappingsV3 {
2628    pub r#move: String,
2629    pub pokemon_id: String,
2630}
2631
2632#[derive(Debug, Clone, Serialize, Deserialize)]
2633#[serde(rename_all = "camelCase")]
2634pub struct OptionalBmoveOverride {
2635    pub r#move: String,
2636    pub r#override: bool,
2637}
2638
2639#[derive(Debug, Clone, Serialize, Deserialize)]
2640#[serde(rename_all = "camelCase")]
2641pub struct MappingsV4 {
2642    pub form: String,
2643    pub r#move: String,
2644    pub optional_b_move_override: OptionalBmoveOverride,
2645    pub optional_c_move_override: OptionalBmoveOverride,
2646    pub pokemon_id: String,
2647}
2648
2649#[derive(Debug, Clone, Serialize, Deserialize)]
2650#[serde(rename_all = "camelCase")]
2651pub struct MappingsV5 {
2652    pub form: Option<String>,
2653    pub r#move: String,
2654    pub optional_b_move_override: Option<OptionalBmoveOverride>,
2655    pub optional_c_move_override: Option<OptionalBmoveOverride>,
2656    pub pokemon_id: String,
2657}
2658
2659#[derive(Debug, Clone, Serialize, Deserialize)]
2660#[serde(rename_all = "camelCase")]
2661pub struct SourdoughMoveMappingSettings {
2662    pub mappings: Vec<MappingsV5>,
2663}
2664
2665#[derive(Debug, Clone, Serialize, Deserialize)]
2666#[serde(rename_all = "camelCase")]
2667pub struct SpecialEggSettings {
2668    pub enabled: bool,
2669    pub map_icon_enabled: bool,
2670    pub min_level: u64,
2671    pub xp_reward: u64,
2672}
2673
2674#[derive(Debug, Clone, Serialize, Deserialize)]
2675#[serde(rename_all = "camelCase")]
2676pub struct BalloonGiftSettings {
2677    pub balloon_auto_dismiss_time_ms: u64,
2678    pub enable_balloon_gift: bool,
2679    pub enable_balloon_web_view: bool,
2680    pub get_wasabi_ad_rpc_interval_ms: u64,
2681}
2682
2683#[derive(Debug, Clone, Serialize, Deserialize)]
2684#[serde(rename_all = "camelCase")]
2685pub struct SponsoredGeofenceGiftSettings {
2686    pub balloon_gift_settings: BalloonGiftSettings,
2687    pub enable_sponsored_geofence_gift: bool,
2688    pub fullscreen_disable_exit_button_time_ms: u64,
2689    pub gift_persistence_time_ms: u64,
2690    pub map_presentation_time_ms: u64,
2691}
2692
2693#[derive(Debug, Clone, Serialize, Deserialize)]
2694#[serde(rename_all = "camelCase")]
2695pub struct SquashSettings {
2696    pub daily_squash_limit: u64,
2697    pub enabled: bool,
2698}
2699
2700#[derive(Debug, Clone, Serialize, Deserialize)]
2701#[serde(rename_all = "camelCase")]
2702pub struct StampCollectionSettings {
2703    pub default_color_pool: [String; 4],
2704    pub gifting_min_friendship_level: u64,
2705    pub min_player_level: u64,
2706    pub version: i64,
2707}
2708
2709#[derive(Debug, Clone, Serialize, Deserialize)]
2710#[serde(rename_all = "camelCase")]
2711pub struct TierBoosts {
2712    pub num_boost_icons: u64,
2713    pub num_stationed: u64,
2714}
2715
2716#[derive(Debug, Clone, Serialize, Deserialize)]
2717#[serde(rename_all = "camelCase")]
2718pub struct StationedPokemonTableSettings {
2719    pub stationed_pokemon_table_enum: String,
2720    pub tier_boosts: [TierBoosts; 20],
2721}
2722
2723#[derive(Debug, Clone, Serialize, Deserialize)]
2724#[serde(rename_all = "camelCase")]
2725pub struct StickerCategory {
2726    pub active: bool,
2727    pub category: String,
2728    pub preferred_category_icon: String,
2729    pub sort_order: u64,
2730}
2731
2732#[derive(Debug, Clone, Serialize, Deserialize)]
2733#[serde(rename_all = "camelCase")]
2734pub struct StickerCategoryV2 {
2735    pub active: bool,
2736    pub category: String,
2737    pub sort_order: u64,
2738}
2739
2740#[derive(Debug, Clone, Serialize, Deserialize)]
2741#[serde(rename_all = "camelCase")]
2742pub struct StickerCategorySettings {
2743    pub enabled: bool,
2744    pub sticker_category: (
2745        StickerCategory,
2746        StickerCategoryV2,
2747        StickerCategory,
2748        StickerCategory,
2749        StickerCategory,
2750        StickerCategory,
2751        StickerCategory,
2752    ),
2753}
2754
2755#[derive(Debug, Clone, Serialize, Deserialize)]
2756#[serde(rename_all = "camelCase")]
2757pub struct StyleShopSettings {
2758    pub cart_disabled: bool,
2759    pub recommended_item_icon_names: [String; 5],
2760    pub sets_enabled: bool,
2761    pub v2_enabled: bool,
2762}
2763
2764#[derive(Debug, Clone, Serialize, Deserialize)]
2765#[serde(rename_all = "camelCase")]
2766pub struct TicketGiftingSettings {
2767    pub daily_player_gifting_limit: u64,
2768    pub min_player_level: u64,
2769    pub min_required_friendship_level: String,
2770}
2771
2772#[derive(Debug, Clone, Serialize, Deserialize)]
2773#[serde(rename_all = "camelCase")]
2774pub struct TodayViewSettings {
2775    pub favorite_quest_enabled: bool,
2776    pub notification_server_authoritative: bool,
2777    pub pin_claimable_quest_enabled: bool,
2778}
2779
2780#[derive(Debug, Clone, Serialize, Deserialize)]
2781#[serde(rename_all = "camelCase")]
2782pub struct Item {
2783    pub count: u64,
2784    pub item_id: String,
2785}
2786
2787#[derive(Debug, Clone, Serialize, Deserialize)]
2788#[serde(rename_all = "camelCase")]
2789pub struct TutorialItemRewards {
2790    pub item: [Item; 2],
2791    pub tutorial: String,
2792}
2793
2794#[derive(Debug, Clone, Serialize, Deserialize)]
2795#[serde(rename_all = "camelCase")]
2796pub struct TutorialItemRewardsV2 {
2797    pub tutorial: u64,
2798}
2799
2800#[derive(Debug, Clone, Serialize, Deserialize)]
2801#[serde(rename_all = "camelCase")]
2802pub struct TutorialSettings {
2803    pub friends_tutorial_enabled: bool,
2804    pub gifts_tutorial_enabled: bool,
2805    pub lucky_friend_tutorial_enabled: bool,
2806    pub lucky_trade_tutorial_enabled: bool,
2807    pub lures_tutorial_enabled: bool,
2808    pub pokemon_tagging_tutorial_enabled: bool,
2809    pub razzberry_catch_tutorial_enabled: bool,
2810    pub revives_and_potions_tutorial_enabled: bool,
2811    pub task_help_tutorials_enabled: bool,
2812    pub trading_tutorial_enabled: bool,
2813    pub tutorial_item_rewards: (TutorialItemRewards, TutorialItemRewardsV2),
2814    pub type_effectiveness_tips_enabled: bool,
2815}
2816
2817#[derive(Debug, Clone, Serialize, Deserialize)]
2818#[serde(rename_all = "camelCase")]
2819pub struct UsernameSuggestionSettings {
2820    pub feature_enabled: bool,
2821    pub num_suggestions_displayed: u64,
2822    pub num_suggestions_generated: u64,
2823}
2824
2825#[derive(Debug, Clone, Serialize, Deserialize)]
2826#[serde(rename_all = "camelCase")]
2827pub struct VerboseLogCombatSettings {
2828    pub client_log_decay_time_in_hours: u64,
2829    pub enable_combat_challenge_setup: bool,
2830    pub enable_combat_vs_seeker_setup: bool,
2831    pub enable_core_combat: bool,
2832    pub enabled: bool,
2833    pub enable_exception_caught: bool,
2834    pub enable_on_application_focus: bool,
2835    pub enable_on_application_pause: bool,
2836    pub enable_on_application_quit: bool,
2837    pub enable_rpc_error_data: bool,
2838    pub enable_web_socket: bool,
2839    pub progress_token_priority: u64,
2840}
2841
2842#[derive(Debug, Clone, Serialize, Deserialize)]
2843#[serde(rename_all = "camelCase")]
2844pub struct VerboseLogRaidSettings {
2845    pub enable_attack_raid: bool,
2846    pub enable_client_prediction_inconsistency_data: bool,
2847    pub enable_exception_caught: bool,
2848    pub enable_get_raid_details: bool,
2849    pub enable_join_lobby: bool,
2850    pub enable_leave_lobby: bool,
2851    pub enable_on_application_focus: bool,
2852    pub enable_on_application_pause: bool,
2853    pub enable_on_application_quit: bool,
2854    pub enable_progress_token: bool,
2855    pub enable_rpc_error_data: bool,
2856    pub enable_send_raid_invitation: bool,
2857    pub enable_start_raid_battle: bool,
2858}
2859
2860#[derive(Debug, Clone, Serialize, Deserialize)]
2861#[serde(rename_all = "camelCase")]
2862pub struct VistaGeneralSettings {
2863    pub is_feature_enabled: bool,
2864    pub is_vista_battle_enabled: bool,
2865    pub is_vista_encounter_enabled: bool,
2866    pub is_vista_map_enabled: bool,
2867    pub is_vista_spawns_enabled: bool,
2868}
2869
2870#[derive(Debug, Clone, Serialize, Deserialize)]
2871#[serde(rename_all = "camelCase")]
2872pub struct MaxBattleConfig {
2873    pub bad_network_warning_threshold_turns: String,
2874    pub battle_end_timeout_threshold_ms: String,
2875    pub dead_network_disconnect_threshold_turns: String,
2876    pub no_opponent_connection_disconnect_threshold_turns: String,
2877}
2878
2879#[derive(Debug, Clone, Serialize, Deserialize)]
2880#[serde(rename_all = "camelCase")]
2881pub struct PvpBattleConfig {
2882    pub bad_network_warning_threshold_turns: String,
2883    pub battle_end_timeout_threshold_ms: String,
2884    pub dead_network_disconnect_threshold_turns: String,
2885    pub no_opponent_connection_disconnect_threshold_turns: String,
2886    pub pre_response_input_block_duration_ms: String,
2887    pub submit_turn_number_with_player_action: bool,
2888}
2889
2890#[derive(Debug, Clone, Serialize, Deserialize)]
2891#[serde(rename_all = "camelCase")]
2892pub struct VnextBattleConfig {
2893    pub max_battle_config: MaxBattleConfig,
2894    pub pvp_battle_config: PvpBattleConfig,
2895    pub raids_battle_config: MaxBattleConfig,
2896}
2897
2898#[derive(Debug, Clone, Serialize, Deserialize)]
2899#[serde(rename_all = "camelCase")]
2900pub struct VsSeekerClientSettings {
2901    pub allowed_vs_seeker_league_template_id: [String; 3],
2902}
2903
2904#[derive(Debug, Clone, Serialize, Deserialize)]
2905#[serde(rename_all = "camelCase")]
2906pub struct VsSeekerSchedules {
2907    pub end_time_ms: String,
2908    pub start_time_ms: String,
2909    pub vs_seeker_league_tempalte_id: [String; 2],
2910}
2911
2912#[derive(Debug, Clone, Serialize, Deserialize)]
2913#[serde(rename_all = "camelCase")]
2914pub struct VsSeekerSchedulesV2 {
2915    pub end_time_ms: String,
2916    pub start_time_ms: String,
2917    pub vs_seeker_league_tempalte_id: [String; 3],
2918}
2919
2920#[derive(Debug, Clone, Serialize, Deserialize)]
2921#[serde(rename_all = "camelCase")]
2922pub struct VsSeekerSchedulesV3 {
2923    pub end_time_ms: String,
2924    pub start_time_ms: String,
2925    pub vs_seeker_league_tempalte_id: Vec<String>,
2926}
2927
2928#[derive(Debug, Clone, Serialize, Deserialize)]
2929#[serde(rename_all = "camelCase")]
2930pub struct SeasonSchedules {
2931    pub blog_url: String,
2932    pub description_key: String,
2933    pub season_title: String,
2934    pub vs_seeker_schedules: Vec<VsSeekerSchedulesV3>,
2935}
2936
2937#[derive(Debug, Clone, Serialize, Deserialize)]
2938#[serde(rename_all = "camelCase")]
2939pub struct VsSeekerScheduleSettings {
2940    pub enable_combat_hub_main: bool,
2941    pub enable_combat_league_view: bool,
2942    pub enable_today_view: bool,
2943    pub season_schedules: [SeasonSchedules; 1],
2944}
2945
2946#[derive(Debug, Clone, Serialize, Deserialize)]
2947#[serde(rename_all = "camelCase")]
2948pub struct WeatherBonusSettings {
2949    pub attack_bonus_multiplier: f64,
2950    pub cp_base_level_bonus: u64,
2951    pub guaranteed_individual_values: u64,
2952    pub raid_encounter_cp_base_level_bonus: u64,
2953    pub raid_encounter_guaranteed_individual_values: u64,
2954    pub stardust_bonus_multiplier: f64,
2955}
2956
2957crate::masterfile_entry!(AccessibilitySettingsEntry, AccessibilitySettingsEntryData, accessibility_settings: AccessibilitySettings);
2958
2959crate::masterfile_entry!(AdditiveSceneSettingsEntry, AdditiveSceneSettingsEntryData, additive_scene_settings: AdditiveSceneSettings);
2960
2961crate::masterfile_entry!(AddressablePokemonSettingsEntry, AddressablePokemonSettingsEntryData, addressable_pokemon_settings: AddressablePokemonSettings);
2962
2963crate::masterfile_entry!(AddressBookImportSettingsEntry, AddressBookImportSettingsEntryData, address_book_import_settings: AddressBookImportSettings);
2964
2965crate::masterfile_entry!(AdvancedSettingsEntry, AdvancedSettingsEntryData, advanced_settings: AdvancedSettings);
2966
2967crate::masterfile_stub_entry!(
2968    AmuseBoucheWelcomeBackRewardsEntry,
2969    AmuseBoucheWelcomeBackRewardsEntryData
2970);
2971
2972crate::masterfile_entry!(ArPhotoFeatureFlagsEntry, ArPhotoFeatureFlagsEntryData, ar_photo_feature_flags: ArPhotoFeatureFlags);
2973
2974crate::masterfile_entry!(ArTelemetrySettingsEntry, ArTelemetrySettingsEntryData, ar_telemetry_settings: ArTelemetrySettings);
2975
2976crate::masterfile_entry!(AssetRefreshProtoEntry, AssetRefreshProtoEntryData, asset_refresh_proto: AssetRefreshProto);
2977
2978crate::masterfile_entry!(AvatarFeatureFlagsEntry, AvatarFeatureFlagsEntryData, avatar_feature_flags: AvatarFeatureFlags);
2979
2980crate::masterfile_entry!(AvatarStoreFooterFlagsEntry, AvatarStoreFooterFlagsEntryData, avatar_store_footer_flags: AvatarStoreFooterFlags);
2981
2982crate::masterfile_entry!(AvatarStoreSubcategoryFilteringFlagsEntry, AvatarStoreSubcategoryFilteringFlagsEntryData, avatar_store_subcategory_filtering_flags: AvatarStoreSubcategoryFilteringFlags);
2983
2984crate::masterfile_entry!(BackgroundModeSettingsEntry, BackgroundModeSettingsEntryData, background_mode_settings: BackgroundModeSettings);
2985
2986crate::masterfile_entry!(BattleAnimationSettingsEntry, BattleAnimationSettingsEntryData, battle_animation_settings: BattleAnimationSettings);
2987
2988crate::masterfile_entry!(BattleHubBadgeSettingsEntry, BattleHubBadgeSettingsEntryData, battle_hub_badge_settings: BattleHubBadgeSettings);
2989
2990crate::masterfile_entry!(BattleHubOrderSettingsEntry, BattleHubOrderSettingsEntryData, battle_hub_order_settings: BattleHubOrderSettings);
2991
2992crate::masterfile_entry!(BattleInputBufferSettingsEntry, BattleInputBufferSettingsEntryData, battle_input_buffer_settings: BattleInputBufferSettings);
2993
2994crate::masterfile_entry!(BattlePartySettingsEntry, BattlePartySettingsEntryData, battle_party_settings: BattlePartySettings);
2995
2996crate::masterfile_entry!(BattleSettingsEntry, BattleSettingsEntryData, battle_settings: BattleSettings);
2997
2998crate::masterfile_entry!(BattleVisualSettingsEntry, BattleVisualSettingsEntryData, battle_visual_settings: BattleVisualSettings);
2999
3000crate::masterfile_entry!(BelugaPokemonWhitelistEntry, BelugaPokemonWhitelistEntryData, beluga_pokemon_whitelist: BelugaPokemonWhitelist);
3001
3002crate::masterfile_entry!(BestFriendsPlusSettingsEntry, BestFriendsPlusSettingsEntryData, best_friends_plus_settings: BestFriendsPlusSettings);
3003
3004crate::masterfile_entry!(BreadBattleClientSettingsEntry, BreadBattleClientSettingsEntryData, bread_battle_client_settings: BreadBattleClientSettings);
3005
3006crate::masterfile_entry!(BreadFeatureFlagsEntry, BreadFeatureFlagsEntryData, bread_feature_flags: BreadFeatureFlags);
3007
3008crate::masterfile_entry!(BreadLobbyCounterSettingsEntry, BreadLobbyCounterSettingsEntryData, bread_lobby_counter_settings: BreadLobbyCounterSettings);
3009
3010crate::masterfile_entry!(BreadLobbyUpdateSettingsEntry, BreadLobbyUpdateSettingsEntryData, bread_lobby_update_settings: BreadLobbyUpdateSettings);
3011
3012crate::masterfile_entry!(BreadMoveMappingsEntry, BreadMoveMappingsEntryData, bread_move_mappings: BreadMoveMappings);
3013
3014crate::masterfile_entry!(BreadPokemonScalingSettingsEntry, BreadPokemonScalingSettingsEntryData, bread_pokemon_scaling_settings: BreadPokemonScalingSettings);
3015
3016crate::masterfile_entry!(BreadSettingsEntry, BreadSettingsEntryData, bread_settings: BreadSettings);
3017
3018crate::masterfile_entry!(BuddyEncounterCameoSettingsEntry, BuddyEncounterCameoSettingsEntryData, buddy_encounter_cameo_settings: BuddyEncounterCameoSettings);
3019
3020crate::masterfile_entry!(BuddyHungerSettingsEntry, BuddyHungerSettingsEntryData, buddy_hunger_settings: BuddyHungerSettings);
3021
3022crate::masterfile_entry!(BuddyInteractionSettingsEntry, BuddyInteractionSettingsEntryData, buddy_interaction_settings: BuddyInteractionSettings);
3023
3024crate::masterfile_entry!(BuddySwapSettingsEntry, BuddySwapSettingsEntryData, buddy_swap_settings: BuddySwapSettings);
3025
3026crate::masterfile_entry!(BuddyWalkSettingsEntry, BuddyWalkSettingsEntryData, buddy_walk_settings: BuddyWalkSettings);
3027
3028crate::masterfile_entry!(BulkHealingSettingsEntry, BulkHealingSettingsEntryData, bulk_healing_settings: BulkHealingSettings);
3029
3030crate::masterfile_entry!(ButterflyCollectorSettingsEntry, ButterflyCollectorSettingsEntryData, butterfly_collector_settings: ButterflyCollectorSettings);
3031
3032crate::masterfile_entry!(CampfireSettingsEntry, CampfireSettingsEntryData, campfire_settings: CampfireSettings);
3033
3034crate::masterfile_entry!(CatchRadiusMultiplierSettingsEntry, CatchRadiusMultiplierSettingsEntryData, catch_radius_multiplier_settings: CatchRadiusMultiplierSettings);
3035
3036crate::masterfile_entry!(CombatCompetitiveSeasonSettingsEntry, CombatCompetitiveSeasonSettingsEntryData, combat_competitive_season_settings: CombatCompetitiveSeasonSettings);
3037
3038crate::masterfile_entry!(CombatLeagueSettingsEntry, CombatLeagueSettingsEntryData, combat_league_settings: CombatLeagueSettings);
3039
3040crate::masterfile_entry!(CombatSettingsEntry, CombatSettingsEntryData, combat_settings: CombatSettings);
3041
3042crate::masterfile_entry!(CombatStatStageSettingsEntry, CombatStatStageSettingsEntryData, combat_stat_stage_settings: CombatStatStageSettings);
3043
3044crate::masterfile_entry!(ContestSettingsEntry, ContestSettingsEntryData, contest_settings: ContestSettings);
3045
3046crate::masterfile_entry!(ConversationSettingsEntry, ConversationSettingsEntryData, conversation_settings: ConversationSettings);
3047
3048crate::masterfile_entry!(CrossGameSocialSettingsEntry, CrossGameSocialSettingsEntryData, cross_game_social_settings: CrossGameSocialSettings);
3049
3050crate::masterfile_entry!(DailyAdventureIncenseSettingsEntry, DailyAdventureIncenseSettingsEntryData, daily_adventure_incense_settings: DailyAdventureIncenseSettings);
3051
3052crate::masterfile_entry!(DeepLinkingSettingsEntry, DeepLinkingSettingsEntryData, deep_linking_settings: DeepLinkingSettings);
3053
3054crate::masterfile_entry!(EggHatchImprovementsSettingsEntry, EggHatchImprovementsSettingsEntryData, egg_hatch_improvements_settings: EggHatchImprovementsSettings);
3055
3056crate::masterfile_entry!(EncounterSettingsEntry, EncounterSettingsEntryData, encounter_settings: EncounterSettings);
3057
3058crate::masterfile_entry!(ErrorReportingSettingsEntry, ErrorReportingSettingsEntryData, error_reporting_settings: ErrorReportingSettings);
3059
3060crate::masterfile_entry!(EventPlannerPopularNotificationSettingsEntry, EventPlannerPopularNotificationSettingsEntryData, event_planner_popular_notification_settings: EventPlannerPopularNotificationSettings);
3061
3062crate::masterfile_stub_entry!(EventServerSettingsEntry, EventServerSettingsEntryData);
3063
3064crate::masterfile_entry!(ExternalAddressableAssetsSettingsEntry, ExternalAddressableAssetsSettingsEntryData, external_addressable_assets_settings: ExternalAddressableAssetsSettings);
3065
3066crate::masterfile_entry!(FeatureUnlockLevelSettingsEntry, FeatureUnlockLevelSettingsEntryData, feature_unlock_level_settings: FeatureUnlockLevelSettings);
3067
3068crate::masterfile_entry!(GeotargetedQuestSettingsEntry, GeotargetedQuestSettingsEntryData, geotargeted_quest_settings: GeotargetedQuestSettings);
3069
3070crate::masterfile_entry!(GiftingSettingsEntry, GiftingSettingsEntryData, gifting_settings: GiftingSettings);
3071
3072crate::masterfile_entry!(GuiSearchSettingsEntry, GuiSearchSettingsEntryData, gui_search_settings: GuiSearchSettings);
3073
3074crate::masterfile_entry!(GymBadgeSettingsEntry, GymBadgeSettingsEntryData, gym_badge_settings: GymBadgeSettings);
3075
3076crate::masterfile_entry!(HapticsSettingsEntry, HapticsSettingsEntryData, haptics_settings: HapticsSettings);
3077
3078crate::masterfile_entry!(IapSettingsEntry, IapSettingsEntryData, iap_settings: IapSettings);
3079
3080crate::masterfile_entry!(IbfcLightweightSettingsEntry, IbfcLightweightSettingsEntryData, ibfc_lightweight_settings: IbfcLightweightSettings);
3081
3082crate::masterfile_entry!(ImpressionTrackingSettingsEntry, ImpressionTrackingSettingsEntryData, impression_tracking_settings: ImpressionTrackingSettings);
3083
3084crate::masterfile_entry!(InAppSurveySettingsEntry, InAppSurveySettingsEntryData, in_app_survey_settings: InAppSurveySettings);
3085
3086crate::masterfile_entry!(IncidentPrioritySettingsEntry, IncidentPrioritySettingsEntryData, incident_priority_settings: IncidentPrioritySettings);
3087
3088crate::masterfile_entry!(IncidentVisibilitySettingsEntry, IncidentVisibilitySettingsEntryData, incident_visibility_settings: IncidentVisibilitySettings);
3089
3090crate::masterfile_entry!(InventorySettingsEntry, InventorySettingsEntryData, inventory_settings: InventorySettings);
3091
3092crate::masterfile_entry!(IrisSocialSettingsEntry, IrisSocialSettingsEntryData, iris_social_settings: IrisSocialSettings);
3093
3094crate::masterfile_entry!(IrisSocialUxFunnelSettingsEntry, IrisSocialUxFunnelSettingsEntryData, iris_social_ux_funnel_settings: IrisSocialUxFunnelSettings);
3095
3096crate::masterfile_entry!(ItemCurrencyValuesEntry, ItemCurrencyValuesEntryData, item_currency_values: ItemCurrencyValues);
3097
3098crate::masterfile_entry!(ItemInventoryUpdateSettingsEntry, ItemInventoryUpdateSettingsEntryData, item_inventory_update_settings: ItemInventoryUpdateSettings);
3099
3100crate::masterfile_entry!(JoinRaidViaFriendListSettingsEntry, JoinRaidViaFriendListSettingsEntryData, join_raid_via_friend_list_settings: JoinRaidViaFriendListSettings);
3101
3102crate::masterfile_entry!(LanguageSelectorSettingsEntry, LanguageSelectorSettingsEntryData, language_selector_settings: LanguageSelectorSettings);
3103
3104crate::masterfile_entry!(LuckyPokemonSettingsEntry, LuckyPokemonSettingsEntryData, lucky_pokemon_settings: LuckyPokemonSettings);
3105
3106crate::masterfile_entry!(MainMenuChangesEntry, MainMenuChangesEntryData, main_menu_changes: MainMenuChanges);
3107
3108crate::masterfile_entry!(MapDisplaySettingsEntry, MapDisplaySettingsEntryData, map_display_settings: MapDisplaySettings);
3109
3110crate::masterfile_entry!(MapObjectsInteractionRangeSettingsEntry, MapObjectsInteractionRangeSettingsEntryData, map_objects_interaction_range_settings: MapObjectsInteractionRangeSettings);
3111
3112crate::masterfile_entry!(MegaEvoSettingsEntry, MegaEvoSettingsEntryData, mega_evo_settings: MegaEvoSettings);
3113
3114crate::masterfile_entry!(MonodepthSettingsEntry, MonodepthSettingsEntryData, monodepth_settings: MonodepthSettings);
3115
3116crate::masterfile_entry!(MpSettingsEntry, MpSettingsEntryData, mp_settings: MpSettings);
3117
3118crate::masterfile_entry!(NaturalArtDayNightFeatureSettingsEntry, NaturalArtDayNightFeatureSettingsEntryData, natural_art_day_night_feature_settings: NaturalArtDayNightFeatureSettings);
3119
3120crate::masterfile_entry!(NearbyPokemonSettingsEntry, NearbyPokemonSettingsEntryData, nearby_pokemon_settings: NearbyPokemonSettings);
3121
3122crate::masterfile_entry!(NeutralAvatarSettingsEntry, NeutralAvatarSettingsEntryData, neutral_avatar_settings: NeutralAvatarSettings);
3123
3124crate::masterfile_entry!(OnboardingSettingsEntry, OnboardingSettingsEntryData, onboarding_settings: OnboardingSettings);
3125
3126crate::masterfile_entry!(OptimizationsProtoEntry, OptimizationsProtoEntryData, optimizations_proto: OptimizationsProto);
3127
3128crate::masterfile_entry!(PartyDarkLaunchSettingsEntry, PartyDarkLaunchSettingsEntryData, party_dark_launch_settings: PartyDarkLaunchSettings);
3129
3130crate::masterfile_entry!(PartyIapBoostsSettingsEntry, PartyIapBoostsSettingsEntryData, party_iap_boosts_settings: PartyIapBoostsSettings);
3131
3132crate::masterfile_entry!(PartyRecommendationSettingsEntry, PartyRecommendationSettingsEntryData, party_recommendation_settings: PartyRecommendationSettings);
3133
3134crate::masterfile_entry!(PhotoSettingsEntry, PhotoSettingsEntryData, photo_settings: PhotoSettings);
3135
3136crate::masterfile_entry!(PlannerSettingsEntry, PlannerSettingsEntryData, planner_settings: PlannerSettings);
3137
3138crate::masterfile_entry!(PlayerBonusSystemSettingsEntry, PlayerBonusSystemSettingsEntryData, player_bonus_system_settings: PlayerBonusSystemSettings);
3139
3140crate::masterfile_entry!(PlayerLevelEntry, PlayerLevelEntryData, player_level: PlayerLevel);
3141
3142crate::masterfile_entry!(PokeballThrowPropertySettingsEntry, PokeballThrowPropertySettingsEntryData, pokeball_throw_property_settings: PokeballThrowPropertySettings);
3143
3144crate::masterfile_entry!(PokecoinPurchaseDisplayGmtEntry, PokecoinPurchaseDisplayGmtEntryData, pokecoin_purchase_display_gmt: PokecoinPurchaseDisplayGmt);
3145
3146crate::masterfile_entry!(PokedexCategoriesSettingsEntry, PokedexCategoriesSettingsEntryData, pokedex_categories_settings: PokedexCategoriesSettings);
3147
3148crate::masterfile_entry!(PokedexSizeStatsSystemSettingsEntry, PokedexSizeStatsSystemSettingsEntryData, pokedex_size_stats_system_settings: PokedexSizeStatsSystemSettings);
3149
3150crate::masterfile_entry!(Pokedexv2featureFlagsEntry, Pokedexv2featureFlagsEntryData, pokedexv2_feature_flags: Pokedexv2featureFlags);
3151
3152crate::masterfile_entry!(PokedexV2settingsEntry, PokedexV2settingsEntryData, pokedex_v2_settings: PokedexV2settings);
3153
3154crate::masterfile_entry!(PokemonFxSettingsEntry, PokemonFxSettingsEntryData, pokemon_fx_settings: PokemonFxSettings);
3155
3156crate::masterfile_entry!(PokemonHomeSettingsEntry, PokemonHomeSettingsEntryData, pokemon_home_settings: PokemonHomeSettings);
3157
3158crate::masterfile_entry!(PokemonTagSettingsEntry, PokemonTagSettingsEntryData, pokemon_tag_settings: PokemonTagSettings);
3159
3160crate::masterfile_entry!(PopupControlSettingsEntry, PopupControlSettingsEntryData, popup_control_settings: PopupControlSettings);
3161
3162crate::masterfile_entry!(PostcardCollectionSettingsEntry, PostcardCollectionSettingsEntryData, postcard_collection_settings: PostcardCollectionSettings);
3163
3164crate::masterfile_entry!(PowerUpPokestopsSettingsEntry, PowerUpPokestopsSettingsEntryData, power_up_pokestops_settings: PowerUpPokestopsSettings);
3165
3166crate::masterfile_entry!(PrimalEvoSettingsEntry, PrimalEvoSettingsEntryData, primal_evo_settings: PrimalEvoSettings);
3167
3168crate::masterfile_entry!(PtcOauthSettingsEntry, PtcOauthSettingsEntryData, ptc_oauth_settings: PtcOauthSettings);
3169
3170crate::masterfile_stub_entry!(
3171    QuestDialogueInboxSettingsEntry,
3172    QuestDialogueInboxSettingsEntryData
3173);
3174
3175crate::masterfile_entry!(QuickInviteSettingsEntry, QuickInviteSettingsEntryData, quick_invite_settings: QuickInviteSettings);
3176
3177crate::masterfile_stub_entry!(RaidEntryCostSettingsEntry, RaidEntryCostSettingsEntryData);
3178
3179crate::masterfile_entry!(RaidLobbyCounterSettingsEntry, RaidLobbyCounterSettingsEntryData, raid_lobby_counter_settings: RaidLobbyCounterSettings);
3180
3181crate::masterfile_entry!(RaidSettingsEntry, RaidSettingsEntryData, raid_settings: RaidSettings);
3182
3183crate::masterfile_entry!(ReferralSettingsEntry, ReferralSettingsEntryData, referral_settings: ReferralSettings);
3184
3185crate::masterfile_entry!(RemoteTradeSettingsEntry, RemoteTradeSettingsEntryData, remote_trade_settings: RemoteTradeSettings);
3186
3187crate::masterfile_entry!(RouteBadgeSettingsEntry, RouteBadgeSettingsEntryData, route_badge_settings: RouteBadgeSettings);
3188
3189crate::masterfile_entry!(RouteCreationSettingsEntry, RouteCreationSettingsEntryData, route_creation_settings: RouteCreationSettings);
3190
3191crate::masterfile_entry!(RouteDiscoverySettingsEntry, RouteDiscoverySettingsEntryData, route_discovery_settings: RouteDiscoverySettings);
3192
3193crate::masterfile_entry!(RoutePinSettingsEntry, RoutePinSettingsEntryData, route_pin_settings: RoutePinSettings);
3194
3195crate::masterfile_entry!(RoutePlaySettingsEntry, RoutePlaySettingsEntryData, route_play_settings: RoutePlaySettings);
3196
3197crate::masterfile_entry!(RoutesNearbyNotifSettingsEntry, RoutesNearbyNotifSettingsEntryData, routes_nearby_notif_settings: RoutesNearbyNotifSettings);
3198
3199crate::masterfile_entry!(RoutesPartyPlayInteropSettingsEntry, RoutesPartyPlayInteropSettingsEntryData, routes_party_play_interop_settings: RoutesPartyPlayInteropSettings);
3200
3201crate::masterfile_entry!(RouteStampCategorySettingsEntry, RouteStampCategorySettingsEntryData, route_stamp_category_settings: RouteStampCategorySettings);
3202
3203crate::masterfile_entry!(SharedFusionSettingsEntry, SharedFusionSettingsEntryData, shared_fusion_settings: SharedFusionSettings);
3204
3205crate::masterfile_entry!(SharedMoveSettingsEntry, SharedMoveSettingsEntryData, shared_move_settings: SharedMoveSettings);
3206
3207crate::masterfile_stub_entry!(SoftSfidaSettingsEntry, SoftSfidaSettingsEntryData);
3208
3209crate::masterfile_entry!(SourdoughMoveMappingSettingsEntry, SourdoughMoveMappingSettingsEntryData, sourdough_move_mapping_settings: SourdoughMoveMappingSettings);
3210
3211crate::masterfile_entry!(SpecialEggSettingsEntry, SpecialEggSettingsEntryData, special_egg_settings: SpecialEggSettings);
3212
3213crate::masterfile_entry!(SponsoredGeofenceGiftSettingsEntry, SponsoredGeofenceGiftSettingsEntryData, sponsored_geofence_gift_settings: SponsoredGeofenceGiftSettings);
3214
3215crate::masterfile_entry!(SquashSettingsEntry, SquashSettingsEntryData, squash_settings: SquashSettings);
3216
3217crate::masterfile_entry!(StampCollectionSettingsEntry, StampCollectionSettingsEntryData, stamp_collection_settings: StampCollectionSettings);
3218
3219crate::masterfile_entry!(StationedPokemonTableSettingsEntry, StationedPokemonTableSettingsEntryData, stationed_pokemon_table_settings: StationedPokemonTableSettings);
3220
3221crate::masterfile_entry!(StickerCategorySettingsEntry, StickerCategorySettingsEntryData, sticker_category_settings: StickerCategorySettings);
3222
3223crate::masterfile_entry!(StyleShopSettingsEntry, StyleShopSettingsEntryData, style_shop_settings: StyleShopSettings);
3224
3225crate::masterfile_entry!(TicketGiftingSettingsEntry, TicketGiftingSettingsEntryData, ticket_gifting_settings: TicketGiftingSettings);
3226
3227crate::masterfile_entry!(TodayViewSettingsEntry, TodayViewSettingsEntryData, today_view_settings: TodayViewSettings);
3228
3229crate::masterfile_entry!(TutorialSettingsEntry, TutorialSettingsEntryData, tutorial_settings: TutorialSettings);
3230
3231crate::masterfile_entry!(UsernameSuggestionSettingsEntry, UsernameSuggestionSettingsEntryData, username_suggestion_settings: UsernameSuggestionSettings);
3232
3233crate::masterfile_entry!(VerboseLogCombatSettingsEntry, VerboseLogCombatSettingsEntryData, verbose_log_combat_settings: VerboseLogCombatSettings);
3234
3235crate::masterfile_entry!(VerboseLogRaidSettingsEntry, VerboseLogRaidSettingsEntryData, verbose_log_raid_settings: VerboseLogRaidSettings);
3236
3237crate::masterfile_entry!(VistaGeneralSettingsEntry, VistaGeneralSettingsEntryData, vista_general_settings: VistaGeneralSettings);
3238
3239crate::masterfile_entry!(VnextBattleConfigEntry, VnextBattleConfigEntryData, vnext_battle_config: VnextBattleConfig);
3240
3241crate::masterfile_entry!(VsSeekerClientSettingsEntry, VsSeekerClientSettingsEntryData, vs_seeker_client_settings: VsSeekerClientSettings);
3242
3243crate::masterfile_entry!(VsSeekerScheduleSettingsEntry, VsSeekerScheduleSettingsEntryData, vs_seeker_schedule_settings: VsSeekerScheduleSettings);
3244
3245crate::masterfile_entry!(WeatherBonusSettingsEntry, WeatherBonusSettingsEntryData, weather_bonus_settings: WeatherBonusSettings);