// This file is @generated by prost-build.
/// From: Commons\AchievementClearInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AchievementClearInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\AchievementDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AchievementDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub value: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub max_clear_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub contents_group: ::core::option::Option<i32>,
}
/// From: Commons\AttendanceEventInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttendanceAlwaysInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub attendance_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub attendance_count: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttendanceLimitGroup {
    #[prost(int32, optional, tag = "1")]
    pub limit_event_schedule_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub attendance_limit_info: ::prost::alloc::vec::Vec<AttendanceLimitInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttendanceLimitInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub reward_id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "3")]
    pub reward_date: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SubscribeAttendanceInfo {
    #[prost(int32, optional, tag = "1")]
    pub ticket_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub reserved_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub expiry_date: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttendancePackageInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_reward: ::core::option::Option<bool>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttendanceEventRewardObtainInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\BattleCharDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleCharDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub unique_index: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub hp: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "6")]
    pub costume_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "7")]
    pub costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub costume_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub grid_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub reserve_costume_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "11")]
    pub is_active_sub_skill_use: ::core::option::Option<bool>,
    #[prost(int64, repeated, packed = "false", tag = "12")]
    pub equip_index: ::prost::alloc::vec::Vec<i64>,
    #[prost(message, repeated, tag = "13")]
    pub buff_list: ::prost::alloc::vec::Vec<ServerBuffList>,
    #[prost(message, repeated, tag = "14")]
    pub dodge: ::prost::alloc::vec::Vec<ServerDodge>,
    #[prost(message, repeated, tag = "15")]
    pub revival: ::prost::alloc::vec::Vec<ServerRevival>,
    #[prost(message, repeated, tag = "16")]
    pub barrier_buff: ::prost::alloc::vec::Vec<ServerBarrierBuff>,
    #[prost(message, repeated, tag = "17")]
    pub element_buff: ::prost::alloc::vec::Vec<ServerElementBuff>,
    #[prost(message, repeated, tag = "18")]
    pub energy_guard: ::prost::alloc::vec::Vec<ServerEnergyGuard>,
    #[prost(message, repeated, tag = "19")]
    pub wounded_add_buff: ::prost::alloc::vec::Vec<ServerWoundedAddBuff>,
    #[prost(message, repeated, tag = "20")]
    pub vulnerable_buff: ::prost::alloc::vec::Vec<ServerVulnerableBuff>,
    #[prost(message, repeated, tag = "21")]
    pub aura: ::prost::alloc::vec::Vec<ServerAuraBuff>,
    #[prost(message, repeated, tag = "22")]
    pub transformation: ::prost::alloc::vec::Vec<ServerTransformation>,
    #[prost(message, repeated, tag = "23")]
    pub chain_buff: ::prost::alloc::vec::Vec<ServerChainBuff>,
    #[prost(message, optional, tag = "24")]
    pub buff_plus_stat: ::core::option::Option<ServerBattleCharStat>,
    #[prost(message, optional, tag = "25")]
    pub buff_multiple_stat: ::core::option::Option<ServerBattleCharStat>,
    #[prost(int64, optional, tag = "26")]
    pub attack_damage: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "27")]
    pub battle_power: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "28")]
    pub total_war_play_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "29")]
    pub connect_potential_costume: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "30")]
    pub potential_costume_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int64, repeated, packed = "false", tag = "31")]
    pub priority_skill_costume_inven_index: ::prost::alloc::vec::Vec<i64>,
    #[prost(message, repeated, tag = "32")]
    pub skill_turn_dic: ::prost::alloc::vec::Vec<battle_char_db_info::SkillTurnDicEntry>,
    #[prost(int32, optional, tag = "33")]
    pub targeting_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "34")]
    pub chain_bonus_buff: ::prost::alloc::vec::Vec<ServerChainBonusBuff>,
    #[prost(message, repeated, tag = "35")]
    pub chain_limit: ::prost::alloc::vec::Vec<ServerChainLimit>,
    #[prost(message, repeated, tag = "36")]
    pub enhanced_damage: ::prost::alloc::vec::Vec<ServerEnhancedDamage>,
    #[prost(message, repeated, tag = "37")]
    pub immune: ::prost::alloc::vec::Vec<ServerImmune>,
    #[prost(int64, optional, tag = "38")]
    pub supporter_owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "39")]
    pub supporter_slot_index: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "40")]
    pub sp_reduction: ::prost::alloc::vec::Vec<ServerSpReduction>,
    #[prost(int32, optional, tag = "41")]
    pub costume_design_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "42")]
    pub hit_count_reactive_buff: ::prost::alloc::vec::Vec<ServerHitCountReactiveBuff>,
}
/// Nested message and enum types in `BattleCharDBInfo`.
pub mod battle_char_db_info {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct SkillTurnDicEntry {
        #[prost(int32, optional, tag = "1")]
        pub key: ::core::option::Option<i32>,
        #[prost(int32, optional, tag = "2")]
        pub value: ::core::option::Option<i32>,
    }
}
/// From: Commons\BattleDamageDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleDamageDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub value: ::core::option::Option<i64>,
}
/// From: Commons\BattleGolemDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleGolemDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub level: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "2")]
    pub gauge: ::core::option::Option<f64>,
    #[prost(int32, optional, tag = "3")]
    pub remain_turn: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub reserve_costume_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub skill_turn_dic: ::prost::alloc::vec::Vec<
        battle_golem_db_info::SkillTurnDicEntry,
    >,
}
/// Nested message and enum types in `BattleGolemDBInfo`.
pub mod battle_golem_db_info {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct SkillTurnDicEntry {
        #[prost(int32, optional, tag = "1")]
        pub key: ::core::option::Option<i32>,
        #[prost(int32, optional, tag = "2")]
        pub value: ::core::option::Option<i32>,
    }
}
/// From: Commons\BattleGridTypeItemDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleGridTypeItemDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub team_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub grid_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub buff_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "4")]
    pub is_infinite: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "5")]
    pub buff_turn: ::core::option::Option<i32>,
}
/// From: Commons\BattleResultDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleResultDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub red_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub blue_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub grid_item: ::prost::alloc::vec::Vec<BattleGridTypeItemDbInfo>,
    #[prost(message, optional, tag = "5")]
    pub battle_statistics_info: ::core::option::Option<BattleStatisticsDbInfo>,
    #[prost(message, optional, tag = "6")]
    pub golem_info: ::core::option::Option<BattleGolemDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub red_deck_out_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "8")]
    pub blue_deck_out_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
}
/// From: Commons\BattleStatisticsDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleStatisticsDbInfo {
    #[prost(message, repeated, tag = "1")]
    pub attack_damage_info: ::prost::alloc::vec::Vec<BattleDamageDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub received_damage_info: ::prost::alloc::vec::Vec<BattleDamageDbInfo>,
}
/// From: Commons\BuffListInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerBuffList {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub over_lap_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub current_over_lap_per_turn: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub buff_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub buff_turn_change_count: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerDodge {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub success_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub creator_unique_id: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerRevival {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerBarrierBuff {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub over_lap_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub current_over_lap_per_turn: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerElementBuff {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerWoundedAddBuff {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub over_lap_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub current_over_lap_per_turn: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub costume_id: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerEnergyGuard {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub remain_energy: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "6")]
    pub max_remain_energy: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "7")]
    pub over_lap_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub current_over_lap_per_turn: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ServerBattleCharStat {
    #[prost(double, optional, tag = "1")]
    pub max_health: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "2")]
    pub current_health: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "3")]
    pub agility_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "4")]
    pub physical_power_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "5")]
    pub magic_power_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "6")]
    pub physical_defense_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "7")]
    pub magic_defense_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "8")]
    pub critical_chance_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "9")]
    pub critical_damage_rate_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "10")]
    pub element_damage_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "11")]
    pub element_resistance_value: ::core::option::Option<f64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerVulnerableBuff {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub over_lap_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub current_over_lap_per_turn: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerAuraBuff {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub attack_range: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub attack_range_count: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerTransformation {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub costume_id: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerChainBuff {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub over_lap_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub current_over_lap_per_turn: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerChainBonusBuff {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerChainLimit {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerEnhancedDamage {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub over_lap_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub current_over_lap_per_turn: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerImmune {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerSpReduction {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub apply_start_turn: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerHitCountReactiveBuff {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub owner_unique_id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub creator_unique_id: ::core::option::Option<i64>,
}
/// From: Commons\CafeteriaDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub reward_receipt_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub spawn_time: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "4")]
    pub ongoing_manage_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "5")]
    pub daily_regular_costume_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "6")]
    pub rewarded_daily_regular_costume_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "7")]
    pub daily_connection_costume_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "8")]
    pub can_get_phone_number: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "9")]
    pub daily_npc_reward_currency_count: ::core::option::Option<i32>,
}
/// From: Commons\CafeteriaFacilityDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaFacilityDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub facility_id: ::core::option::Option<i32>,
}
/// From: Commons\CafeteriaPartTimeManagerDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaPartTimeManagerDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub part_time_manager_id: ::core::option::Option<i32>,
}
/// From: Commons\CafeteriaRegularCostumeNoteDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRegularCostumeNoteDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub serve_count: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_received_reward: ::core::option::Option<bool>,
}
/// From: Commons\CashProductDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CashProductDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub sale_group: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub end_time: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "6")]
    pub end_delay_minutes: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "8")]
    pub event_index: ::core::option::Option<i64>,
}
/// From: Commons\CharAwakeDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharAwakeDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub unique_char_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub imprint_slot_1_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub imprint_slot_2_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub imprint_slot_3_level: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "5")]
    pub is_awake: ::core::option::Option<bool>,
    #[prost(int64, optional, tag = "6")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Commons\CharDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub hp: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "4")]
    pub level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub exp: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "7")]
    pub use_costume: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "8")]
    pub talent_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub talent_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub solidarity_reward: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "11")]
    pub expiry_time: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "12")]
    pub pictorialbook_info: ::prost::alloc::vec::Vec<PictorialBookDbInfo>,
    #[prost(int32, optional, tag = "13")]
    pub connect_potential_costume: ::core::option::Option<i32>,
}
/// From: Commons\ChargeCostEventScheduleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ChargeCostEventScheduleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub schedule_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub item_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub max_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub end_time: ::core::option::Option<i64>,
}
/// From: Commons\CharPartnerDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharPartnerDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub main_unique_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub sub_unique_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub point: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub reward: ::core::option::Option<i32>,
}
/// From: Commons\ContentRankStatueDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContentRankStatueDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub error_flag: ::core::option::Option<bool>,
    #[prost(message, repeated, tag = "4")]
    pub statue_group_info: ::prost::alloc::vec::Vec<StatueGroupDbInfo>,
}
/// From: Commons\ContentsCharItemInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContentsCharItemInfo {
    #[prost(int64, optional, tag = "1")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "2")]
    pub equip_info: ::prost::alloc::vec::Vec<ContentsEquipDbInfo>,
    #[prost(int32, optional, tag = "3")]
    pub connect_potential_costume: ::core::option::Option<i32>,
}
/// From: Commons\ContentsEquipDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ContentsEquipDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub equip_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub equip_type: ::core::option::Option<i32>,
}
/// From: Commons\CostTimeDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostTimeDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub last_charge_time: ::core::option::Option<i64>,
    #[prost(message, optional, tag = "2")]
    pub cost_item_info: ::core::option::Option<ItemDbInfo>,
}
/// From: Commons\CostumeBaseDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeBaseDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub design_id: ::core::option::Option<i32>,
}
/// From: Commons\CostumeDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CostumeDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub use_char: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "5")]
    pub pictorialbook_info: ::prost::alloc::vec::Vec<PictorialBookDbInfo>,
    #[prost(int32, optional, tag = "6")]
    pub sort_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub use_my_room_count: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "8")]
    pub potential_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "9")]
    pub design_id: ::core::option::Option<i32>,
}
/// From: Commons\DatingEpisodeDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DatingEpisodeDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub dating_point: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub last_clear_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub last_message_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub last_message_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "6")]
    pub last_message_update_time: ::core::option::Option<i64>,
}
/// From: Commons\DatingMessageChoiceDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DatingMessageChoiceDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub select_text_id: ::core::option::Option<i32>,
}
/// From: Commons\DeckCostumeSettingDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeckCostumeSettingDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub costume_inven_index_seq: ::prost::alloc::vec::Vec<i64>,
}
/// From: Commons\DeckDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeckDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub position: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub sequence: ::core::option::Option<i32>,
}
/// From: Commons\DelayedVisibilityScheduleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DelayedVisibilityScheduleDbInfo {
    #[prost(enumeration = "DefineDelayedVisibilityType", optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub table_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub open_date: ::core::option::Option<i64>,
}
/// From: Commons\DispatchDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DispatchDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub server_now_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub end_time: ::core::option::Option<i64>,
}
/// From: Commons\EnvInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EnvInfo {
    #[prost(bool, optional, tag = "1")]
    pub is_live: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "2")]
    pub use_sdk: ::core::option::Option<bool>,
}
/// From: Commons\EquipBaseInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipBaseInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub main_option: ::prost::alloc::vec::Vec<EquipOptionInfo>,
    #[prost(message, repeated, tag = "4")]
    pub sub_option: ::prost::alloc::vec::Vec<EquipOptionInfo>,
    #[prost(message, optional, tag = "5")]
    pub private_option: ::core::option::Option<EquipOptionInfo>,
    #[prost(int32, repeated, packed = "false", tag = "6")]
    pub rank: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\EquipBatchUseInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipBatchUseInfo {
    #[prost(int64, optional, tag = "1")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub equip_inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Commons\EquipDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "2")]
    pub use_char: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub keep_flag: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub lock_flag: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "5")]
    pub base_info: ::core::option::Option<EquipBaseInfo>,
    #[prost(message, optional, tag = "6")]
    pub pictorialbook_info: ::core::option::Option<PictorialBookDbInfo>,
    #[prost(int32, optional, tag = "7")]
    pub sort_id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "8")]
    pub mark: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Commons\EquipOptionInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipOptionInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\EquipPresetCharInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipPresetCharInfo {
    #[prost(int64, optional, tag = "1")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "2")]
    pub preset_info: ::prost::alloc::vec::Vec<EquipPresetDbInfo>,
}
/// From: Commons\EquipPresetDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipPresetDbInfo {
    #[prost(string, optional, tag = "1")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "2")]
    pub slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub preset_resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub preset_resource_color: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_info: ::prost::alloc::vec::Vec<EquipPresetItemInfo>,
}
/// From: Commons\EquipPresetItemInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipPresetItemInfo {
    #[prost(int32, optional, tag = "1")]
    pub equip_type: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_inven_index: ::core::option::Option<i64>,
}
/// From: Commons\EventExchangeDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventExchangeDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub page: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub key_count: ::core::option::Option<i32>,
}
/// From: Commons\EventExchangeRewardDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventExchangeRewardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub count: ::core::option::Option<i32>,
}
/// From: Commons\EventHubDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventHubDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub hub_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub play_end_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub end_time: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "6")]
    pub setting_info: ::prost::alloc::vec::Vec<EventHubSettingDbInfo>,
}
/// From: Commons\EventHubSettingDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventHubSettingDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub hub_content_type: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub event_uid: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\EventMissionDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventMissionDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub event_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub value: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "5")]
    pub is_complete: ::core::option::Option<bool>,
}
/// From: Commons\EventRewardHistoryDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventRewardHistoryDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_group_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub reward_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\EventScheduleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventScheduleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineEventType", optional, tag = "2")]
    pub event_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub event_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub event_sub_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "5")]
    pub start_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "6")]
    pub end_date: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "7")]
    pub is_active: ::core::option::Option<bool>,
}
/// From: Commons\EvilCastleClearRewardDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleClearRewardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub ticket_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub tower_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub tower_magic_id: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub stage_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub retry: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub point: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub season_highest_point: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "6")]
    pub is_rewarded: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "7")]
    pub stage_clear_time: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleEndSeasonDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleEndSeasonDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub stage_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub point: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "4")]
    pub is_rewarded: ::core::option::Option<bool>,
    #[prost(message, repeated, tag = "5")]
    pub reward_info: ::prost::alloc::vec::Vec<RewardDbInfo>,
}
/// From: Commons\EvilCastleEndSeasonTotalDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleEndSeasonTotalDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub point: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_rewarded: ::core::option::Option<bool>,
    #[prost(message, repeated, tag = "4")]
    pub reward_info: ::prost::alloc::vec::Vec<RewardDbInfo>,
}
/// From: Commons\EvilCastleRankUserInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRankUserInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub user_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "6")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int32, optional, tag = "7")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub point: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "10")]
    pub date: ::core::option::Option<i64>,
}
/// From: Commons\EvilCastleRogueLikeChoiceInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeChoiceInfo {
    #[prost(int32, optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\EvilCastleRogueLikeEventInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeEventInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleRogueLikeEventReward.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeEventReward {
    #[prost(int32, optional, tag = "1")]
    pub rogue_like_gold: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub add_relic_info: ::prost::alloc::vec::Vec<RelicDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub remove_relic_info: ::prost::alloc::vec::Vec<RelicDbInfo>,
    #[prost(message, optional, tag = "5")]
    pub choice_info: ::core::option::Option<EvilCastleRogueLikeChoiceInfo>,
    #[prost(int32, optional, tag = "6")]
    pub battle_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub heal_rate: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleRogueLikeFloorInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeFloorInfo {
    #[prost(int32, optional, tag = "1")]
    pub number: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub room_info: ::prost::alloc::vec::Vec<EvilCastleRogueLikeRoomInfo>,
}
/// From: Commons\EvilCastleRogueLikeGrowthDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeGrowthDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleRogueLikeRoomInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeRoomInfo {
    #[prost(int32, optional, tag = "1")]
    pub number: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub is_clear: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleRogueLikeScoreInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeScoreInfo {
    #[prost(message, repeated, tag = "1")]
    pub score_item_info: ::prost::alloc::vec::Vec<EvilCastleRogueLikeScoreItem>,
    #[prost(int32, optional, tag = "2")]
    pub total_score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub obsidian: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub all_user_total_score: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub max_try_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub max_reward_level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "7")]
    pub crystal_damage: ::core::option::Option<i64>,
}
/// From: Commons\EvilCastleRogueLikeScoreItem.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeScoreItem {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub count: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleRogueLikeShopDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeShopDbInfo {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<EvilCastleRogueLikeShopItemInfo>,
    #[prost(int32, optional, tag = "2")]
    pub re_roll_price: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleRogueLikeShopItemInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeShopItemInfo {
    #[prost(int32, optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub price: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub sold_out: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleRogueLikeStateInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeStateInfo {
    #[prost(int32, optional, tag = "1")]
    pub floor: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub room: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub state: ::core::option::Option<i32>,
}
/// From: Commons\EvilCastleTotalDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleTotalDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub point: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_rewarded: ::core::option::Option<bool>,
}
/// From: Commons\EvilCastleTowerDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleTowerDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub battle_challenge_index: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "3")]
    pub battle_mode: ::core::option::Option<i32>,
}
/// From: Commons\FieldBuffDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldBuffDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub buff_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub buff_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub end_time: ::core::option::Option<i64>,
}
/// From: Commons\FieldDeckDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldDeckDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub sequence: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub costume_inven_index: ::core::option::Option<i64>,
}
/// From: Commons\FieldObjectBaseInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldObjectBaseInfo {
    #[prost(int32, optional, tag = "3")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\FieldObjectDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct FieldObjectDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub position: ::core::option::Option<FieldObjectPositionDbInfo>,
}
/// From: Commons\FieldObjectPositionDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct FieldObjectPositionDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub map_id: ::core::option::Option<i32>,
    #[prost(float, optional, tag = "2")]
    pub x: ::core::option::Option<f32>,
    #[prost(float, optional, tag = "3")]
    pub y: ::core::option::Option<f32>,
    #[prost(float, optional, tag = "4")]
    pub z: ::core::option::Option<f32>,
}
/// From: Commons\FieldObjectRespawnDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldObjectRespawnDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub field_object_group_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub respawn_time: ::core::option::Option<i64>,
}
/// From: Commons\FieldTrapDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldTrapDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub map_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub trap_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub state: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "5")]
    pub switch_object_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\FriendDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FriendDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "5")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "6")]
    pub date: ::core::option::Option<i64>,
    #[prost(message, optional, tag = "7")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int64, optional, tag = "8")]
    pub last_login_date: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "9")]
    pub supporter_info: ::prost::alloc::vec::Vec<CostumeBaseDbInfo>,
}
/// From: Commons\GachaFixedDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaFixedDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub fixed_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub apply_sort_id: ::core::option::Option<i32>,
}
/// From: Commons\GachaLogDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaLogDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub gacha_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub gacha_id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineGachaBuyType", optional, tag = "3")]
    pub buy_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub gacha_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub get_point: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineGachaType", optional, tag = "6")]
    pub gacha_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub pickup_item_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "8")]
    pub gacha_fixed_info: ::prost::alloc::vec::Vec<GachaFixedDbInfo>,
    #[prost(message, optional, tag = "9")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, repeated, packed = "false", tag = "10")]
    pub new_sort: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "11")]
    pub selection_sort: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, repeated, tag = "12")]
    pub decrease_item_info: ::prost::alloc::vec::Vec<ItemMaterialInfo>,
    #[prost(int64, optional, tag = "13")]
    pub log_time: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaTotalCountInfo {
    #[prost(enumeration = "DefineGachaLogType", optional, tag = "1")]
    pub gacha_log_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub char5_pick_up_costume: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub char5_costume: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub char4_costume: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub char3_costume: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub char5_pick_up_equip4: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub char5_equip4: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub char5_equip3: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub char4_equip4: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub char4_equip3: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "11")]
    pub char4_equip2: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "12")]
    pub char3_equip4: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "13")]
    pub char3_equip3: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "14")]
    pub char3_equip2: ::core::option::Option<i32>,
}
/// From: Commons\GachaScheduleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaScheduleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub end_time: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "4")]
    pub is_gacha_free_count_bonus: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "5")]
    pub is_gacha_cash_count_bonus: ::core::option::Option<bool>,
}
/// From: Commons\GachaSelectionChangeCountDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaSelectionCountChangeDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub count: ::core::option::Option<i32>,
}
/// From: Commons\GachaSelectionDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaSelectionDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub item_id: ::core::option::Option<i32>,
}
/// From: Commons\GachaStepUpScheduleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaStepUpScheduleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub end_time: ::core::option::Option<i64>,
}
/// From: Commons\GachaStepUpUserDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaStepUpUserDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\GachaUserDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaUserDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub point: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub total_buy_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub one_free_pick_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub one_cash_pick_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub ten_free_pick_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub ten_cash_pick_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub exchange_item_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub exchange_mileage_count: ::core::option::Option<i32>,
}
/// From: Commons\GuildActionDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildActionDbInfo {
    #[prost(enumeration = "DefineGuildAction", optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub guild_id: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "4")]
    pub guild_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bool, optional, tag = "5")]
    pub is_notify: ::core::option::Option<bool>,
    #[prost(enumeration = "DefineGuildMemberRole", optional, tag = "6")]
    pub role: ::core::option::Option<i32>,
}
/// From: Commons\GuildBaseDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildBaseDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub id: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub icon: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub icon_color: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "5")]
    pub grade: ::core::option::Option<i32>,
}
/// From: Commons\GuildDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildDbInfo {
    #[prost(message, optional, tag = "1")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(enumeration = "DefineGuildJoinType", optional, tag = "2")]
    pub join_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "3")]
    pub message: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "4")]
    pub update_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub date: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "6")]
    pub member_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "7")]
    pub delete_remaining_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "8")]
    pub notice_update_date: ::core::option::Option<i64>,
}
/// From: Commons\GuildMemberDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildMemberDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "3")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "4")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineGuildMemberRole", optional, tag = "7")]
    pub role: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub point: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "9")]
    pub supporter_info: ::prost::alloc::vec::Vec<CostumeBaseDbInfo>,
    #[prost(int64, optional, tag = "10")]
    pub last_login_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "11")]
    pub update_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "12")]
    pub date: ::core::option::Option<i64>,
}
/// From: Commons\GuildRaidBattleGolemInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidBattleGolemInfo {
    #[prost(int32, optional, tag = "1")]
    pub add_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub exp: ::core::option::Option<i32>,
}
/// From: Commons\GuildRaidBattleScoreInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidBattleScoreInfo {
    #[prost(int32, optional, tag = "1")]
    pub default_score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub turn_bonus_score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub golem_level_bonus_score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub support_bonus_score: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "5")]
    pub guild_total_score: ::core::option::Option<i64>,
}
/// From: Commons\GuildRaidMemberPlayHistoryDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidMemberPlayHistoryDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub raid_day: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
}
/// From: Commons\GuildRaidMemberRankDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidMemberRankDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "3")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "4")]
    pub score: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "8")]
    pub over_kill_damage: ::core::option::Option<i64>,
}
/// From: Commons\GuildRaidNormalBattleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidNormalBattleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub complete_win_count: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "5")]
    pub battle_challenge_index: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\GuildRaidNormalBattleHistoryDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidNormalBattleHistoryDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub title_id: ::core::option::Option<i32>,
}
/// From: Commons\GuildRaidPlayDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GuildRaidPlayDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub boss_score: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub total_score: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "3")]
    pub top_percent: ::core::option::Option<f64>,
    #[prost(bool, optional, tag = "4")]
    pub is_play_raid_today: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "5")]
    pub is_normal_battle_play: ::core::option::Option<bool>,
    #[prost(enumeration = "DefineBattleModeType", optional, tag = "6")]
    pub battle_mode: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub rank: ::core::option::Option<i32>,
}
/// From: Commons\GuildRaidSeasonRankDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidSeasonRankDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub score: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub guild_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "4")]
    pub guild_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "5")]
    pub message: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "6")]
    pub icon: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "7")]
    pub icon_color: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "8")]
    pub flag_grade: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub member_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "10")]
    pub over_kill_damage: ::core::option::Option<i64>,
}
/// From: Commons\GuildRaidSupporterDeckDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidSupporterDeckDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub slot_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub position: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub sequence: ::core::option::Option<i32>,
}
/// From: Commons\GuildSupporterInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildSupporterBattleCharInfo {
    #[prost(message, optional, tag = "1")]
    pub char_info: ::core::option::Option<CharDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, optional, tag = "4")]
    pub awake_info: ::core::option::Option<CharAwakeDbInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSupporterInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub slot_index: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "3")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "4")]
    pub battle_use_count: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "5")]
    pub supporter_char_info_proto: ::core::option::Option<
        ::prost::alloc::string::String,
    >,
}
/// From: Commons\HuntDispatchDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntDispatchDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub hunt_dispatch_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub hunt_dispatch_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub end_time: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "6")]
    pub decrease_free_ap_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub decrease_cash_ap_count: ::core::option::Option<i32>,
}
/// From: Commons\HuntingGroundDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntingGroundDbInfo {
    #[prost(bool, optional, tag = "1")]
    pub is_auto: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "2")]
    pub current_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub highest_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
    #[prost(int32, optional, tag = "5")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Commons\IdCardInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardInfo {
    #[prost(message, optional, tag = "1")]
    pub background: ::core::option::Option<IdCardItemInfo>,
    #[prost(message, optional, tag = "2")]
    pub sub_background: ::core::option::Option<IdCardItemInfo>,
    #[prost(message, optional, tag = "3")]
    pub background_effect: ::core::option::Option<IdCardItemInfo>,
    #[prost(message, repeated, tag = "4")]
    pub stickers: ::prost::alloc::vec::Vec<IdCardItemInfo>,
    #[prost(message, optional, tag = "5")]
    pub my_info: ::core::option::Option<IdCardItemInfo>,
    #[prost(int32, optional, tag = "6")]
    pub rotate: ::core::option::Option<i32>,
}
/// From: Commons\IdCardItemInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardItemInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub x: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub y: ::core::option::Option<i32>,
    #[prost(float, optional, tag = "5")]
    pub rotate: ::core::option::Option<f32>,
    #[prost(float, optional, tag = "6")]
    pub scale: ::core::option::Option<f32>,
    #[prost(int32, optional, tag = "7")]
    pub layer: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "8")]
    pub color: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Commons\IdCardPresetInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardPresetInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub id_card_info: ::core::option::Option<IdCardInfo>,
}
/// From: Commons\ItemAutoExchangeInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemAutoExchangeInfo {
    #[prost(int32, optional, tag = "1")]
    pub original_item_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub original_item_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub original_item_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub exchange_item_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub exchange_item_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub exchange_item_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub sort_id: ::core::option::Option<i32>,
}
/// From: Commons\ItemAutoUpgradeInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemAutoUpgradeInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub item_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub item_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub before_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub after_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub sort_id: ::core::option::Option<i32>,
}
/// From: Commons\ItemDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub keep_flag: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "6")]
    pub time_value: ::core::option::Option<i64>,
    #[prost(message, optional, tag = "7")]
    pub pictorialbook_info: ::core::option::Option<PictorialBookDbInfo>,
    #[prost(int64, optional, tag = "8")]
    pub expiry_time: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "9")]
    pub sort_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub use_count: ::core::option::Option<i32>,
}
/// From: Commons\ItemMaterialInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemMaterialInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub count: ::core::option::Option<i32>,
}
/// From: Commons\MailDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MailDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub mail_id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub sender_text: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "5")]
    pub title_text: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "6")]
    pub message_text: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "7")]
    pub reward_expire_time: ::core::option::Option<i64>,
    #[prost(int32, repeated, packed = "false", tag = "8")]
    pub item_type: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "9")]
    pub item_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "10")]
    pub item_count: ::prost::alloc::vec::Vec<i32>,
    #[prost(bool, optional, tag = "11")]
    pub is_open: ::core::option::Option<bool>,
    #[prost(int64, optional, tag = "12")]
    pub open_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "13")]
    pub create_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "14")]
    pub history_delete_time: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "15")]
    pub is_cash: ::core::option::Option<bool>,
}
/// From: Commons\MapActiveInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MapActiveInfo {
    #[prost(int32, optional, tag = "1")]
    pub map_id: ::core::option::Option<i32>,
    #[prost(string, repeated, tag = "2")]
    pub active_info: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// From: Commons\MiniGameActionMultiRankDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionUserDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub char_id: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameActionMultiRankDbInfo {
    #[prost(message, repeated, tag = "1")]
    pub user_info: ::prost::alloc::vec::Vec<MiniGameActionUserDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub rank: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "3")]
    pub score: ::core::option::Option<f64>,
}
/// From: Commons\MiniGameActionSingleRankDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameActionSingleRankDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub rank: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "4")]
    pub score: ::core::option::Option<f64>,
    #[prost(int32, optional, tag = "5")]
    pub char_id: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameBingoDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameBingoDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub clear_count: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub bingo_board: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub open_bingo_board_index: ::prost::alloc::vec::Vec<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameBingoLineInfo {
    #[prost(enumeration = "DefineMiniGameBingoLineType", optional, tag = "1")]
    pub line_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub line_index: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameBoardDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameBoardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub scaffold_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub scaffold_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub complete_count: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameMoveControllerInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub value: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub last_reward_point: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub best_record_value: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "4")]
    pub is_possible_quick_reward: ::core::option::Option<bool>,
    #[prost(int64, optional, tag = "5")]
    pub world_best_record_owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "6")]
    pub world_best_record_user_id: ::core::option::Option<
        ::prost::alloc::string::String,
    >,
    #[prost(int32, optional, tag = "7")]
    pub world_best_record_value: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "8")]
    pub world_best_record_play_info: ::core::option::Option<
        ::prost::alloc::string::String,
    >,
}
/// From: Commons\MiniGameHubDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameHubDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub progress_type: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameRhythmPlayDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRhythmPlayDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub mode_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub best_record_value: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub best_grade_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub best_combo_type: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameRhythmRankDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRhythmRankDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "3")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "4")]
    pub point: ::core::option::Option<i64>,
}
/// From: Commons\MiniGameRouletteDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRouletteDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub free_ap_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub reset_time: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "4")]
    pub is_reward_special_item: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "5")]
    pub try_count: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameRouletteRewardInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRouletteRewardInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameSichuanActiveInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSichuanActiveInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_active: ::core::option::Option<bool>,
}
/// From: Commons\MiniGameSichuanBlockInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSichuanBlockInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub count: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameSichuanDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSichuanDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub challenge_index: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\MiniGameSichuanRankDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSichuanRankDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub user_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "6")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int32, optional, tag = "7")]
    pub rank: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "8")]
    pub score: ::core::option::Option<f64>,
    #[prost(int32, optional, tag = "9")]
    pub title_id: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameSichuanRewardInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSichuanRewardInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameSichuanScheduleInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSichuanScheduleInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub info: ::prost::alloc::vec::Vec<MiniGameSichuanDbInfo>,
    #[prost(int64, optional, tag = "3")]
    pub world_best_record_owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "4")]
    pub world_best_record_user_id: ::core::option::Option<
        ::prost::alloc::string::String,
    >,
    #[prost(double, optional, tag = "5")]
    pub world_best_record_value: ::core::option::Option<f64>,
    #[prost(double, optional, tag = "6")]
    pub best_record_value: ::core::option::Option<f64>,
    #[prost(message, repeated, tag = "7")]
    pub reward_info: ::prost::alloc::vec::Vec<MiniGameSichuanRewardInfo>,
    #[prost(message, repeated, tag = "8")]
    pub active_info: ::prost::alloc::vec::Vec<MiniGameSichuanActiveInfo>,
    #[prost(bool, optional, tag = "9")]
    pub is_block: ::core::option::Option<bool>,
}
/// From: Commons\MiniGameSichuanTurnInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSichuanTurnInfo {
    #[prost(int32, optional, tag = "1")]
    pub turn: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\MiniGameSurvivalCollectionDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalCollectionDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub collection_id: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameSurvivalRankDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalRankDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "3")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "4")]
    pub point: ::core::option::Option<i64>,
}
/// From: Commons\MiniGameSurvivalSkillDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalSkillDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub skill_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub dps: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameSurvivalStageClearDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalStageClearDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub map_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub map_id: ::core::option::Option<i32>,
}
/// From: Commons\MiniGameSurvivalUpgradeDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalUpgradeDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub upgrade_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
}
/// From: Commons\MiniPuzzleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniPuzzleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub clear_count: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub puzzle: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub puzzle_open: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\MiniPuzzleWordReward.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniPuzzleWordReward {
    #[prost(int32, optional, tag = "1")]
    pub puzzle_reward_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub puzzle_index_id: ::core::option::Option<i32>,
}
/// From: Commons\MissionDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MissionDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub group_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub value: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "5")]
    pub is_complete: ::core::option::Option<bool>,
}
/// From: Commons\MissionSectionRewardDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MissionSectionRewardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\MonsterDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub monster_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_deck: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub respawn_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub life_end_time: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "6")]
    pub active_flag: ::core::option::Option<bool>,
}
/// From: Commons\MonsterHuntDeckDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntDeckDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub team: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(int32, optional, tag = "3")]
    pub battle_power: ::core::option::Option<i32>,
}
/// From: Commons\MonsterHuntUserDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntUserDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub monster_hunt_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub start_hp: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub highest_first_turn_damage: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "6")]
    pub highest_hp: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "7")]
    pub highest_hp_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "8")]
    pub current_level_highest_damage: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "9")]
    pub daily_highest_damage: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "10")]
    pub season_reward: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "11")]
    pub daily_reward_level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "12")]
    pub daily_reward_date: ::core::option::Option<i64>,
}
/// From: Commons\MyRoomDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "3")]
    pub my_room_position_info: ::prost::alloc::vec::Vec<MyRoomItemPositionInfo>,
    #[prost(bool, optional, tag = "4")]
    pub is_hidden: ::core::option::Option<bool>,
}
/// From: Commons\MyRoomItemCostumeInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomItemCostumeInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub use_my_room_count: ::core::option::Option<i32>,
}
/// From: Commons\MyRoomItemDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomItemDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub use_count: ::core::option::Option<i32>,
}
/// From: Commons\MyRoomItemPositionInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomItemPositionInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub object_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub position_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub x: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub y: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub rotate: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub interact: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub item_animation: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "9")]
    pub is_wall_hidden: ::core::option::Option<bool>,
}
/// From: Commons\MyRoomTrophyDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomTrophyDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub contents_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub use_count: ::core::option::Option<i32>,
}
/// From: Commons\MyRoomUserInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomUserInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub primary_my_room_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub trophy_info: ::prost::alloc::vec::Vec<MyRoomTrophyDbInfo>,
    #[prost(message, repeated, tag = "8")]
    pub my_room: ::prost::alloc::vec::Vec<MyRoomDbInfo>,
    #[prost(int32, optional, tag = "9")]
    pub my_room_like_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "10")]
    pub my_room_like_date: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "11")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
}
/// From: Commons\NoticeDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct NoticeContentsInfo {
    #[prost(enumeration = "DefineNoticeContentsType", optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub value: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NoticeDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineNoticeType", optional, tag = "2")]
    pub notice_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "3")]
    pub title: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "4")]
    pub thumbnail: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "5")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "6")]
    pub end_time: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "7")]
    pub web_url: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "8")]
    pub notice_contents_info: ::prost::alloc::vec::Vec<NoticeContentsInfo>,
    #[prost(int32, optional, tag = "9")]
    pub promotion_banner_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "10")]
    pub is_pin: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "11")]
    pub sort: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "12")]
    pub sub_type: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "13")]
    pub is_invert: ::core::option::Option<bool>,
}
/// From: Commons\Notify.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ActiveContentsInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub end_time: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MissionUpdateInfoMap {
    #[prost(message, repeated, tag = "1")]
    pub mission_info: ::prost::alloc::vec::Vec<
        mission_update_info_map::MissionInfoEntry,
    >,
}
/// Nested message and enum types in `MissionUpdateInfoMap`.
pub mod mission_update_info_map {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct MissionInfoEntry {
        #[prost(int32, optional, tag = "1")]
        pub key: ::core::option::Option<i32>,
        #[prost(int32, optional, tag = "2")]
        pub value: ::core::option::Option<i32>,
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventMissionInfoMap {
    #[prost(message, repeated, tag = "1")]
    pub mission_group_info: ::prost::alloc::vec::Vec<
        event_mission_info_map::MissionGroupInfoEntry,
    >,
}
/// Nested message and enum types in `EventMissionInfoMap`.
pub mod event_mission_info_map {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct MissionGroupInfoEntry {
        #[prost(int32, optional, tag = "1")]
        pub key: ::core::option::Option<i32>,
        #[prost(message, optional, tag = "2")]
        pub value: ::core::option::Option<super::MissionUpdateInfoMap>,
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AchievementUpdateInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub value: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "3")]
    pub is_set: ::core::option::Option<bool>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Notify {
    #[prost(bool, optional, tag = "1")]
    pub is_new_mail: ::core::option::Option<bool>,
    #[prost(message, repeated, tag = "2")]
    pub achievement_update_info: ::prost::alloc::vec::Vec<AchievementUpdateInfo>,
    #[prost(message, repeated, tag = "3")]
    pub mission_update_info: ::prost::alloc::vec::Vec<notify::MissionUpdateInfoEntry>,
    #[prost(message, repeated, tag = "4")]
    pub event_mission_update_info: ::prost::alloc::vec::Vec<
        notify::EventMissionUpdateInfoEntry,
    >,
    #[prost(string, optional, tag = "5")]
    pub ll_type: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bool, optional, tag = "6")]
    pub is_purchasing_disabled: ::core::option::Option<bool>,
    #[prost(int64, optional, tag = "7")]
    pub maintenance_start_date: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "8")]
    pub notice_last_seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "9")]
    pub active_login_event: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, repeated, tag = "10")]
    pub active_contents_info: ::prost::alloc::vec::Vec<ActiveContentsInfo>,
}
/// Nested message and enum types in `Notify`.
pub mod notify {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct MissionUpdateInfoEntry {
        #[prost(int32, optional, tag = "1")]
        pub key: ::core::option::Option<i32>,
        #[prost(message, optional, tag = "2")]
        pub value: ::core::option::Option<super::MissionUpdateInfoMap>,
    }
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct EventMissionUpdateInfoEntry {
        #[prost(int32, optional, tag = "1")]
        pub key: ::core::option::Option<i32>,
        #[prost(message, optional, tag = "2")]
        pub value: ::core::option::Option<super::EventMissionInfoMap>,
    }
}
/// From: Commons\OptimizeBaseInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OptimizeBaseInfo {
    #[prost(int32, optional, tag = "1")]
    pub optimize_index: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub optimize_value: ::core::option::Option<bool>,
    #[prost(string, optional, tag = "3")]
    pub optimize_property: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Commons\PackClearRewardDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackClearRewardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub ticket_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub pack_level: ::core::option::Option<i32>,
}
/// From: Commons\PackDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub clear_quest_count: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_pack_complete: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "4")]
    pub quest_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub quest_opt: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub sub_quest_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "7")]
    pub active_time: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "8")]
    pub is_buy: ::core::option::Option<bool>,
}
/// From: Commons\PacketCodeTypeProto.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PacketCodeTypeProto {
    #[prost(enumeration = "packet_code_type_proto::PacketCodeType", optional, tag = "1")]
    pub packet_code_type: ::core::option::Option<i32>,
}
/// Nested message and enum types in `PacketCodeTypeProto`.
pub mod packet_code_type_proto {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[derive(
        Clone,
        Copy,
        Debug,
        PartialEq,
        Eq,
        Hash,
        PartialOrd,
        Ord,
        ::prost::Enumeration
    )]
    #[repr(i32)]
    pub enum PacketCodeType {
        Common = 0,
        PingCheck = 1,
        JoinUser = 2,
        LoginUser = 3,
        PackInfo = 4,
        PackInGameInfo = 5,
        PackBuy = 6,
        SaveUserPosition = 7,
        DeckInfo = 8,
        CharInfo = 9,
        DeckSave = 10,
        CharAllRevival = 11,
        CharLevelUp = 12,
        MercenaryScout = 13,
        BattleStart = 14,
        BattleEnd = 15,
        QuestInfo = 16,
        QuestAccept = 17,
        QuestClear = 18,
        QuestUpdate = 19,
        QuestGiveUp = 20,
        ItemInfo = 21,
        EatFood = 22,
        ItemDump = 23,
        InvenAddSlot = 24,
        StorageAddSlot = 25,
        ItemStorageUpdate = 26,
        EatFoodAuto = 27,
        FieldObjectInfo = 28,
        FieldObjectReward = 29,
        FieldObjectRespawn = 30,
        WaypointInfo = 31,
        WaypointSave = 32,
        WaypointUse = 33,
        EquipInfo = 34,
        EquipUse = 35,
        EquipClear = 36,
        EquipUpgrade = 37,
        EquipLock = 38,
        EquipAddSlot = 39,
        CostumeInfo = 40,
        CostumeUse = 41,
        CostumeUpgrade = 42,
        TalentSkillUse = 43,
        TalentSkillUpgrade = 44,
        EquipChange = 45,
        RecipeInfo = 46,
        CookingResearch = 47,
        Cooking = 48,
        Alchemy = 49,
        EquipMaking = 50,
        MonsterInfo = 51,
        BattleEnter = 52,
        ShopInfo = 53,
        ShopBuy = 54,
        ShopSell = 55,
        EquipBreak = 56,
        BattleGiveUp = 57,
        BattleRetry = 58,
        FieldObjectResearch = 59,
        CashShopInfo = 60,
        CashShopBuy = 61,
        CharHealing = 62,
        TrapDamage = 63,
        TodayQuestInfo = 64,
        CharPartnerInfo = 65,
        CharPartnerReward = 66,
        CharPartnerStoryReward = 67,
        NpcReputationInfo = 68,
        NpcReputationRecovery = 69,
        QuestImmortalReset = 70,
        TalentSlotSave = 71,
        PackJamEvent = 72,
        UserLevelReward = 73,
        UserNicknameChange = 74,
        UserPortraitChange = 75,
        ItemStoragePut = 76,
        ItemStorageOut = 77,
        ItemStorageInfo = 78,
        EquipStoragePut = 79,
        EquipStorageOut = 80,
        EquipStorageInfo = 81,
        EquipStorageAddSlot = 82,
        FieldMonsterEvent = 83,
        FieldMonsterReward = 84,
        FieldMonsterDamage = 85,
        PvpBattleUserInfo = 86,
        PvpBattleDeckInfo = 87,
        PvpBattleDeckSave = 88,
        PvpBattleMatching = 89,
        PvpBattleStart = 90,
        PvpBattleEnd = 91,
        PvpBattleReward = 92,
        PvpBattleRanking = 93,
        PvpBattleRankUserDetail = 94,
        FieldObjecPositionUpdate = 95,
        CharImmortal = 96,
        PvpBattleHistory = 97,
        PvpBattleHistoryDeckInfo = 98,
        CharClassUp = 99,
        TimePause = 100,
        TutorialInfo = 101,
        TutorialClear = 102,
        ActiveMiniMap = 103,
        PackPreviewInfo = 104,
        EquipSmelting = 105,
        ReputationInfo = 106,
        ShopOpen = 107,
        DispatchReward = 108,
        InnOpen = 109,
        HuntingGroundEnter = 110,
        PictorialBookInfo = 111,
        EvilCastleInfo = 112,
        EvilCastleEnter = 113,
        EvilCastleRakingList = 114,
        EvilCastleStageClearReward = 115,
        EvilCastleStageRankingInfo = 116,
        ScheduleInfo = 117,
        MissionInfo = 118,
        MissionUpdate = 119,
        MissionClear = 120,
        NotuseChargeCost = 121,
        MissionSectionReward = 122,
        ChargeCostInfo = 123,
        PassInfo = 124,
        EvilCastlePing = 125,
        PassReward = 126,
        EventMissionInfo = 127,
        NoneUse128 = 128,
        PassBuy = 129,
        ServerNowTime = 130,
        MailInfo = 131,
        MailOpen = 132,
        CharExpiry = 133,
        HuntingGroundInfo = 134,
        EvilCastleRewardInfo = 135,
        PvpSeasonReward = 136,
        QuestMaxClearInfo = 137,
        MailHistoryInfo = 138,
        FieldMonsterRegen = 139,
        CashMailInfo = 140,
        BattleVerify = 141,
        BattleVerifyState = 142,
        UseRandomBox = 143,
        FieldObjectPreview = 144,
        GachaInfo = 145,
        GachaBuy = 146,
        GachaPointExchange = 147,
        CharSpecialScoutInfo = 148,
        CharSpecialScoutBuy = 149,
        CharSpecialScoutReset = 150,
        EventReward = 151,
        EquipsUse = 155,
        LeaveUser = 156,
        CancelLeaveUser = 157,
        PlatformLogin = 158,
        SelectPlatformOtherData = 159,
        SkyWayInfo = 160,
        SkyWayEnter = 161,
        SkyWayScheduleInfo = 162,
        EventScheduleInfo = 163,
        AllCharRefresh = 165,
        AchievementInfo = 166,
        AchievementUpdate = 167,
        AchievementClear = 168,
        FieldTrapInfo = 171,
        InteractionTrigger = 172,
        JpUser = 173,
        JpUserInfo = 174,
        GachaBuyPreview = 175,
        EquipSequenceUpgrade = 176,
        EquipSequenceSmelting = 177,
        PresetInfo = 178,
        PresetSave = 179,
        PresetAddSlot = 180,
        BattleEndTest = 181,
        EventExchangeInfo = 183,
        EventExchangeReward = 184,
        EventExchangeNextPageOpen = 185,
        BalanceVersionCheck = 186,
        LogoutUser = 187,
        GachaPointManualExchange = 188,
        HuntDispatchInfo = 189,
        HuntDispatchStart = 190,
        HuntDispatchEnd = 191,
        EquipOptionReRoll = 192,
        EquipOptionReRollConfirm = 193,
        HuntDispatchRewardPreview = 194,
        NoticeDetailInfo = 195,
        MonsterHuntUserInfo = 196,
        MonsterHuntRankInfo = 197,
        GachaSelectionSave = 198,
        PersonalInfo = 199,
        EvilCastleTowerInfo = 200,
        GachaLogInfo = 201,
        StatueObjectReward = 202,
        LikeUser = 203,
        FriendInfoList = 204,
        FriendSend = 205,
        FriendAccept = 206,
        FriendRefuse = 207,
        FriendRemove = 208,
        FriendSendList = 209,
        FriendReceiveList = 210,
        FriendRecommend = 211,
        FriendSearch = 212,
        FriendSendRemove = 213,
        PackEventBattleInfo = 214,
        UserContentsInfo = 215,
        UserContentsInfoOption = 216,
        UpdateUserContentsInfoOption = 217,
        MyLikeInfo = 218,
        UserGreetingChange = 219,
        PackEventStoryInfo = 220,
        PackEventStoryClear = 221,
        EventHubInfoResponse = 222,
        MiniGameBoardInfo = 223,
        MiniGameBoardPlay = 224,
        UserTitleChange = 225,
        PackRewardObjectCount = 226,
        PackSubQuestClearInfo = 227,
        MyRoomUserInfo = 228,
        MyRoomSave = 229,
        MyRoomSearchFriend = 230,
        MyRoomSearchRecommend = 231,
        MyRoomItemInfo = 232,
        NoneUse233 = 233,
        MyRoomNameChange = 234,
        MyRoomPrimaryChange = 235,
        TotalWarInfo = 236,
        TotalWarDeckInfo = 237,
        TotalWarDeckSave = 238,
        TotalWarDeckPresetInfo = 239,
        TotalWarDeckPresetSave = 240,
        TotalWarDeckPresetSlotAdd = 241,
        TotalWarReward = 242,
        TotalWarBattleStart = 243,
        TotalWarBattleEnd = 244,
        MyRoomShopInfo = 245,
        MyRoomShopBuy = 246,
        MiniGameFieldInfo = 247,
        MiniGameFieldStart = 248,
        MiniGameFieldScore = 249,
        MiniGameFieldEnd = 250,
        MiniGameFieldQuickReward = 251,
        TotalWarRewardState = 252,
        EquipPresetInfo = 253,
        EquipPresetSave = 254,
        EquipsClear = 255,
        MiniGameBingoInfo = 256,
        MiniGameBingoPlay = 257,
        SaveTotalBattlePower = 258,
        EquipPresetNameChange = 259,
        FieldObjectRewardList = 260,
        QuickBattle = 261,
        AlchemyBatch = 262,
        MonsterHuntDeckInfo = 263,
        MonsterHuntDeckSave = 264,
        MonsterHuntChangeTeam = 265,
        MonsterHuntQuickBattle = 266,
        CostumePotentialConnect = 267,
        CostumeNodeActivation = 268,
        PopularCostumeInfo = 269,
        ClientCustomLog = 270,
        UseResourceItem = 271,
        FieldDeckInfo = 273,
        FieldDeckSave = 274,
        Overwhelm = 275,
        EquipBatchUse = 276,
        PvpBattleOnceRewardInfo = 277,
        PresetInfoChange = 278,
        EvilCastleRogueLikeInfo = 279,
        EvilCastleRogueLikeEnter = 280,
        EvilCastleRogueLikeGiveUp = 281,
        EvilCastleRogueLikeRoomEnter = 282,
        EvilCastleRogueLikeSelectReward = 283,
        EvilCastleRogueLikeRewardReRoll = 284,
        EvilCastleRogueLikeDeckSave = 285,
        ClearPackageReward = 286,
        BattleRetryPreviousTurn = 287,
        SaveFieldCharControlDeckType = 288,
        CommunityRewardInfo = 289,
        CommunityReward = 290,
        GuildRaidMainInfo = 291,
        GuildRaidNormalBattleInfo = 292,
        GuildRaidBossBattleInfo = 293,
        GuildRaidBossQuickBattle = 294,
        GuildCreate = 296,
        GuildInfo = 297,
        GuildLeave = 298,
        GuildRecommend = 299,
        GuildJoin = 300,
        GuildAccept = 301,
        GuildJoinRefuse = 302,
        GuildMemberBan = 303,
        GuildMemberRoleEdit = 304,
        GuildInfoEdit = 305,
        GuildSearch = 306,
        GuildSupporterList = 308,
        GuildRaidMemberRanking = 309,
        GuildRaidSeasonReward = 310,
        GuildJoinSendCancel = 311,
        GuildRaidDeckInfo = 312,
        GuildRaidDeckSave = 313,
        GuildJoinRequestInfo = 314,
        GuildDeleteCancel = 315,
        GuildRaidBossBattleEnter = 316,
        EvilCastleRogueLikeBattleCharChange = 317,
        EvilCastleRogueLikeEventSelect = 318,
        EvilCastleRogueLikeEventChoice = 319,
        EvilCastleRogueLikeShopBuy = 320,
        EvilCastleRogueLikeShopReRoll = 321,
        EvilCastleRogueLikeShopExit = 322,
        EvilCastleRogueLikeGrowth = 323,
        EvilCastleRogueLikeGiveUpInfo = 324,
        EvilCastleRogueLikeAllUserScoreInfo = 325,
        EvilCastleRogueLikeRankInfo = 326,
        EvilCastleRogueLikeSeasonReward = 327,
        MiniGameRunInfo = 328,
        MiniGameRunStart = 329,
        MiniGameRunEnd = 330,
        MiniGameRunQuickReward = 331,
        GuildInitInfo = 332,
        GuildSupporterAdd = 333,
        GuildSupporterDelete = 334,
        GuildUpdateActionInfo = 335,
        CharImprintInfo = 336,
        CharImprintLevelUp = 337,
        CharAwakeActive = 338,
        GuildRaidBossBattleHistory = 339,
        EvilCastleRogueLikeQuickBattle = 340,
        GuildSupporterInfo = 341,
        EvilCastleRogueLikeCostumeUpgrade = 342,
        MiniPuzzleInfo = 343,
        MiniPuzzleOpen = 344,
        MiniPuzzleAllOpen = 345,
        MiniPuzzleRenew = 346,
        EvilCastleRogueLikeRelicMix = 347,
        MiniGameSurvivalInfo = 348,
        MiniGameSurvivalStart = 349,
        MiniGameSurvivalEnd = 350,
        CafeteriaInfo = 351,
        CafeteriaSpawnReset = 352,
        CafeteriaLevelUp = 353,
        CafeteriaManageItemAdd = 354,
        CafeteriaRegularCostumeInteractionReward = 355,
        CafeteriaRegularCostumeInteractionAllReward = 356,
        CafeteriaCumulativeReward = 357,
        CafeteriaRegularCostumeNoteInfo = 358,
        CafeteriaRegularCostumeNoteReward = 359,
        CafeteriaRegularCostumeNoteAllReward = 360,
        DatingInfo = 361,
        DatingEpisodeClear = 362,
        DatingMessageUpdate = 363,
        MiniGameSurvivalPlay = 364,
        MiniGameSurvivalSkillUp = 365,
        MiniGameSurvivalQuickReward = 366,
        RootSortIdInfo = 367,
        MiniGameSurvivalRanking = 368,
        MiniGameSurvivalCharUpgrade = 369,
        MiniGameSurvivalSkillSelectList = 370,
        CafeteriaIntroductionStoryReward = 371,
        CharAutoReviveSet = 372,
        DeckCharAutoRevive = 373,
        GuildRaidNormalBattleHistoryInfo = 374,
        GuildRaidMemberPlayHistoryInfo = 375,
        CafeteriaDailyConnectionCostumeRefresh = 376,
        CafeteriaRewardReceiptTimeUpdateUsingCheat = 377,
        MiniGameSichuanInfo = 378,
        MiniGameSichuanStart = 379,
        MiniGameSichuanEnd = 380,
        GuildNoticeInfo = 381,
        GuildNoticeUpdate = 382,
        MiniGameSichuanRanking = 383,
        EquipFromMakingToBreak = 384,
        EquipFromUpgradeToBreak = 385,
        EquipFromMakingToUpgrade = 386,
        HuntingGroundInfoList = 387,
        BattleExit = 388,
        MiniGameSurvivalCharUpgradeReset = 389,
        MiniGameHubInfo = 390,
        MiniGameDefenseInfo = 393,
        MiniGameDefenseStart = 394,
        MiniGameDefenseEnd = 395,
        RecommendDeckInfo = 396,
        DeckCostumeSettingInfo = 397,
        DeckCostumeSettingSave = 398,
        GuildRaidPresetSlotAdd = 399,
        MonsterHuntPresetSlotAdd = 400,
        PvpContentsItemRenew = 401,
        TotalWarContentsItemRenew = 402,
        GuildRaidPresetInfo = 403,
        GuildRaidPresetSave = 404,
        MonsterHuntPresetInfo = 405,
        MonsterHuntPresetSave = 406,
        EquipMarkSet = 407,
        EquipMarkDelete = 408,
        PresetUse = 409,
        MonsterHuntPresetUse = 410,
        GuildRaidPresetUse = 411,
        RecommendDeckUserOptionSave = 412,
        CafeteriaRareNpcInteractionReward = 413,
        CafeteriaEventNpcInteractionReward = 414,
        MiniGameRouletteInfo = 415,
        MiniGameRouletteDraw = 416,
        MyRoomExpand = 418,
        MyRoomMove = 419,
        MyRoomLike = 420,
        MiniGameActionInfo = 421,
        MiniGameActionStart = 422,
        MiniGameActionEnd = 423,
        MyRoomSearchGuild = 424,
        PrestigeSkinSet = 426,
        MiniGameRhythmInfo = 428,
        MiniGameRhythmPlayStart = 429,
        MiniGameRhythmPlayEnd = 430,
        CashShopPurchaseCountInfo = 432,
        CharGrowth = 433,
        SupporterDetail = 434,
        SupporterRegister = 435,
        SupporterRemove = 436,
        SupporterBorrow = 437,
        SupporterStatus = 438,
        SupporterBattleInfo = 439,
        EvilCastleDailyReward = 440,
        EvilCastleDailyRewardState = 441,
        SupporterReward = 442,
        SupporterInfo = 443,
        IdCardSave = 446,
        IdCardShopInfo = 447,
        IdCardShopBuy = 448,
        IdCardPresetSave = 449,
        IdCardPresetInfo = 450,
        IdCardPresetDelete = 451,
        IdCardRecovery = 452,
        GuildRaidBossPracticeBattleEnter = 453,
        EvilCastleRogueLikeBattleEndPreview = 466,
    }
    impl PacketCodeType {
        /// String value of the enum field names used in the ProtoBuf definition.
        ///
        /// The values are not transformed in any way and thus are considered stable
        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
        pub fn as_str_name(&self) -> &'static str {
            match self {
                Self::Common => "Common",
                Self::PingCheck => "PingCheck",
                Self::JoinUser => "JoinUser",
                Self::LoginUser => "LoginUser",
                Self::PackInfo => "PackInfo",
                Self::PackInGameInfo => "PackInGameInfo",
                Self::PackBuy => "PackBuy",
                Self::SaveUserPosition => "SaveUserPosition",
                Self::DeckInfo => "DeckInfo",
                Self::CharInfo => "CharInfo",
                Self::DeckSave => "DeckSave",
                Self::CharAllRevival => "CharAllRevival",
                Self::CharLevelUp => "CharLevelUp",
                Self::MercenaryScout => "MercenaryScout",
                Self::BattleStart => "BattleStart",
                Self::BattleEnd => "BattleEnd",
                Self::QuestInfo => "QuestInfo",
                Self::QuestAccept => "QuestAccept",
                Self::QuestClear => "QuestClear",
                Self::QuestUpdate => "QuestUpdate",
                Self::QuestGiveUp => "QuestGiveUp",
                Self::ItemInfo => "ItemInfo",
                Self::EatFood => "EatFood",
                Self::ItemDump => "ItemDump",
                Self::InvenAddSlot => "InvenAddSlot",
                Self::StorageAddSlot => "StorageAddSlot",
                Self::ItemStorageUpdate => "ItemStorageUpdate",
                Self::EatFoodAuto => "EatFoodAuto",
                Self::FieldObjectInfo => "FieldObjectInfo",
                Self::FieldObjectReward => "FieldObjectReward",
                Self::FieldObjectRespawn => "FieldObjectRespawn",
                Self::WaypointInfo => "WaypointInfo",
                Self::WaypointSave => "WaypointSave",
                Self::WaypointUse => "WaypointUse",
                Self::EquipInfo => "EquipInfo",
                Self::EquipUse => "EquipUse",
                Self::EquipClear => "EquipClear",
                Self::EquipUpgrade => "EquipUpgrade",
                Self::EquipLock => "EquipLock",
                Self::EquipAddSlot => "EquipAddSlot",
                Self::CostumeInfo => "CostumeInfo",
                Self::CostumeUse => "CostumeUse",
                Self::CostumeUpgrade => "CostumeUpgrade",
                Self::TalentSkillUse => "TalentSkillUse",
                Self::TalentSkillUpgrade => "TalentSkillUpgrade",
                Self::EquipChange => "EquipChange",
                Self::RecipeInfo => "RecipeInfo",
                Self::CookingResearch => "CookingResearch",
                Self::Cooking => "Cooking",
                Self::Alchemy => "Alchemy",
                Self::EquipMaking => "EquipMaking",
                Self::MonsterInfo => "MonsterInfo",
                Self::BattleEnter => "BattleEnter",
                Self::ShopInfo => "ShopInfo",
                Self::ShopBuy => "ShopBuy",
                Self::ShopSell => "ShopSell",
                Self::EquipBreak => "EquipBreak",
                Self::BattleGiveUp => "BattleGiveUp",
                Self::BattleRetry => "BattleRetry",
                Self::FieldObjectResearch => "FieldObjectResearch",
                Self::CashShopInfo => "CashShopInfo",
                Self::CashShopBuy => "CashShopBuy",
                Self::CharHealing => "CharHealing",
                Self::TrapDamage => "TrapDamage",
                Self::TodayQuestInfo => "TodayQuestInfo",
                Self::CharPartnerInfo => "CharPartnerInfo",
                Self::CharPartnerReward => "CharPartnerReward",
                Self::CharPartnerStoryReward => "CharPartnerStoryReward",
                Self::NpcReputationInfo => "NpcReputationInfo",
                Self::NpcReputationRecovery => "NpcReputationRecovery",
                Self::QuestImmortalReset => "QuestImmortalReset",
                Self::TalentSlotSave => "TalentSlotSave",
                Self::PackJamEvent => "PackJamEvent",
                Self::UserLevelReward => "UserLevelReward",
                Self::UserNicknameChange => "UserNicknameChange",
                Self::UserPortraitChange => "UserPortraitChange",
                Self::ItemStoragePut => "ItemStoragePut",
                Self::ItemStorageOut => "ItemStorageOut",
                Self::ItemStorageInfo => "ItemStorageInfo",
                Self::EquipStoragePut => "EquipStoragePut",
                Self::EquipStorageOut => "EquipStorageOut",
                Self::EquipStorageInfo => "EquipStorageInfo",
                Self::EquipStorageAddSlot => "EquipStorageAddSlot",
                Self::FieldMonsterEvent => "FieldMonsterEvent",
                Self::FieldMonsterReward => "FieldMonsterReward",
                Self::FieldMonsterDamage => "FieldMonsterDamage",
                Self::PvpBattleUserInfo => "PvpBattleUserInfo",
                Self::PvpBattleDeckInfo => "PvpBattleDeckInfo",
                Self::PvpBattleDeckSave => "PvpBattleDeckSave",
                Self::PvpBattleMatching => "PvpBattleMatching",
                Self::PvpBattleStart => "PvpBattleStart",
                Self::PvpBattleEnd => "PvpBattleEnd",
                Self::PvpBattleReward => "PvpBattleReward",
                Self::PvpBattleRanking => "PvpBattleRanking",
                Self::PvpBattleRankUserDetail => "PvpBattleRankUserDetail",
                Self::FieldObjecPositionUpdate => "FieldObjecPositionUpdate",
                Self::CharImmortal => "CharImmortal",
                Self::PvpBattleHistory => "PvpBattleHistory",
                Self::PvpBattleHistoryDeckInfo => "PvpBattleHistoryDeckInfo",
                Self::CharClassUp => "CharClassUp",
                Self::TimePause => "TimePause",
                Self::TutorialInfo => "TutorialInfo",
                Self::TutorialClear => "TutorialClear",
                Self::ActiveMiniMap => "ActiveMiniMap",
                Self::PackPreviewInfo => "PackPreviewInfo",
                Self::EquipSmelting => "EquipSmelting",
                Self::ReputationInfo => "ReputationInfo",
                Self::ShopOpen => "ShopOpen",
                Self::DispatchReward => "DispatchReward",
                Self::InnOpen => "InnOpen",
                Self::HuntingGroundEnter => "HuntingGroundEnter",
                Self::PictorialBookInfo => "PictorialBookInfo",
                Self::EvilCastleInfo => "EvilCastleInfo",
                Self::EvilCastleEnter => "EvilCastleEnter",
                Self::EvilCastleRakingList => "EvilCastleRakingList",
                Self::EvilCastleStageClearReward => "EvilCastleStageClearReward",
                Self::EvilCastleStageRankingInfo => "EvilCastleStageRankingInfo",
                Self::ScheduleInfo => "ScheduleInfo",
                Self::MissionInfo => "MissionInfo",
                Self::MissionUpdate => "MissionUpdate",
                Self::MissionClear => "MissionClear",
                Self::NotuseChargeCost => "NOTUSEChargeCost",
                Self::MissionSectionReward => "MissionSectionReward",
                Self::ChargeCostInfo => "ChargeCostInfo",
                Self::PassInfo => "PassInfo",
                Self::EvilCastlePing => "EvilCastlePing",
                Self::PassReward => "PassReward",
                Self::EventMissionInfo => "EventMissionInfo",
                Self::NoneUse128 => "NoneUse128",
                Self::PassBuy => "PassBuy",
                Self::ServerNowTime => "ServerNowTime",
                Self::MailInfo => "MailInfo",
                Self::MailOpen => "MailOpen",
                Self::CharExpiry => "CharExpiry",
                Self::HuntingGroundInfo => "HuntingGroundInfo",
                Self::EvilCastleRewardInfo => "EvilCastleRewardInfo",
                Self::PvpSeasonReward => "PvpSeasonReward",
                Self::QuestMaxClearInfo => "QuestMaxClearInfo",
                Self::MailHistoryInfo => "MailHistoryInfo",
                Self::FieldMonsterRegen => "FieldMonsterRegen",
                Self::CashMailInfo => "CashMailInfo",
                Self::BattleVerify => "BattleVerify",
                Self::BattleVerifyState => "BattleVerifyState",
                Self::UseRandomBox => "UseRandomBox",
                Self::FieldObjectPreview => "FieldObjectPreview",
                Self::GachaInfo => "GachaInfo",
                Self::GachaBuy => "GachaBuy",
                Self::GachaPointExchange => "GachaPointExchange",
                Self::CharSpecialScoutInfo => "CharSpecialScoutInfo",
                Self::CharSpecialScoutBuy => "CharSpecialScoutBuy",
                Self::CharSpecialScoutReset => "CharSpecialScoutReset",
                Self::EventReward => "EventReward",
                Self::EquipsUse => "EquipsUse",
                Self::LeaveUser => "LeaveUser",
                Self::CancelLeaveUser => "CancelLeaveUser",
                Self::PlatformLogin => "PlatformLogin",
                Self::SelectPlatformOtherData => "SelectPlatformOtherData",
                Self::SkyWayInfo => "SkyWayInfo",
                Self::SkyWayEnter => "SkyWayEnter",
                Self::SkyWayScheduleInfo => "SkyWayScheduleInfo",
                Self::EventScheduleInfo => "EventScheduleInfo",
                Self::AllCharRefresh => "AllCharRefresh",
                Self::AchievementInfo => "AchievementInfo",
                Self::AchievementUpdate => "AchievementUpdate",
                Self::AchievementClear => "AchievementClear",
                Self::FieldTrapInfo => "FieldTrapInfo",
                Self::InteractionTrigger => "InteractionTrigger",
                Self::JpUser => "JpUser",
                Self::JpUserInfo => "JpUserInfo",
                Self::GachaBuyPreview => "GachaBuyPreview",
                Self::EquipSequenceUpgrade => "EquipSequenceUpgrade",
                Self::EquipSequenceSmelting => "EquipSequenceSmelting",
                Self::PresetInfo => "PresetInfo",
                Self::PresetSave => "PresetSave",
                Self::PresetAddSlot => "PresetAddSlot",
                Self::BattleEndTest => "BattleEndTest",
                Self::EventExchangeInfo => "EventExchangeInfo",
                Self::EventExchangeReward => "EventExchangeReward",
                Self::EventExchangeNextPageOpen => "EventExchangeNextPageOpen",
                Self::BalanceVersionCheck => "BalanceVersionCheck",
                Self::LogoutUser => "LogoutUser",
                Self::GachaPointManualExchange => "GachaPointManualExchange",
                Self::HuntDispatchInfo => "HuntDispatchInfo",
                Self::HuntDispatchStart => "HuntDispatchStart",
                Self::HuntDispatchEnd => "HuntDispatchEnd",
                Self::EquipOptionReRoll => "EquipOptionReRoll",
                Self::EquipOptionReRollConfirm => "EquipOptionReRollConfirm",
                Self::HuntDispatchRewardPreview => "HuntDispatchRewardPreview",
                Self::NoticeDetailInfo => "NoticeDetailInfo",
                Self::MonsterHuntUserInfo => "MonsterHuntUserInfo",
                Self::MonsterHuntRankInfo => "MonsterHuntRankInfo",
                Self::GachaSelectionSave => "GachaSelectionSave",
                Self::PersonalInfo => "PersonalInfo",
                Self::EvilCastleTowerInfo => "EvilCastleTowerInfo",
                Self::GachaLogInfo => "GachaLogInfo",
                Self::StatueObjectReward => "StatueObjectReward",
                Self::LikeUser => "LikeUser",
                Self::FriendInfoList => "FriendInfoList",
                Self::FriendSend => "FriendSend",
                Self::FriendAccept => "FriendAccept",
                Self::FriendRefuse => "FriendRefuse",
                Self::FriendRemove => "FriendRemove",
                Self::FriendSendList => "FriendSendList",
                Self::FriendReceiveList => "FriendReceiveList",
                Self::FriendRecommend => "FriendRecommend",
                Self::FriendSearch => "FriendSearch",
                Self::FriendSendRemove => "FriendSendRemove",
                Self::PackEventBattleInfo => "PackEventBattleInfo",
                Self::UserContentsInfo => "UserContentsInfo",
                Self::UserContentsInfoOption => "UserContentsInfoOption",
                Self::UpdateUserContentsInfoOption => "UpdateUserContentsInfoOption",
                Self::MyLikeInfo => "MyLikeInfo",
                Self::UserGreetingChange => "UserGreetingChange",
                Self::PackEventStoryInfo => "PackEventStoryInfo",
                Self::PackEventStoryClear => "PackEventStoryClear",
                Self::EventHubInfoResponse => "EventHubInfoResponse",
                Self::MiniGameBoardInfo => "MiniGameBoardInfo",
                Self::MiniGameBoardPlay => "MiniGameBoardPlay",
                Self::UserTitleChange => "UserTitleChange",
                Self::PackRewardObjectCount => "PackRewardObjectCount",
                Self::PackSubQuestClearInfo => "PackSubQuestClearInfo",
                Self::MyRoomUserInfo => "MyRoomUserInfo",
                Self::MyRoomSave => "MyRoomSave",
                Self::MyRoomSearchFriend => "MyRoomSearchFriend",
                Self::MyRoomSearchRecommend => "MyRoomSearchRecommend",
                Self::MyRoomItemInfo => "MyRoomItemInfo",
                Self::NoneUse233 => "NoneUse233",
                Self::MyRoomNameChange => "MyRoomNameChange",
                Self::MyRoomPrimaryChange => "MyRoomPrimaryChange",
                Self::TotalWarInfo => "TotalWarInfo",
                Self::TotalWarDeckInfo => "TotalWarDeckInfo",
                Self::TotalWarDeckSave => "TotalWarDeckSave",
                Self::TotalWarDeckPresetInfo => "TotalWarDeckPresetInfo",
                Self::TotalWarDeckPresetSave => "TotalWarDeckPresetSave",
                Self::TotalWarDeckPresetSlotAdd => "TotalWarDeckPresetSlotAdd",
                Self::TotalWarReward => "TotalWarReward",
                Self::TotalWarBattleStart => "TotalWarBattleStart",
                Self::TotalWarBattleEnd => "TotalWarBattleEnd",
                Self::MyRoomShopInfo => "MyRoomShopInfo",
                Self::MyRoomShopBuy => "MyRoomShopBuy",
                Self::MiniGameFieldInfo => "MiniGameFieldInfo",
                Self::MiniGameFieldStart => "MiniGameFieldStart",
                Self::MiniGameFieldScore => "MiniGameFieldScore",
                Self::MiniGameFieldEnd => "MiniGameFieldEnd",
                Self::MiniGameFieldQuickReward => "MiniGameFieldQuickReward",
                Self::TotalWarRewardState => "TotalWarRewardState",
                Self::EquipPresetInfo => "EquipPresetInfo",
                Self::EquipPresetSave => "EquipPresetSave",
                Self::EquipsClear => "EquipsClear",
                Self::MiniGameBingoInfo => "MiniGameBingoInfo",
                Self::MiniGameBingoPlay => "MiniGameBingoPlay",
                Self::SaveTotalBattlePower => "SaveTotalBattlePower",
                Self::EquipPresetNameChange => "EquipPresetNameChange",
                Self::FieldObjectRewardList => "FieldObjectRewardList",
                Self::QuickBattle => "QuickBattle",
                Self::AlchemyBatch => "AlchemyBatch",
                Self::MonsterHuntDeckInfo => "MonsterHuntDeckInfo",
                Self::MonsterHuntDeckSave => "MonsterHuntDeckSave",
                Self::MonsterHuntChangeTeam => "MonsterHuntChangeTeam",
                Self::MonsterHuntQuickBattle => "MonsterHuntQuickBattle",
                Self::CostumePotentialConnect => "CostumePotentialConnect",
                Self::CostumeNodeActivation => "CostumeNodeActivation",
                Self::PopularCostumeInfo => "PopularCostumeInfo",
                Self::ClientCustomLog => "ClientCustomLog",
                Self::UseResourceItem => "UseResourceItem",
                Self::FieldDeckInfo => "FieldDeckInfo",
                Self::FieldDeckSave => "FieldDeckSave",
                Self::Overwhelm => "Overwhelm",
                Self::EquipBatchUse => "EquipBatchUse",
                Self::PvpBattleOnceRewardInfo => "PvpBattleOnceRewardInfo",
                Self::PresetInfoChange => "PresetInfoChange",
                Self::EvilCastleRogueLikeInfo => "EvilCastleRogueLikeInfo",
                Self::EvilCastleRogueLikeEnter => "EvilCastleRogueLikeEnter",
                Self::EvilCastleRogueLikeGiveUp => "EvilCastleRogueLikeGiveUp",
                Self::EvilCastleRogueLikeRoomEnter => "EvilCastleRogueLikeRoomEnter",
                Self::EvilCastleRogueLikeSelectReward => {
                    "EvilCastleRogueLikeSelectReward"
                }
                Self::EvilCastleRogueLikeRewardReRoll => {
                    "EvilCastleRogueLikeRewardReRoll"
                }
                Self::EvilCastleRogueLikeDeckSave => "EvilCastleRogueLikeDeckSave",
                Self::ClearPackageReward => "ClearPackageReward",
                Self::BattleRetryPreviousTurn => "BattleRetryPreviousTurn",
                Self::SaveFieldCharControlDeckType => "SaveFieldCharControlDeckType",
                Self::CommunityRewardInfo => "CommunityRewardInfo",
                Self::CommunityReward => "CommunityReward",
                Self::GuildRaidMainInfo => "GuildRaidMainInfo",
                Self::GuildRaidNormalBattleInfo => "GuildRaidNormalBattleInfo",
                Self::GuildRaidBossBattleInfo => "GuildRaidBossBattleInfo",
                Self::GuildRaidBossQuickBattle => "GuildRaidBossQuickBattle",
                Self::GuildCreate => "GuildCreate",
                Self::GuildInfo => "GuildInfo",
                Self::GuildLeave => "GuildLeave",
                Self::GuildRecommend => "GuildRecommend",
                Self::GuildJoin => "GuildJoin",
                Self::GuildAccept => "GuildAccept",
                Self::GuildJoinRefuse => "GuildJoinRefuse",
                Self::GuildMemberBan => "GuildMemberBan",
                Self::GuildMemberRoleEdit => "GuildMemberRoleEdit",
                Self::GuildInfoEdit => "GuildInfoEdit",
                Self::GuildSearch => "GuildSearch",
                Self::GuildSupporterList => "GuildSupporterList",
                Self::GuildRaidMemberRanking => "GuildRaidMemberRanking",
                Self::GuildRaidSeasonReward => "GuildRaidSeasonReward",
                Self::GuildJoinSendCancel => "GuildJoinSendCancel",
                Self::GuildRaidDeckInfo => "GuildRaidDeckInfo",
                Self::GuildRaidDeckSave => "GuildRaidDeckSave",
                Self::GuildJoinRequestInfo => "GuildJoinRequestInfo",
                Self::GuildDeleteCancel => "GuildDeleteCancel",
                Self::GuildRaidBossBattleEnter => "GuildRaidBossBattleEnter",
                Self::EvilCastleRogueLikeBattleCharChange => {
                    "EvilCastleRogueLikeBattleCharChange"
                }
                Self::EvilCastleRogueLikeEventSelect => "EvilCastleRogueLikeEventSelect",
                Self::EvilCastleRogueLikeEventChoice => "EvilCastleRogueLikeEventChoice",
                Self::EvilCastleRogueLikeShopBuy => "EvilCastleRogueLikeShopBuy",
                Self::EvilCastleRogueLikeShopReRoll => "EvilCastleRogueLikeShopReRoll",
                Self::EvilCastleRogueLikeShopExit => "EvilCastleRogueLikeShopExit",
                Self::EvilCastleRogueLikeGrowth => "EvilCastleRogueLikeGrowth",
                Self::EvilCastleRogueLikeGiveUpInfo => "EvilCastleRogueLikeGiveUpInfo",
                Self::EvilCastleRogueLikeAllUserScoreInfo => {
                    "EvilCastleRogueLikeAllUserScoreInfo"
                }
                Self::EvilCastleRogueLikeRankInfo => "EvilCastleRogueLikeRankInfo",
                Self::EvilCastleRogueLikeSeasonReward => {
                    "EvilCastleRogueLikeSeasonReward"
                }
                Self::MiniGameRunInfo => "MiniGameRunInfo",
                Self::MiniGameRunStart => "MiniGameRunStart",
                Self::MiniGameRunEnd => "MiniGameRunEnd",
                Self::MiniGameRunQuickReward => "MiniGameRunQuickReward",
                Self::GuildInitInfo => "GuildInitInfo",
                Self::GuildSupporterAdd => "GuildSupporterAdd",
                Self::GuildSupporterDelete => "GuildSupporterDelete",
                Self::GuildUpdateActionInfo => "GuildUpdateActionInfo",
                Self::CharImprintInfo => "CharImprintInfo",
                Self::CharImprintLevelUp => "CharImprintLevelUp",
                Self::CharAwakeActive => "CharAwakeActive",
                Self::GuildRaidBossBattleHistory => "GuildRaidBossBattleHistory",
                Self::EvilCastleRogueLikeQuickBattle => "EvilCastleRogueLikeQuickBattle",
                Self::GuildSupporterInfo => "GuildSupporterInfo",
                Self::EvilCastleRogueLikeCostumeUpgrade => {
                    "EvilCastleRogueLikeCostumeUpgrade"
                }
                Self::MiniPuzzleInfo => "MiniPuzzleInfo",
                Self::MiniPuzzleOpen => "MiniPuzzleOpen",
                Self::MiniPuzzleAllOpen => "MiniPuzzleAllOpen",
                Self::MiniPuzzleRenew => "MiniPuzzleRenew",
                Self::EvilCastleRogueLikeRelicMix => "EvilCastleRogueLikeRelicMix",
                Self::MiniGameSurvivalInfo => "MiniGameSurvivalInfo",
                Self::MiniGameSurvivalStart => "MiniGameSurvivalStart",
                Self::MiniGameSurvivalEnd => "MiniGameSurvivalEnd",
                Self::CafeteriaInfo => "CafeteriaInfo",
                Self::CafeteriaSpawnReset => "CafeteriaSpawnReset",
                Self::CafeteriaLevelUp => "CafeteriaLevelUp",
                Self::CafeteriaManageItemAdd => "CafeteriaManageItemAdd",
                Self::CafeteriaRegularCostumeInteractionReward => {
                    "CafeteriaRegularCostumeInteractionReward"
                }
                Self::CafeteriaRegularCostumeInteractionAllReward => {
                    "CafeteriaRegularCostumeInteractionAllReward"
                }
                Self::CafeteriaCumulativeReward => "CafeteriaCumulativeReward",
                Self::CafeteriaRegularCostumeNoteInfo => {
                    "CafeteriaRegularCostumeNoteInfo"
                }
                Self::CafeteriaRegularCostumeNoteReward => {
                    "CafeteriaRegularCostumeNoteReward"
                }
                Self::CafeteriaRegularCostumeNoteAllReward => {
                    "CafeteriaRegularCostumeNoteAllReward"
                }
                Self::DatingInfo => "DatingInfo",
                Self::DatingEpisodeClear => "DatingEpisodeClear",
                Self::DatingMessageUpdate => "DatingMessageUpdate",
                Self::MiniGameSurvivalPlay => "MiniGameSurvivalPlay",
                Self::MiniGameSurvivalSkillUp => "MiniGameSurvivalSkillUp",
                Self::MiniGameSurvivalQuickReward => "MiniGameSurvivalQuickReward",
                Self::RootSortIdInfo => "RootSortIdInfo",
                Self::MiniGameSurvivalRanking => "MiniGameSurvivalRanking",
                Self::MiniGameSurvivalCharUpgrade => "MiniGameSurvivalCharUpgrade",
                Self::MiniGameSurvivalSkillSelectList => {
                    "MiniGameSurvivalSkillSelectList"
                }
                Self::CafeteriaIntroductionStoryReward => {
                    "CafeteriaIntroductionStoryReward"
                }
                Self::CharAutoReviveSet => "CharAutoReviveSet",
                Self::DeckCharAutoRevive => "DeckCharAutoRevive",
                Self::GuildRaidNormalBattleHistoryInfo => {
                    "GuildRaidNormalBattleHistoryInfo"
                }
                Self::GuildRaidMemberPlayHistoryInfo => "GuildRaidMemberPlayHistoryInfo",
                Self::CafeteriaDailyConnectionCostumeRefresh => {
                    "CafeteriaDailyConnectionCostumeRefresh"
                }
                Self::CafeteriaRewardReceiptTimeUpdateUsingCheat => {
                    "CafeteriaRewardReceiptTimeUpdateUsingCheat"
                }
                Self::MiniGameSichuanInfo => "MiniGameSichuanInfo",
                Self::MiniGameSichuanStart => "MiniGameSichuanStart",
                Self::MiniGameSichuanEnd => "MiniGameSichuanEnd",
                Self::GuildNoticeInfo => "GuildNoticeInfo",
                Self::GuildNoticeUpdate => "GuildNoticeUpdate",
                Self::MiniGameSichuanRanking => "MiniGameSichuanRanking",
                Self::EquipFromMakingToBreak => "EquipFromMakingToBreak",
                Self::EquipFromUpgradeToBreak => "EquipFromUpgradeToBreak",
                Self::EquipFromMakingToUpgrade => "EquipFromMakingToUpgrade",
                Self::HuntingGroundInfoList => "HuntingGroundInfoList",
                Self::BattleExit => "BattleExit",
                Self::MiniGameSurvivalCharUpgradeReset => {
                    "MiniGameSurvivalCharUpgradeReset"
                }
                Self::MiniGameHubInfo => "MiniGameHubInfo",
                Self::MiniGameDefenseInfo => "MiniGameDefenseInfo",
                Self::MiniGameDefenseStart => "MiniGameDefenseStart",
                Self::MiniGameDefenseEnd => "MiniGameDefenseEnd",
                Self::RecommendDeckInfo => "RecommendDeckInfo",
                Self::DeckCostumeSettingInfo => "DeckCostumeSettingInfo",
                Self::DeckCostumeSettingSave => "DeckCostumeSettingSave",
                Self::GuildRaidPresetSlotAdd => "GuildRaidPresetSlotAdd",
                Self::MonsterHuntPresetSlotAdd => "MonsterHuntPresetSlotAdd",
                Self::PvpContentsItemRenew => "PvpContentsItemRenew",
                Self::TotalWarContentsItemRenew => "TotalWarContentsItemRenew",
                Self::GuildRaidPresetInfo => "GuildRaidPresetInfo",
                Self::GuildRaidPresetSave => "GuildRaidPresetSave",
                Self::MonsterHuntPresetInfo => "MonsterHuntPresetInfo",
                Self::MonsterHuntPresetSave => "MonsterHuntPresetSave",
                Self::EquipMarkSet => "EquipMarkSet",
                Self::EquipMarkDelete => "EquipMarkDelete",
                Self::PresetUse => "PresetUse",
                Self::MonsterHuntPresetUse => "MonsterHuntPresetUse",
                Self::GuildRaidPresetUse => "GuildRaidPresetUse",
                Self::RecommendDeckUserOptionSave => "RecommendDeckUserOptionSave",
                Self::CafeteriaRareNpcInteractionReward => {
                    "CafeteriaRareNpcInteractionReward"
                }
                Self::CafeteriaEventNpcInteractionReward => {
                    "CafeteriaEventNpcInteractionReward"
                }
                Self::MiniGameRouletteInfo => "MiniGameRouletteInfo",
                Self::MiniGameRouletteDraw => "MiniGameRouletteDraw",
                Self::MyRoomExpand => "MyRoomExpand",
                Self::MyRoomMove => "MyRoomMove",
                Self::MyRoomLike => "MyRoomLike",
                Self::MiniGameActionInfo => "MiniGameActionInfo",
                Self::MiniGameActionStart => "MiniGameActionStart",
                Self::MiniGameActionEnd => "MiniGameActionEnd",
                Self::MyRoomSearchGuild => "MyRoomSearchGuild",
                Self::PrestigeSkinSet => "PrestigeSkinSet",
                Self::MiniGameRhythmInfo => "MiniGameRhythmInfo",
                Self::MiniGameRhythmPlayStart => "MiniGameRhythmPlayStart",
                Self::MiniGameRhythmPlayEnd => "MiniGameRhythmPlayEnd",
                Self::CashShopPurchaseCountInfo => "CashShopPurchaseCountInfo",
                Self::CharGrowth => "CharGrowth",
                Self::SupporterDetail => "SupporterDetail",
                Self::SupporterRegister => "SupporterRegister",
                Self::SupporterRemove => "SupporterRemove",
                Self::SupporterBorrow => "SupporterBorrow",
                Self::SupporterStatus => "SupporterStatus",
                Self::SupporterBattleInfo => "SupporterBattleInfo",
                Self::EvilCastleDailyReward => "EvilCastleDailyReward",
                Self::EvilCastleDailyRewardState => "EvilCastleDailyRewardState",
                Self::SupporterReward => "SupporterReward",
                Self::SupporterInfo => "SupporterInfo",
                Self::IdCardSave => "IdCardSave",
                Self::IdCardShopInfo => "IdCardShopInfo",
                Self::IdCardShopBuy => "IdCardShopBuy",
                Self::IdCardPresetSave => "IdCardPresetSave",
                Self::IdCardPresetInfo => "IdCardPresetInfo",
                Self::IdCardPresetDelete => "IdCardPresetDelete",
                Self::IdCardRecovery => "IdCardRecovery",
                Self::GuildRaidBossPracticeBattleEnter => {
                    "GuildRaidBossPracticeBattleEnter"
                }
                Self::EvilCastleRogueLikeBattleEndPreview => {
                    "EvilCastleRogueLikeBattleEndPreview"
                }
            }
        }
        /// Creates an enum from field names used in the ProtoBuf definition.
        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
            match value {
                "Common" => Some(Self::Common),
                "PingCheck" => Some(Self::PingCheck),
                "JoinUser" => Some(Self::JoinUser),
                "LoginUser" => Some(Self::LoginUser),
                "PackInfo" => Some(Self::PackInfo),
                "PackInGameInfo" => Some(Self::PackInGameInfo),
                "PackBuy" => Some(Self::PackBuy),
                "SaveUserPosition" => Some(Self::SaveUserPosition),
                "DeckInfo" => Some(Self::DeckInfo),
                "CharInfo" => Some(Self::CharInfo),
                "DeckSave" => Some(Self::DeckSave),
                "CharAllRevival" => Some(Self::CharAllRevival),
                "CharLevelUp" => Some(Self::CharLevelUp),
                "MercenaryScout" => Some(Self::MercenaryScout),
                "BattleStart" => Some(Self::BattleStart),
                "BattleEnd" => Some(Self::BattleEnd),
                "QuestInfo" => Some(Self::QuestInfo),
                "QuestAccept" => Some(Self::QuestAccept),
                "QuestClear" => Some(Self::QuestClear),
                "QuestUpdate" => Some(Self::QuestUpdate),
                "QuestGiveUp" => Some(Self::QuestGiveUp),
                "ItemInfo" => Some(Self::ItemInfo),
                "EatFood" => Some(Self::EatFood),
                "ItemDump" => Some(Self::ItemDump),
                "InvenAddSlot" => Some(Self::InvenAddSlot),
                "StorageAddSlot" => Some(Self::StorageAddSlot),
                "ItemStorageUpdate" => Some(Self::ItemStorageUpdate),
                "EatFoodAuto" => Some(Self::EatFoodAuto),
                "FieldObjectInfo" => Some(Self::FieldObjectInfo),
                "FieldObjectReward" => Some(Self::FieldObjectReward),
                "FieldObjectRespawn" => Some(Self::FieldObjectRespawn),
                "WaypointInfo" => Some(Self::WaypointInfo),
                "WaypointSave" => Some(Self::WaypointSave),
                "WaypointUse" => Some(Self::WaypointUse),
                "EquipInfo" => Some(Self::EquipInfo),
                "EquipUse" => Some(Self::EquipUse),
                "EquipClear" => Some(Self::EquipClear),
                "EquipUpgrade" => Some(Self::EquipUpgrade),
                "EquipLock" => Some(Self::EquipLock),
                "EquipAddSlot" => Some(Self::EquipAddSlot),
                "CostumeInfo" => Some(Self::CostumeInfo),
                "CostumeUse" => Some(Self::CostumeUse),
                "CostumeUpgrade" => Some(Self::CostumeUpgrade),
                "TalentSkillUse" => Some(Self::TalentSkillUse),
                "TalentSkillUpgrade" => Some(Self::TalentSkillUpgrade),
                "EquipChange" => Some(Self::EquipChange),
                "RecipeInfo" => Some(Self::RecipeInfo),
                "CookingResearch" => Some(Self::CookingResearch),
                "Cooking" => Some(Self::Cooking),
                "Alchemy" => Some(Self::Alchemy),
                "EquipMaking" => Some(Self::EquipMaking),
                "MonsterInfo" => Some(Self::MonsterInfo),
                "BattleEnter" => Some(Self::BattleEnter),
                "ShopInfo" => Some(Self::ShopInfo),
                "ShopBuy" => Some(Self::ShopBuy),
                "ShopSell" => Some(Self::ShopSell),
                "EquipBreak" => Some(Self::EquipBreak),
                "BattleGiveUp" => Some(Self::BattleGiveUp),
                "BattleRetry" => Some(Self::BattleRetry),
                "FieldObjectResearch" => Some(Self::FieldObjectResearch),
                "CashShopInfo" => Some(Self::CashShopInfo),
                "CashShopBuy" => Some(Self::CashShopBuy),
                "CharHealing" => Some(Self::CharHealing),
                "TrapDamage" => Some(Self::TrapDamage),
                "TodayQuestInfo" => Some(Self::TodayQuestInfo),
                "CharPartnerInfo" => Some(Self::CharPartnerInfo),
                "CharPartnerReward" => Some(Self::CharPartnerReward),
                "CharPartnerStoryReward" => Some(Self::CharPartnerStoryReward),
                "NpcReputationInfo" => Some(Self::NpcReputationInfo),
                "NpcReputationRecovery" => Some(Self::NpcReputationRecovery),
                "QuestImmortalReset" => Some(Self::QuestImmortalReset),
                "TalentSlotSave" => Some(Self::TalentSlotSave),
                "PackJamEvent" => Some(Self::PackJamEvent),
                "UserLevelReward" => Some(Self::UserLevelReward),
                "UserNicknameChange" => Some(Self::UserNicknameChange),
                "UserPortraitChange" => Some(Self::UserPortraitChange),
                "ItemStoragePut" => Some(Self::ItemStoragePut),
                "ItemStorageOut" => Some(Self::ItemStorageOut),
                "ItemStorageInfo" => Some(Self::ItemStorageInfo),
                "EquipStoragePut" => Some(Self::EquipStoragePut),
                "EquipStorageOut" => Some(Self::EquipStorageOut),
                "EquipStorageInfo" => Some(Self::EquipStorageInfo),
                "EquipStorageAddSlot" => Some(Self::EquipStorageAddSlot),
                "FieldMonsterEvent" => Some(Self::FieldMonsterEvent),
                "FieldMonsterReward" => Some(Self::FieldMonsterReward),
                "FieldMonsterDamage" => Some(Self::FieldMonsterDamage),
                "PvpBattleUserInfo" => Some(Self::PvpBattleUserInfo),
                "PvpBattleDeckInfo" => Some(Self::PvpBattleDeckInfo),
                "PvpBattleDeckSave" => Some(Self::PvpBattleDeckSave),
                "PvpBattleMatching" => Some(Self::PvpBattleMatching),
                "PvpBattleStart" => Some(Self::PvpBattleStart),
                "PvpBattleEnd" => Some(Self::PvpBattleEnd),
                "PvpBattleReward" => Some(Self::PvpBattleReward),
                "PvpBattleRanking" => Some(Self::PvpBattleRanking),
                "PvpBattleRankUserDetail" => Some(Self::PvpBattleRankUserDetail),
                "FieldObjecPositionUpdate" => Some(Self::FieldObjecPositionUpdate),
                "CharImmortal" => Some(Self::CharImmortal),
                "PvpBattleHistory" => Some(Self::PvpBattleHistory),
                "PvpBattleHistoryDeckInfo" => Some(Self::PvpBattleHistoryDeckInfo),
                "CharClassUp" => Some(Self::CharClassUp),
                "TimePause" => Some(Self::TimePause),
                "TutorialInfo" => Some(Self::TutorialInfo),
                "TutorialClear" => Some(Self::TutorialClear),
                "ActiveMiniMap" => Some(Self::ActiveMiniMap),
                "PackPreviewInfo" => Some(Self::PackPreviewInfo),
                "EquipSmelting" => Some(Self::EquipSmelting),
                "ReputationInfo" => Some(Self::ReputationInfo),
                "ShopOpen" => Some(Self::ShopOpen),
                "DispatchReward" => Some(Self::DispatchReward),
                "InnOpen" => Some(Self::InnOpen),
                "HuntingGroundEnter" => Some(Self::HuntingGroundEnter),
                "PictorialBookInfo" => Some(Self::PictorialBookInfo),
                "EvilCastleInfo" => Some(Self::EvilCastleInfo),
                "EvilCastleEnter" => Some(Self::EvilCastleEnter),
                "EvilCastleRakingList" => Some(Self::EvilCastleRakingList),
                "EvilCastleStageClearReward" => Some(Self::EvilCastleStageClearReward),
                "EvilCastleStageRankingInfo" => Some(Self::EvilCastleStageRankingInfo),
                "ScheduleInfo" => Some(Self::ScheduleInfo),
                "MissionInfo" => Some(Self::MissionInfo),
                "MissionUpdate" => Some(Self::MissionUpdate),
                "MissionClear" => Some(Self::MissionClear),
                "NOTUSEChargeCost" => Some(Self::NotuseChargeCost),
                "MissionSectionReward" => Some(Self::MissionSectionReward),
                "ChargeCostInfo" => Some(Self::ChargeCostInfo),
                "PassInfo" => Some(Self::PassInfo),
                "EvilCastlePing" => Some(Self::EvilCastlePing),
                "PassReward" => Some(Self::PassReward),
                "EventMissionInfo" => Some(Self::EventMissionInfo),
                "NoneUse128" => Some(Self::NoneUse128),
                "PassBuy" => Some(Self::PassBuy),
                "ServerNowTime" => Some(Self::ServerNowTime),
                "MailInfo" => Some(Self::MailInfo),
                "MailOpen" => Some(Self::MailOpen),
                "CharExpiry" => Some(Self::CharExpiry),
                "HuntingGroundInfo" => Some(Self::HuntingGroundInfo),
                "EvilCastleRewardInfo" => Some(Self::EvilCastleRewardInfo),
                "PvpSeasonReward" => Some(Self::PvpSeasonReward),
                "QuestMaxClearInfo" => Some(Self::QuestMaxClearInfo),
                "MailHistoryInfo" => Some(Self::MailHistoryInfo),
                "FieldMonsterRegen" => Some(Self::FieldMonsterRegen),
                "CashMailInfo" => Some(Self::CashMailInfo),
                "BattleVerify" => Some(Self::BattleVerify),
                "BattleVerifyState" => Some(Self::BattleVerifyState),
                "UseRandomBox" => Some(Self::UseRandomBox),
                "FieldObjectPreview" => Some(Self::FieldObjectPreview),
                "GachaInfo" => Some(Self::GachaInfo),
                "GachaBuy" => Some(Self::GachaBuy),
                "GachaPointExchange" => Some(Self::GachaPointExchange),
                "CharSpecialScoutInfo" => Some(Self::CharSpecialScoutInfo),
                "CharSpecialScoutBuy" => Some(Self::CharSpecialScoutBuy),
                "CharSpecialScoutReset" => Some(Self::CharSpecialScoutReset),
                "EventReward" => Some(Self::EventReward),
                "EquipsUse" => Some(Self::EquipsUse),
                "LeaveUser" => Some(Self::LeaveUser),
                "CancelLeaveUser" => Some(Self::CancelLeaveUser),
                "PlatformLogin" => Some(Self::PlatformLogin),
                "SelectPlatformOtherData" => Some(Self::SelectPlatformOtherData),
                "SkyWayInfo" => Some(Self::SkyWayInfo),
                "SkyWayEnter" => Some(Self::SkyWayEnter),
                "SkyWayScheduleInfo" => Some(Self::SkyWayScheduleInfo),
                "EventScheduleInfo" => Some(Self::EventScheduleInfo),
                "AllCharRefresh" => Some(Self::AllCharRefresh),
                "AchievementInfo" => Some(Self::AchievementInfo),
                "AchievementUpdate" => Some(Self::AchievementUpdate),
                "AchievementClear" => Some(Self::AchievementClear),
                "FieldTrapInfo" => Some(Self::FieldTrapInfo),
                "InteractionTrigger" => Some(Self::InteractionTrigger),
                "JpUser" => Some(Self::JpUser),
                "JpUserInfo" => Some(Self::JpUserInfo),
                "GachaBuyPreview" => Some(Self::GachaBuyPreview),
                "EquipSequenceUpgrade" => Some(Self::EquipSequenceUpgrade),
                "EquipSequenceSmelting" => Some(Self::EquipSequenceSmelting),
                "PresetInfo" => Some(Self::PresetInfo),
                "PresetSave" => Some(Self::PresetSave),
                "PresetAddSlot" => Some(Self::PresetAddSlot),
                "BattleEndTest" => Some(Self::BattleEndTest),
                "EventExchangeInfo" => Some(Self::EventExchangeInfo),
                "EventExchangeReward" => Some(Self::EventExchangeReward),
                "EventExchangeNextPageOpen" => Some(Self::EventExchangeNextPageOpen),
                "BalanceVersionCheck" => Some(Self::BalanceVersionCheck),
                "LogoutUser" => Some(Self::LogoutUser),
                "GachaPointManualExchange" => Some(Self::GachaPointManualExchange),
                "HuntDispatchInfo" => Some(Self::HuntDispatchInfo),
                "HuntDispatchStart" => Some(Self::HuntDispatchStart),
                "HuntDispatchEnd" => Some(Self::HuntDispatchEnd),
                "EquipOptionReRoll" => Some(Self::EquipOptionReRoll),
                "EquipOptionReRollConfirm" => Some(Self::EquipOptionReRollConfirm),
                "HuntDispatchRewardPreview" => Some(Self::HuntDispatchRewardPreview),
                "NoticeDetailInfo" => Some(Self::NoticeDetailInfo),
                "MonsterHuntUserInfo" => Some(Self::MonsterHuntUserInfo),
                "MonsterHuntRankInfo" => Some(Self::MonsterHuntRankInfo),
                "GachaSelectionSave" => Some(Self::GachaSelectionSave),
                "PersonalInfo" => Some(Self::PersonalInfo),
                "EvilCastleTowerInfo" => Some(Self::EvilCastleTowerInfo),
                "GachaLogInfo" => Some(Self::GachaLogInfo),
                "StatueObjectReward" => Some(Self::StatueObjectReward),
                "LikeUser" => Some(Self::LikeUser),
                "FriendInfoList" => Some(Self::FriendInfoList),
                "FriendSend" => Some(Self::FriendSend),
                "FriendAccept" => Some(Self::FriendAccept),
                "FriendRefuse" => Some(Self::FriendRefuse),
                "FriendRemove" => Some(Self::FriendRemove),
                "FriendSendList" => Some(Self::FriendSendList),
                "FriendReceiveList" => Some(Self::FriendReceiveList),
                "FriendRecommend" => Some(Self::FriendRecommend),
                "FriendSearch" => Some(Self::FriendSearch),
                "FriendSendRemove" => Some(Self::FriendSendRemove),
                "PackEventBattleInfo" => Some(Self::PackEventBattleInfo),
                "UserContentsInfo" => Some(Self::UserContentsInfo),
                "UserContentsInfoOption" => Some(Self::UserContentsInfoOption),
                "UpdateUserContentsInfoOption" => {
                    Some(Self::UpdateUserContentsInfoOption)
                }
                "MyLikeInfo" => Some(Self::MyLikeInfo),
                "UserGreetingChange" => Some(Self::UserGreetingChange),
                "PackEventStoryInfo" => Some(Self::PackEventStoryInfo),
                "PackEventStoryClear" => Some(Self::PackEventStoryClear),
                "EventHubInfoResponse" => Some(Self::EventHubInfoResponse),
                "MiniGameBoardInfo" => Some(Self::MiniGameBoardInfo),
                "MiniGameBoardPlay" => Some(Self::MiniGameBoardPlay),
                "UserTitleChange" => Some(Self::UserTitleChange),
                "PackRewardObjectCount" => Some(Self::PackRewardObjectCount),
                "PackSubQuestClearInfo" => Some(Self::PackSubQuestClearInfo),
                "MyRoomUserInfo" => Some(Self::MyRoomUserInfo),
                "MyRoomSave" => Some(Self::MyRoomSave),
                "MyRoomSearchFriend" => Some(Self::MyRoomSearchFriend),
                "MyRoomSearchRecommend" => Some(Self::MyRoomSearchRecommend),
                "MyRoomItemInfo" => Some(Self::MyRoomItemInfo),
                "NoneUse233" => Some(Self::NoneUse233),
                "MyRoomNameChange" => Some(Self::MyRoomNameChange),
                "MyRoomPrimaryChange" => Some(Self::MyRoomPrimaryChange),
                "TotalWarInfo" => Some(Self::TotalWarInfo),
                "TotalWarDeckInfo" => Some(Self::TotalWarDeckInfo),
                "TotalWarDeckSave" => Some(Self::TotalWarDeckSave),
                "TotalWarDeckPresetInfo" => Some(Self::TotalWarDeckPresetInfo),
                "TotalWarDeckPresetSave" => Some(Self::TotalWarDeckPresetSave),
                "TotalWarDeckPresetSlotAdd" => Some(Self::TotalWarDeckPresetSlotAdd),
                "TotalWarReward" => Some(Self::TotalWarReward),
                "TotalWarBattleStart" => Some(Self::TotalWarBattleStart),
                "TotalWarBattleEnd" => Some(Self::TotalWarBattleEnd),
                "MyRoomShopInfo" => Some(Self::MyRoomShopInfo),
                "MyRoomShopBuy" => Some(Self::MyRoomShopBuy),
                "MiniGameFieldInfo" => Some(Self::MiniGameFieldInfo),
                "MiniGameFieldStart" => Some(Self::MiniGameFieldStart),
                "MiniGameFieldScore" => Some(Self::MiniGameFieldScore),
                "MiniGameFieldEnd" => Some(Self::MiniGameFieldEnd),
                "MiniGameFieldQuickReward" => Some(Self::MiniGameFieldQuickReward),
                "TotalWarRewardState" => Some(Self::TotalWarRewardState),
                "EquipPresetInfo" => Some(Self::EquipPresetInfo),
                "EquipPresetSave" => Some(Self::EquipPresetSave),
                "EquipsClear" => Some(Self::EquipsClear),
                "MiniGameBingoInfo" => Some(Self::MiniGameBingoInfo),
                "MiniGameBingoPlay" => Some(Self::MiniGameBingoPlay),
                "SaveTotalBattlePower" => Some(Self::SaveTotalBattlePower),
                "EquipPresetNameChange" => Some(Self::EquipPresetNameChange),
                "FieldObjectRewardList" => Some(Self::FieldObjectRewardList),
                "QuickBattle" => Some(Self::QuickBattle),
                "AlchemyBatch" => Some(Self::AlchemyBatch),
                "MonsterHuntDeckInfo" => Some(Self::MonsterHuntDeckInfo),
                "MonsterHuntDeckSave" => Some(Self::MonsterHuntDeckSave),
                "MonsterHuntChangeTeam" => Some(Self::MonsterHuntChangeTeam),
                "MonsterHuntQuickBattle" => Some(Self::MonsterHuntQuickBattle),
                "CostumePotentialConnect" => Some(Self::CostumePotentialConnect),
                "CostumeNodeActivation" => Some(Self::CostumeNodeActivation),
                "PopularCostumeInfo" => Some(Self::PopularCostumeInfo),
                "ClientCustomLog" => Some(Self::ClientCustomLog),
                "UseResourceItem" => Some(Self::UseResourceItem),
                "FieldDeckInfo" => Some(Self::FieldDeckInfo),
                "FieldDeckSave" => Some(Self::FieldDeckSave),
                "Overwhelm" => Some(Self::Overwhelm),
                "EquipBatchUse" => Some(Self::EquipBatchUse),
                "PvpBattleOnceRewardInfo" => Some(Self::PvpBattleOnceRewardInfo),
                "PresetInfoChange" => Some(Self::PresetInfoChange),
                "EvilCastleRogueLikeInfo" => Some(Self::EvilCastleRogueLikeInfo),
                "EvilCastleRogueLikeEnter" => Some(Self::EvilCastleRogueLikeEnter),
                "EvilCastleRogueLikeGiveUp" => Some(Self::EvilCastleRogueLikeGiveUp),
                "EvilCastleRogueLikeRoomEnter" => {
                    Some(Self::EvilCastleRogueLikeRoomEnter)
                }
                "EvilCastleRogueLikeSelectReward" => {
                    Some(Self::EvilCastleRogueLikeSelectReward)
                }
                "EvilCastleRogueLikeRewardReRoll" => {
                    Some(Self::EvilCastleRogueLikeRewardReRoll)
                }
                "EvilCastleRogueLikeDeckSave" => Some(Self::EvilCastleRogueLikeDeckSave),
                "ClearPackageReward" => Some(Self::ClearPackageReward),
                "BattleRetryPreviousTurn" => Some(Self::BattleRetryPreviousTurn),
                "SaveFieldCharControlDeckType" => {
                    Some(Self::SaveFieldCharControlDeckType)
                }
                "CommunityRewardInfo" => Some(Self::CommunityRewardInfo),
                "CommunityReward" => Some(Self::CommunityReward),
                "GuildRaidMainInfo" => Some(Self::GuildRaidMainInfo),
                "GuildRaidNormalBattleInfo" => Some(Self::GuildRaidNormalBattleInfo),
                "GuildRaidBossBattleInfo" => Some(Self::GuildRaidBossBattleInfo),
                "GuildRaidBossQuickBattle" => Some(Self::GuildRaidBossQuickBattle),
                "GuildCreate" => Some(Self::GuildCreate),
                "GuildInfo" => Some(Self::GuildInfo),
                "GuildLeave" => Some(Self::GuildLeave),
                "GuildRecommend" => Some(Self::GuildRecommend),
                "GuildJoin" => Some(Self::GuildJoin),
                "GuildAccept" => Some(Self::GuildAccept),
                "GuildJoinRefuse" => Some(Self::GuildJoinRefuse),
                "GuildMemberBan" => Some(Self::GuildMemberBan),
                "GuildMemberRoleEdit" => Some(Self::GuildMemberRoleEdit),
                "GuildInfoEdit" => Some(Self::GuildInfoEdit),
                "GuildSearch" => Some(Self::GuildSearch),
                "GuildSupporterList" => Some(Self::GuildSupporterList),
                "GuildRaidMemberRanking" => Some(Self::GuildRaidMemberRanking),
                "GuildRaidSeasonReward" => Some(Self::GuildRaidSeasonReward),
                "GuildJoinSendCancel" => Some(Self::GuildJoinSendCancel),
                "GuildRaidDeckInfo" => Some(Self::GuildRaidDeckInfo),
                "GuildRaidDeckSave" => Some(Self::GuildRaidDeckSave),
                "GuildJoinRequestInfo" => Some(Self::GuildJoinRequestInfo),
                "GuildDeleteCancel" => Some(Self::GuildDeleteCancel),
                "GuildRaidBossBattleEnter" => Some(Self::GuildRaidBossBattleEnter),
                "EvilCastleRogueLikeBattleCharChange" => {
                    Some(Self::EvilCastleRogueLikeBattleCharChange)
                }
                "EvilCastleRogueLikeEventSelect" => {
                    Some(Self::EvilCastleRogueLikeEventSelect)
                }
                "EvilCastleRogueLikeEventChoice" => {
                    Some(Self::EvilCastleRogueLikeEventChoice)
                }
                "EvilCastleRogueLikeShopBuy" => Some(Self::EvilCastleRogueLikeShopBuy),
                "EvilCastleRogueLikeShopReRoll" => {
                    Some(Self::EvilCastleRogueLikeShopReRoll)
                }
                "EvilCastleRogueLikeShopExit" => Some(Self::EvilCastleRogueLikeShopExit),
                "EvilCastleRogueLikeGrowth" => Some(Self::EvilCastleRogueLikeGrowth),
                "EvilCastleRogueLikeGiveUpInfo" => {
                    Some(Self::EvilCastleRogueLikeGiveUpInfo)
                }
                "EvilCastleRogueLikeAllUserScoreInfo" => {
                    Some(Self::EvilCastleRogueLikeAllUserScoreInfo)
                }
                "EvilCastleRogueLikeRankInfo" => Some(Self::EvilCastleRogueLikeRankInfo),
                "EvilCastleRogueLikeSeasonReward" => {
                    Some(Self::EvilCastleRogueLikeSeasonReward)
                }
                "MiniGameRunInfo" => Some(Self::MiniGameRunInfo),
                "MiniGameRunStart" => Some(Self::MiniGameRunStart),
                "MiniGameRunEnd" => Some(Self::MiniGameRunEnd),
                "MiniGameRunQuickReward" => Some(Self::MiniGameRunQuickReward),
                "GuildInitInfo" => Some(Self::GuildInitInfo),
                "GuildSupporterAdd" => Some(Self::GuildSupporterAdd),
                "GuildSupporterDelete" => Some(Self::GuildSupporterDelete),
                "GuildUpdateActionInfo" => Some(Self::GuildUpdateActionInfo),
                "CharImprintInfo" => Some(Self::CharImprintInfo),
                "CharImprintLevelUp" => Some(Self::CharImprintLevelUp),
                "CharAwakeActive" => Some(Self::CharAwakeActive),
                "GuildRaidBossBattleHistory" => Some(Self::GuildRaidBossBattleHistory),
                "EvilCastleRogueLikeQuickBattle" => {
                    Some(Self::EvilCastleRogueLikeQuickBattle)
                }
                "GuildSupporterInfo" => Some(Self::GuildSupporterInfo),
                "EvilCastleRogueLikeCostumeUpgrade" => {
                    Some(Self::EvilCastleRogueLikeCostumeUpgrade)
                }
                "MiniPuzzleInfo" => Some(Self::MiniPuzzleInfo),
                "MiniPuzzleOpen" => Some(Self::MiniPuzzleOpen),
                "MiniPuzzleAllOpen" => Some(Self::MiniPuzzleAllOpen),
                "MiniPuzzleRenew" => Some(Self::MiniPuzzleRenew),
                "EvilCastleRogueLikeRelicMix" => Some(Self::EvilCastleRogueLikeRelicMix),
                "MiniGameSurvivalInfo" => Some(Self::MiniGameSurvivalInfo),
                "MiniGameSurvivalStart" => Some(Self::MiniGameSurvivalStart),
                "MiniGameSurvivalEnd" => Some(Self::MiniGameSurvivalEnd),
                "CafeteriaInfo" => Some(Self::CafeteriaInfo),
                "CafeteriaSpawnReset" => Some(Self::CafeteriaSpawnReset),
                "CafeteriaLevelUp" => Some(Self::CafeteriaLevelUp),
                "CafeteriaManageItemAdd" => Some(Self::CafeteriaManageItemAdd),
                "CafeteriaRegularCostumeInteractionReward" => {
                    Some(Self::CafeteriaRegularCostumeInteractionReward)
                }
                "CafeteriaRegularCostumeInteractionAllReward" => {
                    Some(Self::CafeteriaRegularCostumeInteractionAllReward)
                }
                "CafeteriaCumulativeReward" => Some(Self::CafeteriaCumulativeReward),
                "CafeteriaRegularCostumeNoteInfo" => {
                    Some(Self::CafeteriaRegularCostumeNoteInfo)
                }
                "CafeteriaRegularCostumeNoteReward" => {
                    Some(Self::CafeteriaRegularCostumeNoteReward)
                }
                "CafeteriaRegularCostumeNoteAllReward" => {
                    Some(Self::CafeteriaRegularCostumeNoteAllReward)
                }
                "DatingInfo" => Some(Self::DatingInfo),
                "DatingEpisodeClear" => Some(Self::DatingEpisodeClear),
                "DatingMessageUpdate" => Some(Self::DatingMessageUpdate),
                "MiniGameSurvivalPlay" => Some(Self::MiniGameSurvivalPlay),
                "MiniGameSurvivalSkillUp" => Some(Self::MiniGameSurvivalSkillUp),
                "MiniGameSurvivalQuickReward" => Some(Self::MiniGameSurvivalQuickReward),
                "RootSortIdInfo" => Some(Self::RootSortIdInfo),
                "MiniGameSurvivalRanking" => Some(Self::MiniGameSurvivalRanking),
                "MiniGameSurvivalCharUpgrade" => Some(Self::MiniGameSurvivalCharUpgrade),
                "MiniGameSurvivalSkillSelectList" => {
                    Some(Self::MiniGameSurvivalSkillSelectList)
                }
                "CafeteriaIntroductionStoryReward" => {
                    Some(Self::CafeteriaIntroductionStoryReward)
                }
                "CharAutoReviveSet" => Some(Self::CharAutoReviveSet),
                "DeckCharAutoRevive" => Some(Self::DeckCharAutoRevive),
                "GuildRaidNormalBattleHistoryInfo" => {
                    Some(Self::GuildRaidNormalBattleHistoryInfo)
                }
                "GuildRaidMemberPlayHistoryInfo" => {
                    Some(Self::GuildRaidMemberPlayHistoryInfo)
                }
                "CafeteriaDailyConnectionCostumeRefresh" => {
                    Some(Self::CafeteriaDailyConnectionCostumeRefresh)
                }
                "CafeteriaRewardReceiptTimeUpdateUsingCheat" => {
                    Some(Self::CafeteriaRewardReceiptTimeUpdateUsingCheat)
                }
                "MiniGameSichuanInfo" => Some(Self::MiniGameSichuanInfo),
                "MiniGameSichuanStart" => Some(Self::MiniGameSichuanStart),
                "MiniGameSichuanEnd" => Some(Self::MiniGameSichuanEnd),
                "GuildNoticeInfo" => Some(Self::GuildNoticeInfo),
                "GuildNoticeUpdate" => Some(Self::GuildNoticeUpdate),
                "MiniGameSichuanRanking" => Some(Self::MiniGameSichuanRanking),
                "EquipFromMakingToBreak" => Some(Self::EquipFromMakingToBreak),
                "EquipFromUpgradeToBreak" => Some(Self::EquipFromUpgradeToBreak),
                "EquipFromMakingToUpgrade" => Some(Self::EquipFromMakingToUpgrade),
                "HuntingGroundInfoList" => Some(Self::HuntingGroundInfoList),
                "BattleExit" => Some(Self::BattleExit),
                "MiniGameSurvivalCharUpgradeReset" => {
                    Some(Self::MiniGameSurvivalCharUpgradeReset)
                }
                "MiniGameHubInfo" => Some(Self::MiniGameHubInfo),
                "MiniGameDefenseInfo" => Some(Self::MiniGameDefenseInfo),
                "MiniGameDefenseStart" => Some(Self::MiniGameDefenseStart),
                "MiniGameDefenseEnd" => Some(Self::MiniGameDefenseEnd),
                "RecommendDeckInfo" => Some(Self::RecommendDeckInfo),
                "DeckCostumeSettingInfo" => Some(Self::DeckCostumeSettingInfo),
                "DeckCostumeSettingSave" => Some(Self::DeckCostumeSettingSave),
                "GuildRaidPresetSlotAdd" => Some(Self::GuildRaidPresetSlotAdd),
                "MonsterHuntPresetSlotAdd" => Some(Self::MonsterHuntPresetSlotAdd),
                "PvpContentsItemRenew" => Some(Self::PvpContentsItemRenew),
                "TotalWarContentsItemRenew" => Some(Self::TotalWarContentsItemRenew),
                "GuildRaidPresetInfo" => Some(Self::GuildRaidPresetInfo),
                "GuildRaidPresetSave" => Some(Self::GuildRaidPresetSave),
                "MonsterHuntPresetInfo" => Some(Self::MonsterHuntPresetInfo),
                "MonsterHuntPresetSave" => Some(Self::MonsterHuntPresetSave),
                "EquipMarkSet" => Some(Self::EquipMarkSet),
                "EquipMarkDelete" => Some(Self::EquipMarkDelete),
                "PresetUse" => Some(Self::PresetUse),
                "MonsterHuntPresetUse" => Some(Self::MonsterHuntPresetUse),
                "GuildRaidPresetUse" => Some(Self::GuildRaidPresetUse),
                "RecommendDeckUserOptionSave" => Some(Self::RecommendDeckUserOptionSave),
                "CafeteriaRareNpcInteractionReward" => {
                    Some(Self::CafeteriaRareNpcInteractionReward)
                }
                "CafeteriaEventNpcInteractionReward" => {
                    Some(Self::CafeteriaEventNpcInteractionReward)
                }
                "MiniGameRouletteInfo" => Some(Self::MiniGameRouletteInfo),
                "MiniGameRouletteDraw" => Some(Self::MiniGameRouletteDraw),
                "MyRoomExpand" => Some(Self::MyRoomExpand),
                "MyRoomMove" => Some(Self::MyRoomMove),
                "MyRoomLike" => Some(Self::MyRoomLike),
                "MiniGameActionInfo" => Some(Self::MiniGameActionInfo),
                "MiniGameActionStart" => Some(Self::MiniGameActionStart),
                "MiniGameActionEnd" => Some(Self::MiniGameActionEnd),
                "MyRoomSearchGuild" => Some(Self::MyRoomSearchGuild),
                "PrestigeSkinSet" => Some(Self::PrestigeSkinSet),
                "MiniGameRhythmInfo" => Some(Self::MiniGameRhythmInfo),
                "MiniGameRhythmPlayStart" => Some(Self::MiniGameRhythmPlayStart),
                "MiniGameRhythmPlayEnd" => Some(Self::MiniGameRhythmPlayEnd),
                "CashShopPurchaseCountInfo" => Some(Self::CashShopPurchaseCountInfo),
                "CharGrowth" => Some(Self::CharGrowth),
                "SupporterDetail" => Some(Self::SupporterDetail),
                "SupporterRegister" => Some(Self::SupporterRegister),
                "SupporterRemove" => Some(Self::SupporterRemove),
                "SupporterBorrow" => Some(Self::SupporterBorrow),
                "SupporterStatus" => Some(Self::SupporterStatus),
                "SupporterBattleInfo" => Some(Self::SupporterBattleInfo),
                "EvilCastleDailyReward" => Some(Self::EvilCastleDailyReward),
                "EvilCastleDailyRewardState" => Some(Self::EvilCastleDailyRewardState),
                "SupporterReward" => Some(Self::SupporterReward),
                "SupporterInfo" => Some(Self::SupporterInfo),
                "IdCardSave" => Some(Self::IdCardSave),
                "IdCardShopInfo" => Some(Self::IdCardShopInfo),
                "IdCardShopBuy" => Some(Self::IdCardShopBuy),
                "IdCardPresetSave" => Some(Self::IdCardPresetSave),
                "IdCardPresetInfo" => Some(Self::IdCardPresetInfo),
                "IdCardPresetDelete" => Some(Self::IdCardPresetDelete),
                "IdCardRecovery" => Some(Self::IdCardRecovery),
                "GuildRaidBossPracticeBattleEnter" => {
                    Some(Self::GuildRaidBossPracticeBattleEnter)
                }
                "EvilCastleRogueLikeBattleEndPreview" => {
                    Some(Self::EvilCastleRogueLikeBattleEndPreview)
                }
                _ => None,
            }
        }
    }
}
/// From: Commons\PackEventBattleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackEventBattleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub battle_challenge_index: ::prost::alloc::vec::Vec<i32>,
}
/// From: Commons\PackEventStoryDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackEventStoryDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub event_uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\PassDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PassDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub exp: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub active_premium_1: ::core::option::Option<bool>,
}
/// From: Commons\PassRewardDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PassRewardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub pass_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub basic: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "4")]
    pub premium_1: ::core::option::Option<bool>,
}
/// From: Commons\PictorialBookDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PictorialBookDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
}
/// From: Commons\PictorialBuffStatDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PictorialBuffStatDbInfo {
    #[prost(enumeration = "DefineCharStatOption", optional, tag = "1")]
    pub stat_type: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "2")]
    pub stat_value: ::core::option::Option<f64>,
}
/// From: Commons\PopularCostumeCountDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PopularCostumeCountDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub count_type_0: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub count_type_1: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub count_type_2: ::core::option::Option<i64>,
}
/// From: Commons\PopularEquipDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PopularEquipDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub unique_char_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub unique_equip_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub use_count: ::core::option::Option<i64>,
}
/// From: Commons\PresetDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PresetDbInfo {
    #[prost(string, optional, tag = "1")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "2")]
    pub preset_resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub preset_resource_color: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub slot: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub deck_info: ::prost::alloc::vec::Vec<PresetDeckDbInfo>,
}
/// From: Commons\PresetDeckDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PresetDeckDbInfo {
    #[prost(message, optional, tag = "1")]
    pub deck_base_info: ::core::option::Option<DeckDbInfo>,
    #[prost(int64, optional, tag = "2")]
    pub costume_inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub equip_info: ::prost::alloc::vec::Vec<PresetDeckEquipDbInfo>,
    #[prost(int32, optional, tag = "4")]
    pub team: ::core::option::Option<i32>,
}
/// From: Commons\PresetDeckEquipDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetDeckEquipDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub equip_type: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_inven_index: ::core::option::Option<i64>,
}
/// From: Commons\PresetUseEquipInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetUseEquipInfo {
    #[prost(int64, optional, tag = "1")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub equip_inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Commons\PrestigeSkinDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PrestigeSkinDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub costume_design_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_set: ::core::option::Option<bool>,
}
/// From: Commons\PriceInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PriceInfo {
    #[prost(string, optional, tag = "1")]
    pub price_currency_code: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(float, optional, tag = "2")]
    pub price: ::core::option::Option<f32>,
}
/// From: Commons\ProductDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ProductDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub buy_count: ::core::option::Option<i32>,
}
/// From: Commons\PurchaseCountDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PurchaseCountDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub sale_group: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub count: ::core::option::Option<i32>,
}
/// From: Commons\PvpBattleHistoryInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleHistoryInfo {
    #[prost(int64, optional, tag = "1")]
    pub battle_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub enemy_owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "4")]
    pub enemy_user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "5")]
    pub enemy_vp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub enemy_rank: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "7")]
    pub enemy_costume_id: ::prost::alloc::vec::Vec<i64>,
    #[prost(int64, repeated, packed = "false", tag = "8")]
    pub enemy_costume_design_id: ::prost::alloc::vec::Vec<i64>,
    #[prost(int32, optional, tag = "9")]
    pub change_vp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub continue_win_vp: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "11")]
    pub time_value: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "12")]
    pub is_no_game: ::core::option::Option<bool>,
}
/// From: Commons\PvpBattleRankUserDetail.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleRankUserDetail {
    #[prost(int32, optional, tag = "1")]
    pub vp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub lose_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub deck_info: ::prost::alloc::vec::Vec<PvpBattleUserDeckInfo>,
    #[prost(message, repeated, tag = "6")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "8")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
}
/// From: Commons\PvpBattleRankUserInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleRankUserInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub user_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "6")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(message, optional, tag = "7")]
    pub base_info: ::core::option::Option<PvpBattleUserBaseInfo>,
    #[prost(int32, optional, tag = "8")]
    pub title_id: ::core::option::Option<i32>,
}
/// From: Commons\PvpBattleUserBaseInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleUserBaseInfo {
    #[prost(int32, optional, tag = "1")]
    pub vp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub lose_count: ::core::option::Option<i32>,
}
/// From: Commons\PvpBattleUserDeckFullInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleUserDeckFullInfo {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<PvpBattleUserDeckInfo>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub buff_stat_info: ::prost::alloc::vec::Vec<PictorialBuffStatDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub awake_info: ::prost::alloc::vec::Vec<CharAwakeDbInfo>,
}
/// From: Commons\PvpBattleUserDeckInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleUserDeckInfo {
    #[prost(int64, optional, tag = "1")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub position: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub sequence: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub costume_inven_index: ::core::option::Option<i64>,
    #[prost(int64, repeated, packed = "false", tag = "5")]
    pub costume_inven_index_seq: ::prost::alloc::vec::Vec<i64>,
    #[prost(int64, repeated, packed = "false", tag = "6")]
    pub priority_skill_costume_inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Commons\PvpBattleUserDeckInfoList.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleUserDeckInfoList {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<PvpBattleUserDeckInfo>,
}
/// From: Commons\QuestDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub value: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub object_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "4")]
    pub quest_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub quest_opt: ::core::option::Option<i32>,
}
/// From: Commons\QuestLevelDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestLevelDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub quest_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub clear_quest: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub quest_opt: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "5")]
    pub is_level_complete: ::core::option::Option<bool>,
}
/// From: Commons\QuestMaxClearDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestMaxClearDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub max_clear_id: ::core::option::Option<i32>,
}
/// From: Commons\QuestTitleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestTitleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub max_clear_id: ::core::option::Option<i32>,
}
/// From: Commons\RecommendDeckBaseDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RecommendDeckBaseDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub battle_power: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub total_war_deck_info: ::prost::alloc::vec::Vec<TotalWarDeckDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub awake_info: ::prost::alloc::vec::Vec<CharAwakeDbInfo>,
}
/// From: Commons\RecommendDeckDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RecommendDeckDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub user_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "7")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int64, optional, tag = "8")]
    pub sort_value: ::core::option::Option<i64>,
    #[prost(string, repeated, tag = "9")]
    pub recommend_deck_base_info_proto_string: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
/// From: Commons\RecommendDeckUserOptionDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RecommendDeckUserOptionDbInfo {
    #[prost(bool, optional, tag = "1")]
    pub is_save: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "2")]
    pub is_only_char_own_display: ::core::option::Option<bool>,
}
/// From: Commons\RelicDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RelicDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Commons\ReputationDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ReputationDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub state: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub elapsed_seconds: ::core::option::Option<i32>,
}
/// From: Commons\ResemaraGachaDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResemaraGachaDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub event_index: ::core::option::Option<i64>,
    #[prost(message, optional, tag = "8")]
    pub resemara_preview_item_info: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(bool, optional, tag = "3")]
    pub is_lock: ::core::option::Option<bool>,
}
/// From: Commons\RewardDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RewardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub item_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub item_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub item_count: ::core::option::Option<i32>,
}
/// From: Commons\RewardDBInfoBundle.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RewardDbInfoBundle {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub my_room_trophy_info: ::prost::alloc::vec::Vec<MyRoomTrophyDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub view_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub original_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "8")]
    pub item_auto_exchange_info: ::prost::alloc::vec::Vec<ItemAutoExchangeInfo>,
    #[prost(message, repeated, tag = "9")]
    pub item_auto_upgrade_info: ::prost::alloc::vec::Vec<ItemAutoUpgradeInfo>,
    #[prost(message, repeated, tag = "10")]
    pub repaid_currency: ::prost::alloc::vec::Vec<RewardDbInfo>,
}
/// From: Commons\SchduleInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SeasonInfo {
    #[prost(int32, optional, tag = "1")]
    pub season: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub start_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub end_time: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "4")]
    pub error_flag: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "5")]
    pub return_flag: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "6")]
    pub rank_reward_group_id: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ScheduleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub content_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub current_season: ::core::option::Option<SeasonInfo>,
    #[prost(message, optional, tag = "3")]
    pub next_season: ::core::option::Option<SeasonInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntScheduleInfo {
    #[prost(message, optional, tag = "1")]
    pub season_info: ::core::option::Option<SeasonInfo>,
    #[prost(int32, optional, tag = "2")]
    pub monster_hunt_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub info_open_day: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub calculate_end_date: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "5")]
    pub error_flag: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "6")]
    pub independent_flag: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "7")]
    pub rank_reward_group_id: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntScheduleHistory {
    #[prost(int32, optional, tag = "1")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub monster_hunt_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub error_flag: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "4")]
    pub hidden: ::core::option::Option<bool>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ContentScheduleHistory {
    #[prost(int32, optional, tag = "1")]
    pub season: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub error_flag: ::core::option::Option<bool>,
    #[prost(bool, optional, tag = "3")]
    pub hidden: ::core::option::Option<bool>,
}
/// From: Commons\SeasonRewardDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SeasonRewardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_reward_received: ::core::option::Option<bool>,
}
/// From: Commons\ShopDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub shop_remain_time: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub shop_rand_seed: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub product_info: ::prost::alloc::vec::Vec<ProductDbInfo>,
}
/// From: Commons\ShopItemDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ShopItemDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub item_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub rate: ::core::option::Option<i32>,
}
/// From: Commons\SkyWayDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SkyWayDbInfo {
    #[prost(bool, optional, tag = "1")]
    pub is_auto: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub current_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub max_clear_level: ::core::option::Option<i32>,
}
/// From: Commons\SkyWayScheduleDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SkyWayScheduleDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub day: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "3")]
    pub bonus_rate: ::core::option::Option<i32>,
}
/// From: Commons\StatueDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StatueDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "5")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "6")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
}
/// From: Commons\StatueGroupDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StatueGroupDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub group_rank: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub user_statue_info: ::prost::alloc::vec::Vec<StatueDbInfo>,
    #[prost(bool, optional, tag = "6")]
    pub error_flag: ::core::option::Option<bool>,
}
/// From: Commons\SupporterDeckInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SupporterDeckInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "5")]
    pub greeting: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bool, optional, tag = "6")]
    pub is_friend: ::core::option::Option<bool>,
    #[prost(message, optional, tag = "7")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int32, optional, tag = "8")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "9")]
    pub supporter_slots: ::prost::alloc::vec::Vec<SupporterSlotInfo>,
    #[prost(int32, optional, tag = "10")]
    pub usage_count: ::core::option::Option<i32>,
}
/// From: Commons\SupporterSlotInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterSlotInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub slot_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub power: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub battle_use_count: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "6")]
    pub supporter_char_info: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "7")]
    pub date: ::core::option::Option<i64>,
}
/// From: Commons\SupporterUsageInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterUsageInfo {
    #[prost(int64, optional, tag = "1")]
    pub id: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "2")]
    pub borrower_owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "3")]
    pub borrower_user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "4")]
    pub borrower_portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub borrower_portrait_design_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub borrower_title_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "7")]
    pub supporter_owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "8")]
    pub supporter_slot_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub supporter_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub supporter_design_id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineSupporterBorrowType", optional, tag = "11")]
    pub borrow_type: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "12")]
    pub reward_received: ::core::option::Option<bool>,
    #[prost(int64, optional, tag = "13")]
    pub use_date: ::core::option::Option<i64>,
}
/// From: Commons\TalentNpcDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TalentNpcDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub npc_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub end_time: ::core::option::Option<i64>,
}
/// From: Commons\TalentObjectDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TalentObjectDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub talent_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub object_id: ::core::option::Option<i32>,
}
/// From: Commons\TalentSkillDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TalentSkillDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub end_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub cool_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub use_count: ::core::option::Option<i64>,
}
/// From: Commons\TotalWarDeckDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarDeckDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub play_type: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub char_inven_index: ::core::option::Option<i64>,
}
/// From: Commons\TotalWarDeckPresetDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarDeckPresetDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub slot: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub resource_color: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub deck_info: ::prost::alloc::vec::Vec<TotalWarDeckDbInfo>,
}
/// From: Commons\TrapDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TrapDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub trap_id: ::core::option::Option<i32>,
}
/// From: Commons\TrophyDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TrophyDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub use_count: ::core::option::Option<i32>,
}
/// From: Commons\UserBaseDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserBaseDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "5")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "6")]
    pub date: ::core::option::Option<i64>,
}
/// From: Commons\UserDBInfo.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserDbInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "3")]
    pub user_key: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "4")]
    pub last_play_pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub inven_slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub storage_slot: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "7")]
    pub gold: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "8")]
    pub free_jewelry: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "9")]
    pub jewelry: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "10")]
    pub equip_slot: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "11")]
    pub catalyst: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "12")]
    pub exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "13")]
    pub level_reward: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "14")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "15")]
    pub equip_storage_slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "16")]
    pub pvp_ticket: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "17")]
    pub medal: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "18")]
    pub evil_castle_coin: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "19")]
    pub user_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "20")]
    pub free_hunting_ap: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "21")]
    pub bonus_hunting_ap: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "22")]
    pub pvp_ticket_stack: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "23")]
    pub mileage: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "24")]
    pub hope_powder: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "25")]
    pub unreg_date: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "26")]
    pub purchase_count_info: ::prost::alloc::vec::Vec<PurchaseCountDbInfo>,
    #[prost(bool, optional, tag = "27")]
    pub is_first_gacha: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "28")]
    pub preset_slot: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "29")]
    pub optimize_info: ::prost::alloc::vec::Vec<OptimizeBaseInfo>,
    #[prost(int64, optional, tag = "30")]
    pub block_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "31")]
    pub return_status_end_time: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "32")]
    pub my_room_slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "33")]
    pub total_war_preset_slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "34")]
    pub event_ap_free: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "35")]
    pub event_ap_stack: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "36")]
    pub free_torch_light_ap: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "37")]
    pub torch_light_ap: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "38")]
    pub join_time: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "39")]
    pub newbie_pass_step: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineUserBlockReason", optional, tag = "40")]
    pub block_reason: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "41")]
    pub rogue_like_ap: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "42")]
    pub rogue_like_ap_stack: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "43")]
    pub login_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "44")]
    pub guild_coin: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "45")]
    pub cafeteria_coin: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "46")]
    pub dating_ap_free: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "47")]
    pub dating_ap_stack: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "48")]
    pub mini_game_coin: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "49")]
    pub can_char_auto_revive: ::core::option::Option<bool>,
    #[prost(int64, optional, tag = "50")]
    pub auto_revive_casting_char_inven_index: ::core::option::Option<i64>,
    #[prost(message, optional, tag = "51")]
    pub recommend_deck_user_option_info: ::core::option::Option<
        RecommendDeckUserOptionDbInfo,
    >,
    #[prost(int32, optional, tag = "52")]
    pub monster_hunt_preset_slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "53")]
    pub guild_raid_preset_slot: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "54")]
    pub my_room_deco_coin: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "55")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
}
/// From: Request\AchievementClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AchievementClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub contents_group: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub clear_info: ::prost::alloc::vec::Vec<AchievementClearInfo>,
}
/// From: Request\AchievementInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AchievementInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\AchievementUpdateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AchievementUpdateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub add_value: ::core::option::Option<i32>,
}
/// From: Request\ActiveMapRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ActiveMapRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub map_id: ::core::option::Option<i32>,
    #[prost(string, repeated, tag = "4")]
    pub active_info: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// From: Request\AlchemyBatchRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AlchemyBatchRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub alchemy_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub alchemy_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\AlchemyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AlchemyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub alchemy_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub alchemy_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\AllCharRefreshRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AllCharRefreshRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\AttendanceInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttendanceInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub start_date: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub end_date: ::core::option::Option<i32>,
}
/// From: Request\AttendanceRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttendanceRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\BalanceVersionCheckRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BalanceVersionCheckRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\BattleEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(int32, optional, tag = "4")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "5")]
    pub achieve_index: ::prost::alloc::vec::Vec<i32>,
    #[prost(int64, repeated, packed = "false", tag = "6")]
    pub end_inven_index: ::prost::alloc::vec::Vec<i64>,
    #[prost(int64, optional, tag = "7")]
    pub monster_hunt_hp: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "8")]
    pub total_damage: ::core::option::Option<i64>,
}
/// From: Request\BattleEndTestRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleEndTestRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(int32, optional, tag = "4")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "5")]
    pub achieve_index: ::prost::alloc::vec::Vec<i32>,
    #[prost(int64, repeated, packed = "false", tag = "6")]
    pub end_inven_index: ::prost::alloc::vec::Vec<i64>,
    #[prost(bool, optional, tag = "7")]
    pub is_monster_hunt_next: ::core::option::Option<bool>,
}
/// From: Request\BattleEnterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleEnterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub monster_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub battle_deck: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub battle_mode: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub monster_hunt_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "7")]
    pub is_continue: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "8")]
    pub stage_magic_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub stage_magic_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub stage_magic_level: ::core::option::Option<i32>,
}
/// From: Request\BattleExitRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleExitRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\BattleGiveUpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleGiveUpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\BattleRetryPreviousTurnRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleRetryPreviousTurnRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_index: ::core::option::Option<i32>,
}
/// From: Request\BattleRetryRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleRetryRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_index: ::core::option::Option<i32>,
}
/// From: Request\BattleStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_index: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub battle_deck: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub red_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub blue_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, optional, tag = "6")]
    pub golem_info: ::core::option::Option<BattleGolemDbInfo>,
}
/// From: Request\BattleVerifyStateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleVerifyStateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaCumulativeRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaCumulativeRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaDailyConnectionCostumeRefreshRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaDailyConnectionCostumeRefreshRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaEventNpcInteractionRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaEventNpcInteractionRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub event_id: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaIntroductionStoryRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaIntroductionStoryRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaLevelUpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaLevelUpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaManageItemAddRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaManageItemAddRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaRareNpcInteractionRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRareNpcInteractionRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub npc_id: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaRegularCostumeInteractionAllRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRegularCostumeInteractionAllRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaRegularCostumeInteractionRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRegularCostumeInteractionRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub costume_id: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaRegularCostumeNoteAllRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRegularCostumeNoteAllRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaRegularCostumeNoteInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRegularCostumeNoteInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaRegularCostumeNoteRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRegularCostumeNoteRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub costume_id: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaRewardReceiptTimeUpdateUsingCheatRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRewardReceiptTimeUpdateUsingCheatRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub minute_to_minus: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaSpawnResetCheatRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaSpawnResetCheatRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CafeteriaSpawnResetRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaSpawnResetRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CancelLeaveUserRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CancelLeaveUserRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "3")]
    pub env_info: ::core::option::Option<EnvInfo>,
}
/// From: Request\CashMailInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CashMailInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub start_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub select_count: ::core::option::Option<i32>,
}
/// From: Request\CashShopBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CashShopBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub product_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub sale_group: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "5")]
    pub pay_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "6")]
    pub purchase_receipt: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "7")]
    pub env_info: ::core::option::Option<EnvInfo>,
    #[prost(message, optional, tag = "8")]
    pub price_info: ::core::option::Option<PriceInfo>,
    #[prost(message, repeated, tag = "9")]
    pub use_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "10")]
    pub buy_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "11")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\CashShopInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CashShopInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CashShopPurchaseCountInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CashShopPurchaseCountInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CharAllRevivalRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharAllRevivalRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub npc_id: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "4")]
    pub char_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Request\CharAutoReviveSetRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharAutoReviveSetRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub can_char_auto_revive: ::core::option::Option<bool>,
    #[prost(int64, optional, tag = "3")]
    pub casting_char_inven_index: ::core::option::Option<i64>,
}
/// From: Request\CharAwakeActiveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharAwakeActiveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CharAwakeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharAwakeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CharClassUpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharClassUpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub item_material_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CharExpiryRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharExpiryRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub char_inven_index: ::core::option::Option<i64>,
}
/// From: Request\ChargeCostInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ChargeCostInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub element_type: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\CharGrowthRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharGrowthRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CharHealingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharHealingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int64, repeated, packed = "false", tag = "3")]
    pub char_inven: ::prost::alloc::vec::Vec<i64>,
    #[prost(int64, optional, tag = "4")]
    pub food_index: ::core::option::Option<i64>,
}
/// From: Request\CharImmortalRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharImmortalRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Request\CharImprintLevelUpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharImprintLevelUpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub target_level: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CharInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CharLevelUpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharLevelUpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub holy_water_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CharPartnerInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharPartnerInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CharPartnerRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharPartnerRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub reward_step: ::core::option::Option<i32>,
}
/// From: Request\CharPartnerStoryRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharPartnerStoryRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub partner_char_index: ::core::option::Option<i64>,
}
/// From: Request\CharScoutInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharScoutInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CharSpecialScoutBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharSpecialScoutBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CharSpecialScoutResetRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharSpecialScoutResetRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\ClearPackageRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ClearPackageRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub clear_type: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub clear_info: ::core::option::Option<PackClearRewardDbInfo>,
    #[prost(message, optional, tag = "4")]
    pub evil_castle_clear_info: ::core::option::Option<EvilCastleClearRewardDbInfo>,
}
/// From: Request\ClientCustomLogRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ClientCustomLogData {
    #[prost(int32, optional, tag = "1")]
    pub log_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub data: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClientCustomLogRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub log_data: ::prost::alloc::vec::Vec<ClientCustomLogData>,
}
/// From: Request\CommunityRewardInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CommunityRewardInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CommunityRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CommunityRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub sub_type: ::core::option::Option<i32>,
}
/// From: Request\CookingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CookingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub recipe_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub cooking_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CookingResearchRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CookingResearchRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub recipe_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CostumeAllRounderUpgradeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CostumeAllRounderUpgradeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub costume_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub product_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub product_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub use_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CostumeClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub costume_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub char_index: ::core::option::Option<i64>,
}
/// From: Request\CostumeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\CostumeNodeActivationRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CostumeNodeActivationRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub costume_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CostumePotentialConnectRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumePotentialConnectInfo {
    #[prost(int64, optional, tag = "1")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub costume_id: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CostumePotentialConnectRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub costume_potential_connect_info: ::prost::alloc::vec::Vec<
        CostumePotentialConnectInfo,
    >,
}
/// From: Request\CostumeUpgradeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CostumeUpgradeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\CostumeUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeUseInfo {
    #[prost(int64, optional, tag = "1")]
    pub costume_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "2")]
    pub char_index: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CostumeUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub costume_use_info: ::prost::alloc::vec::Vec<CostumeUseInfo>,
    #[prost(int32, optional, tag = "3")]
    pub battle_mode: ::core::option::Option<i32>,
}
/// From: Request\DatingEpisodeClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DatingEpisodeClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\DatingInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DatingInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\DatingMessageUpdateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DatingMessageUpdateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub select_text_id: ::core::option::Option<i32>,
}
/// From: Request\DeckCharAutoReviveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeckCharAutoReviveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub casting_char_inven_index: ::core::option::Option<i64>,
}
/// From: Request\DeckCostumeSettingInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeckCostumeSettingInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\DeckCostumeSettingSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeckCostumeSettingSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub costume_setting_info: ::core::option::Option<DeckCostumeSettingDbInfo>,
}
/// From: Request\DeckInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeckInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\DeckSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeckSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(int32, optional, tag = "3")]
    pub deck_power: ::core::option::Option<i32>,
}
/// From: Request\DispatchInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DispatchInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\DispatchRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DispatchRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub dispatch_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\EatFoodAutoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EatFoodAutoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub eat_food_info: ::prost::alloc::vec::Vec<eat_food_auto_request::FoodUseInfo>,
}
/// Nested message and enum types in `EatFoodAutoRequest`.
pub mod eat_food_auto_request {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct FoodUseInfo {
        #[prost(int64, optional, tag = "1")]
        pub inven_index: ::core::option::Option<i64>,
        #[prost(message, repeated, tag = "2")]
        pub item_info: ::prost::alloc::vec::Vec<super::ItemDbInfo>,
    }
}
/// From: Request\EatFoodRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EatFoodRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "4")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\EquipAddSlotRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipAddSlotRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub add_slot: ::core::option::Option<i32>,
}
/// From: Request\EquipBatchUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipBatchUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub equip_batch_info: ::prost::alloc::vec::Vec<EquipBatchUseInfo>,
}
/// From: Request\EquipBreakRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipBreakRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Request\EquipChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub char_index: ::core::option::Option<i64>,
}
/// From: Request\EquipClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub char_index: ::core::option::Option<i64>,
}
/// From: Request\EquipFromMakingToBreakRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipFromMakingToBreakRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub casting_char_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub making_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub making_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "5")]
    pub upgrade_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub upgrade_seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub upgrade_gold_limit: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub upgrade_target_level: ::core::option::Option<i32>,
}
/// From: Request\EquipFromMakingToUpgradeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipFromMakingToUpgradeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub casting_char_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub making_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub making_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "5")]
    pub upgrade_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub upgrade_seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub upgrade_gold_limit: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub upgrade_target_level: ::core::option::Option<i32>,
}
/// From: Request\EquipFromUpgradeToBreakRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipFromUpgradeToBreakRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub upgrade_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub upgrade_seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub upgrade_gold_limit: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub upgrade_target_level: ::core::option::Option<i32>,
}
/// From: Request\EquipInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EquipLockRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipLockRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub lock_flag: ::core::option::Option<i32>,
}
/// From: Request\EquipMakingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipMakingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub making_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub making_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\EquipMarkDeleteRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipMarkDeleteRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_inven_index: ::core::option::Option<i64>,
}
/// From: Request\EquipMarkSetRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipMarkSetRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_inven_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "3")]
    pub mark: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\EquipOptionReRollConfirmRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipOptionReRollConfirmRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_inven_index: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "3")]
    pub is_confirm: ::core::option::Option<bool>,
}
/// From: Request\EquipOptionReRollRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipOptionReRollRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_inven_index: ::core::option::Option<i64>,
    #[prost(bool, repeated, packed = "false", tag = "3")]
    pub main_opt_lock: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, packed = "false", tag = "4")]
    pub sub_opt_lock: ::prost::alloc::vec::Vec<bool>,
    #[prost(message, repeated, tag = "5")]
    pub consume_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\EquipPresetInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipPresetInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EquipPresetNameChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipPresetNameChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub slot: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "5")]
    pub preset_resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub preset_resource_color: ::core::option::Option<i32>,
}
/// From: Request\EquipPresetSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipPresetSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub slot: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "5")]
    pub preset_resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub preset_resource_color: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "7")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipPresetItemInfo>,
}
/// From: Request\EquipsClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipClearInfo {
    #[prost(int64, optional, tag = "1")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub equip_inven_index: ::prost::alloc::vec::Vec<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipsClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub clear_info: ::prost::alloc::vec::Vec<EquipClearInfo>,
}
/// From: Request\EquipSequenceSmeltingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipSequenceSmeltingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub smelting_count: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "4")]
    pub is_success_stop: ::core::option::Option<bool>,
}
/// From: Request\EquipSequenceUpgradeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipSequenceUpgradeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub upgrade_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub upgrade_seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub upgrade_gold_limit: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub upgrade_target_level: ::core::option::Option<i32>,
}
/// From: Request\EquipSmeltingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipSmeltingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\EquipStorageAddSlotRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipStorageAddSlotRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub add_slot: ::core::option::Option<i32>,
}
/// From: Request\EquipStorageInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipStorageInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EquipStorageOutRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipStorageOutRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
}
/// From: Request\EquipStoragePutRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipStoragePutRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
}
/// From: Request\EquipsUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipsUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub equip_index: ::prost::alloc::vec::Vec<i64>,
    #[prost(int64, optional, tag = "3")]
    pub char_index: ::core::option::Option<i64>,
}
/// From: Request\EquipUpgradeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipUpgradeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\EquipUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub equip_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub char_index: ::core::option::Option<i64>,
}
/// From: Request\EventExchangeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventExchangeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EventExchangeNextPageOpenRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventExchangeNextPageOpenRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub group_id: ::core::option::Option<i32>,
}
/// From: Request\EventExchangeRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventExchangeRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub exchange_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub use_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\EventHubInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventHubInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EventMissionInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventMissionInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EventRewardHistoryRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventRewardHistoryRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EventRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub reward_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub reward_id: ::core::option::Option<i32>,
}
/// From: Request\EventScheduleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventScheduleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleDailyRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleDailyRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleDailyRewardStateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleDailyRewardStateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleEnterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleEnterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub stage_index: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "4")]
    pub is_retry: ::core::option::Option<bool>,
}
/// From: Request\EvilCastleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\EvilCastlePingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastlePingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub stage_index: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRankingInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRankingInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub stage_index: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRewardInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRewardInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeAllUserScoreInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeAllUserScoreInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeBattleCharChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeBattleCharChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub deck_in_char_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub deck_out_char_index: ::core::option::Option<i64>,
}
/// From: Request\EvilCastleRogueLikeBattleEndPreviewRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeBattleEndPreviewRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub total_damage: ::core::option::Option<i64>,
}
/// From: Request\EvilCastleRogueLikeBattleSkipRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeBattleSkipRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeCharRevivalRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeCharRevivalRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeCostumeUpgradeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeCostumeUpgradeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
}
/// From: Request\EvilCastleRogueLikeDeckSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeDeckSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
}
/// From: Request\EvilCastleRogueLikeEditEventRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeEditEventRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeEnterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeEnterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeEventChoiceRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeEventChoiceRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeEventSelectRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeEventSelectRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub choice_id: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeGiveUpInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeGiveUpInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeGiveUpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeGiveUpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeGrowthRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeGrowthRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub growth_info: ::core::option::Option<EvilCastleRogueLikeGrowthDbInfo>,
}
/// From: Request\EvilCastleRogueLikeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeMoveFloorRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeMoveFloorRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub floor: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub number: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeQuickBattleRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeQuickBattleRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub clear_count: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeRankInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeRankInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeRelicMixRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeRelicMixRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Request\EvilCastleRogueLikeRewardReRollRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeRewardReRollRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeRoomEnterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeRoomEnterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub room_number: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeSeasonRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeSeasonRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeSelectRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeSelectRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub number: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeShopBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeShopBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeShopExitRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeShopExitRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleRogueLikeShopReRollRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeShopReRollRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleStageClearRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleStageClearRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub stage_index: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleStageRankingInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleStageRankingInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub stage_index: ::core::option::Option<i32>,
}
/// From: Request\EvilCastleTowerInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleTowerInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\FieldDeckInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldDeckInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\FieldDeckSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldDeckSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub field_deck_info: ::prost::alloc::vec::Vec<FieldDeckDbInfo>,
}
/// From: Request\FieldMonsterDamageRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldMonsterDamageRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub monster_id: ::core::option::Option<i32>,
}
/// From: Request\FieldMonsterEventRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldMonsterEventRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub monster_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_dash: ::core::option::Option<bool>,
}
/// From: Request\FieldMonsterRegenRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldMonsterRegenRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub monster_id: ::core::option::Option<i32>,
}
/// From: Request\FieldMonsterRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldMonsterRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\FieldObjectInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldObjectInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\FieldObjectPositionUpdateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct FieldObjectPositionUpdateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub object_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "5")]
    pub position: ::core::option::Option<FieldObjectPositionDbInfo>,
}
/// From: Request\FieldObjectPreviewRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldObjectPreviewRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\FieldObjectResearchRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldObjectResearchRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub object_id: ::core::option::Option<i32>,
}
/// From: Request\FieldObjectRespawnRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldObjectRespawnRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub field_object_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub field_object_type: ::core::option::Option<i32>,
}
/// From: Request\FieldObjectRewardListRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldObjectRewardListRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub field_object_info: ::prost::alloc::vec::Vec<FieldObjectBaseInfo>,
}
/// From: Request\FieldObjectRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldObjectRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub field_object_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub field_object_id: ::core::option::Option<i32>,
}
/// From: Request\FieldTrapInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldTrapInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub map_id: ::core::option::Option<i32>,
}
/// From: Request\FriendAcceptRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendAcceptRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\FriendInfoListRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendInfoListRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub all: ::core::option::Option<bool>,
}
/// From: Request\FriendReceiveListRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendReceiveListRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\FriendRecommendRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendRecommendRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\FriendRefuseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendRefuseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\FriendRemoveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendRemoveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\FriendSearchRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendSearchRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\FriendSendListRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendSendListRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\FriendSendRemoveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendSendRemoveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\FriendSendRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendSendRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\GachaBuyPreviewLockRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaBuyPreviewLockRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub event_index: ::core::option::Option<i64>,
}
/// From: Request\GachaBuyPreviewRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaBuyPreviewRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub product_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub product_id: ::core::option::Option<i32>,
}
/// From: Request\GachaBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub buy_type: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub use_gacha_ticket_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "5")]
    pub char_element_type: ::core::option::Option<i32>,
}
/// From: Request\GachaInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GachaLogRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaLogRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub last_log_time: ::core::option::Option<i64>,
}
/// From: Request\GachaPointExchangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaPointExchangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub group_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub select_item_id: ::core::option::Option<i32>,
}
/// From: Request\GachaPointManualExchangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaPointManualExchangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub group_id: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub count: ::core::option::Option<i32>,
}
/// From: Request\GachaSelectionSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaSelectionSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub gacha_selection_info: ::prost::alloc::vec::Vec<GachaSelectionDbInfo>,
}
/// From: Request\GuildAcceptRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildAcceptRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\GuildCreateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildCreateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub icon: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub icon_color: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "5")]
    pub message: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(enumeration = "DefineGuildJoinType", optional, tag = "6")]
    pub join_type: ::core::option::Option<i32>,
}
/// From: Request\GuildDeleteCancelRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildDeleteCancelRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildInfoEditRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildInfoEditRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub icon: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "3")]
    pub icon_color: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "4")]
    pub message: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(enumeration = "DefineGuildJoinType", optional, tag = "5")]
    pub join_type: ::core::option::Option<i32>,
}
/// From: Request\GuildInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub id: ::core::option::Option<i64>,
}
/// From: Request\GuildInitInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildInitInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildJoinRefuseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildJoinRefuseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\GuildJoinRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildJoinRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub id: ::core::option::Option<i64>,
}
/// From: Request\GuildJoinSendCancelRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildJoinSendCancelRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub id: ::core::option::Option<i64>,
}
/// From: Request\GuildJoinSendInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildJoinSendInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildLeaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildLeaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildMemberBanRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildMemberBanRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
}
/// From: Request\GuildMemberRoleEditRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildMemberRoleEditRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(enumeration = "DefineGuildMemberRole", optional, tag = "3")]
    pub role: ::core::option::Option<i32>,
}
/// From: Request\GuildNoticeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildNoticeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildNoticeUpdateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildNoticeUpdateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub notice: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\GuildRaidBossBattleEnterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidBossBattleEnterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub boss_level: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidBossBattleHistoryRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidBossBattleHistoryRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub raid_day: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidBossBattleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidBossBattleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidBossPracticeBattleEnterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidBossPracticeBattleEnterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub boss_level: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub supporter_deck_info: ::prost::alloc::vec::Vec<GuildRaidSupporterDeckDbInfo>,
    #[prost(int32, optional, tag = "5")]
    pub battle_power: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub golem_level: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidBossQuickBattleRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidBossQuickBattleRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidDeckInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidDeckInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidDeckSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidDeckSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub supporter_deck_info: ::prost::alloc::vec::Vec<GuildRaidSupporterDeckDbInfo>,
    #[prost(int32, optional, tag = "4")]
    pub battle_power: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidMainInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidMainInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidMemberPlayHistoryInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidMemberPlayHistoryInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub target_owner_index: ::core::option::Option<i64>,
}
/// From: Request\GuildRaidMemberRankingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidMemberRankingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidNormalBattleHistoryInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidNormalBattleHistoryInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub raid_day: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub level: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidNormalBattleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidNormalBattleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub raid_day: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidPresetDeleteRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetDeleteRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub slot: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\GuildRaidPresetInfoChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetInfoChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub preset_resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub preset_resource_color: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub slot: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidPresetInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidPresetSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidPresetSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub preset_info: ::core::option::Option<PresetDbInfo>,
}
/// From: Request\GuildRaidPresetSlotAddRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetSlotAddRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub add_count: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidPresetUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub battle_power: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidSeasonRankingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidSeasonRankingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
}
/// From: Request\GuildRaidSeasonRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidSeasonRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildRecommendRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRecommendRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub search_min: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub search_max: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineGuildJoinType", optional, tag = "4")]
    pub join_type: ::core::option::Option<i32>,
}
/// From: Request\GuildSearchRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSearchRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub name: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\GuildSupporterAddRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSupporterAddRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot_index: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub costume_inven_index: ::core::option::Option<i64>,
}
/// From: Request\GuildSupporterDeleteRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSupporterDeleteRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot_index: ::core::option::Option<i32>,
}
/// From: Request\GuildSupporterInfoListRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSupporterInfoListRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\GuildSupporterInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSupporterInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub member_owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub slot_index: ::core::option::Option<i32>,
}
/// From: Request\GuildUpdateActionInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildUpdateActionInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineGuildAction", repeated, packed = "false", tag = "2")]
    pub r#type: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\HuntDispatchEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntDispatchEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub hunt_dispatch_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub hunt_dispatch_id: ::core::option::Option<i32>,
}
/// From: Request\HuntDispatchInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntDispatchInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\HuntDispatchRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntDispatchRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub hunt_dispatch_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub hunt_dispatch_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub count: ::core::option::Option<i32>,
}
/// From: Request\HuntDispatchRewardPreviewRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntDispatchRewardPreviewRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub hunt_dispatch_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub hunt_dispatch_id: ::core::option::Option<i32>,
}
/// From: Request\HuntDispatchStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntDispatchStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub hunt_dispatch_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub hunt_dispatch_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub count: ::core::option::Option<i32>,
}
/// From: Request\HuntingGroundEnterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntingGroundEnterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub hunting_ground_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "5")]
    pub is_auto: ::core::option::Option<bool>,
}
/// From: Request\HuntingGroundInfoListRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntingGroundInfoListRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub pack_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\HuntingGroundInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntingGroundInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\IdCardPresetDeleteRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardPresetDeleteRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\IdCardPresetInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardPresetInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\IdCardPresetSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardPresetSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub preset_info: ::core::option::Option<IdCardPresetInfo>,
}
/// From: Request\IdCardRecoveryRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardRecoveryRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\IdCardSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub id_card_info: ::core::option::Option<IdCardInfo>,
}
/// From: Request\IdCardShopBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardShopItem {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub item_count: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub use_item_info: ::core::option::Option<ItemDbInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardShopBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub item_info: ::prost::alloc::vec::Vec<IdCardShopItem>,
}
/// From: Request\IdCardShopInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardShopInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\InnOpenRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InnOpenRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\InteractionTriggerRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InteractionTriggerRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub trigger_id: ::core::option::Option<i32>,
}
/// From: Request\InvenAddSlotRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InvenAddSlotRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub add_slot: ::core::option::Option<i32>,
}
/// From: Request\ItemDumpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemDumpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub item_info: ::core::option::Option<ItemDbInfo>,
}
/// From: Request\ItemInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\ItemStorageInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemStorageInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\ItemStorageOutRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemStorageOutRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub item_info: ::core::option::Option<ItemDbInfo>,
}
/// From: Request\ItemStoragePutRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemStoragePutRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub item_info: ::core::option::Option<ItemDbInfo>,
}
/// From: Request\ItemStorageUpdateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemStorageUpdateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\JoinUserRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct JoinUserRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub market_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub user_os: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "5")]
    pub env_info: ::core::option::Option<EnvInfo>,
    #[prost(enumeration = "DefineLanguageType", optional, tag = "6")]
    pub language_type: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineLanguageType", optional, tag = "7")]
    pub language_sound_type: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineBundleOptionType", optional, tag = "8")]
    pub bundle_option_type: ::core::option::Option<i32>,
}
/// From: Request\JpUserInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct JpUserInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\JpUserRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct JpUserRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub year: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub month: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub day: ::core::option::Option<i32>,
}
/// From: Request\LeaveUserRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LeaveUserRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub env_info: ::core::option::Option<EnvInfo>,
}
/// From: Request\LikeUserRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LikeUserRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub target_owner_index: ::core::option::Option<i64>,
}
/// From: Request\LoginEventRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LoginEventRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\LoginUserRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LoginUserRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub market_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub version: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "5")]
    pub user_os: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "6")]
    pub env_info: ::core::option::Option<EnvInfo>,
    #[prost(enumeration = "DefineLanguageType", optional, tag = "7")]
    pub language_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub resource_download_type: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineLanguageType", optional, tag = "9")]
    pub language_sound_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub screen_fix_type: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineBundleOptionType", optional, tag = "11")]
    pub bundle_option_type: ::core::option::Option<i32>,
}
/// From: Request\LogoutUserRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LogoutUserRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub env_info: ::core::option::Option<EnvInfo>,
}
/// From: Request\MailHistoryInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MailHistoryInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub start_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub select_count: ::core::option::Option<i32>,
}
/// From: Request\MailInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MailInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub start_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub select_count: ::core::option::Option<i32>,
}
/// From: Request\MailOpenRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MailOpenRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Request\MaintenanceInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MaintenanceInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(sint32, optional, tag = "2")]
    pub market_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "3")]
    pub version: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "4")]
    pub bundle_version: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "5")]
    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "6")]
    pub language_type: ::core::option::Option<i32>,
}
/// From: Request\MercenaryScoutRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MercenaryScoutRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub npc_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\MiniGameActionEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionMonsterPattern {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub count: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionUseSkill {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub total_damage: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionUserInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub action_char: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_room_master: ::core::option::Option<bool>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameActionEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub guid: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub user_info: ::prost::alloc::vec::Vec<MiniGameActionUserInfo>,
    #[prost(int32, optional, tag = "6")]
    pub action_monster: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "7")]
    pub score: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "8")]
    pub hit_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub part_break: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub groggy_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "11")]
    pub special_skill_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "12")]
    pub groggy_after_damage: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "13")]
    pub hurt_debuff_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "14")]
    pub just_miss_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "15")]
    pub just_guard_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "16")]
    pub heal_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "17")]
    pub anger_after_groggy_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "18")]
    pub anger_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "19")]
    pub monster_pattern: ::prost::alloc::vec::Vec<MiniGameActionMonsterPattern>,
    #[prost(message, repeated, tag = "20")]
    pub use_skill: ::prost::alloc::vec::Vec<MiniGameActionUseSkill>,
    #[prost(int32, optional, tag = "22")]
    pub is_clear: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "23")]
    pub room_code: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "24")]
    pub total_received_damage: ::core::option::Option<i32>,
}
/// From: Request\MiniGameActionInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameActionRankingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionRankingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub action_monster: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub stage_type: ::core::option::Option<i32>,
}
/// From: Request\MiniGameActionStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameBingoInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameBingoInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_schedule_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MiniGameBingoPlayRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameBingoPlayRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub consume_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "4")]
    pub play_count: ::core::option::Option<i32>,
}
/// From: Request\MiniGameBoardInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameBoardInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_schedule_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MiniGameBoardPlayRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameBoardPlayRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub consume_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\MiniGameDefenseEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameDefenseEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub guid: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\MiniGameDefenseInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameDefenseInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameDefenseMatchingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerPingInfo {
    #[prost(string, optional, tag = "1")]
    pub region: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "2")]
    pub ping: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameDefenseMatchingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub matching_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub room_code: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "5")]
    pub region_info: ::prost::alloc::vec::Vec<ServerPingInfo>,
}
/// From: Request\MiniGameDefenseStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameDefenseStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameFieldEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameFieldEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub is_force_end: ::core::option::Option<bool>,
}
/// From: Request\MiniGameFieldInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameFieldInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_schedule_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MiniGameFieldQuickRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameFieldQuickRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameFieldRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameFieldRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameFieldScoreRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameFieldScoreRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub object_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MiniGameFieldStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameFieldStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameHubInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameHubInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameRelayServerInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRelayServerInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameRhythmInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRhythmInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameRhythmPlayEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRhythmPlayEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub grade_type: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub note_judgment_info: ::prost::alloc::vec::Vec<MiniGameRhythmNoteJudgmentInfo>,
    #[prost(int32, optional, tag = "4")]
    pub score: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "5")]
    pub game_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "6")]
    pub combo_type: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "7")]
    pub is_game_over: ::core::option::Option<bool>,
    #[prost(string, optional, tag = "8")]
    pub play_detail_info: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRhythmNoteJudgmentInfo {
    #[prost(int32, optional, tag = "1")]
    pub judgment_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub count: ::core::option::Option<i32>,
}
/// From: Request\MiniGameRhythmPlayStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRhythmPlayStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub rhythm_char_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub mode_type: ::core::option::Option<i32>,
}
/// From: Request\MiniGameRhythmRankingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRhythmRankingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub mode_type: ::core::option::Option<i32>,
}
/// From: Request\MiniGameRouletteDrawRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRouletteDrawRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineMiniGameRouletteDrawType", optional, tag = "3")]
    pub draw_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub draw_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub consume_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\MiniGameRouletteInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRouletteInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_schedule_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MiniGameRunEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRunEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub is_force_end: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "3")]
    pub record_value: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub record_play_info: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\MiniGameRunInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRunInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_schedule_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MiniGameRunQuickRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRunQuickRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameRunStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRunStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSichuanEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSichuanEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub is_force_end: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "3")]
    pub game_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub score: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub turn_info: ::prost::alloc::vec::Vec<MiniGameSichuanTurnInfo>,
    #[prost(bool, optional, tag = "6")]
    pub is_block: ::core::option::Option<bool>,
}
/// From: Request\MiniGameSichuanInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSichuanInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_schedule_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MiniGameSichuanRankingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSichuanRankingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSichuanStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSichuanStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub block_info: ::prost::alloc::vec::Vec<MiniGameSichuanBlockInfo>,
}
/// From: Request\MiniGameSurvivalCharUpgradeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalCharUpgradeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub upgrade_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub target_level: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSurvivalCharUpgradeResetRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalCharUpgradeResetRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSurvivalEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSurvivalEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub is_force_end: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "3")]
    pub survival_time: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub kill_monster_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub get_coin_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub total_exp: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "7")]
    pub skill_info: ::prost::alloc::vec::Vec<MiniGameSurvivalSkillDbInfo>,
}
/// From: Request\MiniGameSurvivalInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSurvivalPlayRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSurvivalPlayRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub current_hp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub increase_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub increase_coin: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub item_object_info: ::prost::alloc::vec::Vec<MiniGameObjectInfo>,
    #[prost(message, repeated, tag = "6")]
    pub kill_monster_info: ::prost::alloc::vec::Vec<MiniGameMonsterInfo>,
    #[prost(int32, repeated, packed = "false", tag = "7")]
    pub item_box_id: ::prost::alloc::vec::Vec<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameObjectInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub count: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameMonsterInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub count: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSurvivalRankingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalRankingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSurvivalSkillSelectListRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalSkillSelectListRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSurvivalSkillUpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalSkillUpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub skill_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub use_item_id: ::core::option::Option<i32>,
}
/// From: Request\MiniGameSurvivalStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub char_select_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub map_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub map_id: ::core::option::Option<i32>,
}
/// From: Request\MiniPuzzleAllOpenRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniPuzzleAllOpenRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub consume_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\MiniPuzzleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniPuzzleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_schedule_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MiniPuzzleOpenRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniPuzzleOpenRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub puzzle_reward_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub consume_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\MiniPuzzleRenewRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniPuzzleRenewRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_schedule_id: ::core::option::Option<i32>,
}
/// From: Request\MissionClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MissionClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub is_all: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "3")]
    pub group_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "6")]
    pub event_id: ::core::option::Option<i64>,
}
/// From: Request\MissionInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MissionInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MissionSectionRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MissionSectionRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_type: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_all: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\MissionUpdateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MissionUpdateInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub value: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub event_id: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MissionUpdateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub update_info: ::prost::alloc::vec::Vec<MissionUpdateInfo>,
}
/// From: Request\MonsterHuntChangeTeamRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntChangeTeamRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub monster_hunt_deck_info: ::core::option::Option<MonsterHuntDeckDbInfo>,
    #[prost(bool, optional, tag = "3")]
    pub is_change_manual: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "4")]
    pub battle_mode: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntDeckInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntDeckInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntDeckSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntDeckSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub monster_hunt_deck_info: ::prost::alloc::vec::Vec<MonsterHuntDeckDbInfo>,
}
/// From: Request\MonsterHuntPresetDeleteRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetDeleteRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub slot: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MonsterHuntPresetInfoChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetInfoChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub preset_resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub preset_resource_color: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub slot: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntPresetInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntPresetSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntPresetSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub preset_info: ::core::option::Option<PresetDbInfo>,
}
/// From: Request\MonsterHuntPresetSlotAddRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetSlotAddRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub add_count: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntPresetUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntQuickBattleRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntQuickBattleRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntRankInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntRankInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntScheduleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntScheduleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntSeasonRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntSeasonRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MonsterHuntUserInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntUserInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MonsterInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub group_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\MyLikeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyLikeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MyRoomExpandRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomExpandRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub use_item_info: ::core::option::Option<ItemDbInfo>,
}
/// From: Request\MyRoomHideRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomHideRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "3")]
    pub is_hidden: ::core::option::Option<bool>,
}
/// From: Request\MyRoomItemInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomItemInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MyRoomLikeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomLikeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub target_owner_index: ::core::option::Option<i64>,
}
/// From: Request\MyRoomMoveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomMoveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub target_id: ::core::option::Option<i32>,
}
/// From: Request\MyRoomNameChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomNameChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "3")]
    pub name: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\MyRoomPrimaryChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomPrimaryChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub change_id: ::core::option::Option<i32>,
}
/// From: Request\MyRoomSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub room_info: ::core::option::Option<MyRoomDbInfo>,
}
/// From: Request\MyRoomSearchFriendRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomSearchFriendRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MyRoomSearchGuildRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomSearchGuildRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MyRoomSearchRecommendRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomSearchRecommendRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineMyRoomRecommendType", optional, tag = "2")]
    pub r#type: ::core::option::Option<i32>,
}
/// From: Request\MyRoomShopBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomShopBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub item_count: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub use_item_info: ::core::option::Option<ItemDbInfo>,
}
/// From: Request\MyRoomShopInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomShopInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\MyRoomUserInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomUserInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub target_owner_index: ::core::option::Option<i64>,
    #[prost(bool, optional, tag = "3")]
    pub all: ::core::option::Option<bool>,
}
/// From: Request\NoticeDetailInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct NoticeDetailInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub notice_id: ::core::option::Option<i32>,
}
/// From: Request\NoticeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct NoticeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub notice_last_seq: ::core::option::Option<i32>,
}
/// From: Request\OverwhelmRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OverwhelmQuestUpdateInfo {
    #[prost(int32, optional, tag = "1")]
    pub quest_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub quest_value: ::prost::alloc::vec::Vec<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OverwhelmMonsterInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub monster_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub battle_deck: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub battle_mode: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OverwhelmRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub monster_info: ::prost::alloc::vec::Vec<OverwhelmMonsterInfo>,
    #[prost(message, repeated, tag = "3")]
    pub quest_info: ::prost::alloc::vec::Vec<OverwhelmQuestUpdateInfo>,
}
/// From: Request\PackBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\PackDetailRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackDetailRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\PackEventBattleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackEventBattleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_uid: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\PackEventStoryClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackEventStoryClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub event_uid: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\PackEventStoryInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackEventStoryInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub event_uid: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\PackEventStoryReplayClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackEventStoryReplayClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\PackInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PackInGameInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackInGameInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\PackJamEventRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackJamEventRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\PackPreviewInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackPreviewInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\PackRewardObjectCountRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackRewardObjectCountRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub pack_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(
        enumeration = "DefinePackRewardObjectCountType",
        repeated,
        packed = "false",
        tag = "3"
    )]
    pub count_type: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\PackSubQuestClearInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackSubQuestClearInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub pack_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\PassBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PassBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pass_id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefinePassBuyType", optional, tag = "3")]
    pub pass_buy_type: ::core::option::Option<i32>,
}
/// From: Request\PassInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PassInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PassRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PassRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub is_all: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "3")]
    pub pass_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefinePassRewardType", optional, tag = "5")]
    pub reward_type: ::core::option::Option<i32>,
}
/// From: Request\PersonalInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PersonalInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PictorialBookInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PictorialBookInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\PingCheckRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PingCheckRequest {}
/// From: Request\PlatformLoginRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PlatformLoginRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "3")]
    pub env_info: ::core::option::Option<EnvInfo>,
    #[prost(enumeration = "DefinePlatformLinkType", optional, tag = "4")]
    pub r#type: ::core::option::Option<i32>,
}
/// From: Request\PopularCostumeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PopularCostumeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub content_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub deck_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub reserved_order: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub rank_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub stage_id: ::core::option::Option<i32>,
}
/// From: Request\PopularEquipInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PopularEquipInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub unique_char_id: ::core::option::Option<i32>,
}
/// From: Request\PresetAddSlotRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetAddSlotRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub add_count: ::core::option::Option<i32>,
}
/// From: Request\PresetDeleteRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetDeleteRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub slot: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\PresetInfoChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetInfoChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub preset_resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub preset_resource_color: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub slot: ::core::option::Option<i32>,
}
/// From: Request\PresetInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PresetSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PresetSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub preset_info: ::core::option::Option<PresetDbInfo>,
}
/// From: Request\PresetUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub deck_power: ::core::option::Option<i32>,
}
/// From: Request\PrestigeSkinInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PrestigeSkinInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PrestigeSkinSetRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PrestigeSkinSetRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub prestige_skin_info: ::core::option::Option<PrestigeSkinDbInfo>,
}
/// From: Request\PvpBattleDeckInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleDeckInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PvpBattleDeckSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleDeckSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub deck_type: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub deck_info: ::prost::alloc::vec::Vec<PvpBattleUserDeckInfo>,
    #[prost(message, repeated, tag = "4")]
    pub contents_item_info: ::prost::alloc::vec::Vec<ContentsCharItemInfo>,
    #[prost(int32, optional, tag = "5")]
    pub battle_power: ::core::option::Option<i32>,
}
/// From: Request\PvpBattleEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "3")]
    pub end_inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Request\PvpBattleHistoryDeckInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleHistoryDeckInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub battle_index: ::core::option::Option<i64>,
}
/// From: Request\PvpBattleHistoryRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleHistoryRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PvpBattleMatchingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleMatchingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub boost_pvp_ticket: ::core::option::Option<i32>,
}
/// From: Request\PvpBattleOnceRewardInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleOnceRewardInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PvpBattleRankingRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleRankingRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub season: ::core::option::Option<i32>,
}
/// From: Request\PvpBattleRankUserDetailRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleRankUserDetailRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub target_owner_index: ::core::option::Option<i64>,
}
/// From: Request\PvpBattleReplayInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleReplayInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub battle_inven_index: ::core::option::Option<i64>,
}
/// From: Request\PvpBattleResetRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleResetRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub deck_type: ::core::option::Option<i32>,
}
/// From: Request\PvpBattleRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PvpBattleStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub deck_info: ::prost::alloc::vec::Vec<PvpBattleUserDeckInfo>,
    #[prost(message, repeated, tag = "3")]
    pub red_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub blue_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
}
/// From: Request\PvpBattleUserInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleUserInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\PvpContentsItemRenewRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpContentsItemRenewRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub deck_type: ::core::option::Option<i32>,
}
/// From: Request\PvpSeasonRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpSeasonRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\QuestAcceptRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestAcceptRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub quest_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub quest_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub quest_opt: ::core::option::Option<i32>,
}
/// From: Request\QuestClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub quest_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub quest_opt: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "5")]
    pub is_quick_play: ::core::option::Option<bool>,
}
/// From: Request\QuestGiveUpRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestGiveUpRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub quest_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\QuestImmortalResetRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestImmortalResetRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\QuestInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\QuestMaxClearInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestMaxClearInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\QuestUpdateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestUpdateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub quest_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub quest_value: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\QuickBattleRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuickBattleRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_mode: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub battle_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub stage_magic_group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub stage_magic_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub battle_count: ::core::option::Option<i32>,
}
/// From: Request\RecipeInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RecipeInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\RecommendDeckInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RecommendDeckInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_mode: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub battle_index: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub team_count_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub deck_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub order_type: ::core::option::Option<i32>,
}
/// From: Request\RecommendDeckUserOptionSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RecommendDeckUserOptionSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub option_info: ::core::option::Option<RecommendDeckUserOptionDbInfo>,
}
/// From: Request\RefreshTokenRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RefreshTokenRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub env_info: ::core::option::Option<EnvInfo>,
    #[prost(string, optional, tag = "3")]
    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\ReportUserRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ReportUserRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub target_owner_index: ::core::option::Option<i64>,
}
/// From: Request\ReputationInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ReputationInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\RootSortIdInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RootSortIdInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\SaveFieldCharControlDeckTypeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SaveFieldCharControlDeckTypeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub field_char_control_deck_type: ::core::option::Option<i32>,
}
/// From: Request\SaveTotalBattlePowerRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SaveTotalBattlePowerRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub total_battle_power: ::core::option::Option<i32>,
}
/// From: Request\SaveUserPositionRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SaveUserPositionRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "3")]
    pub pack_position: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\ScheduleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ScheduleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\SeasonRewardInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SeasonRewardInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\SelectPlatformOtherDataRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SelectPlatformOtherDataRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub member_id: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\ServerInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\ServerNowTimeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerNowTimeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\ShopBuyRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopBuyRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub shop_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub item_info: ::core::option::Option<ShopItemDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub use_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\ShopInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ShopInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub shop_id: ::core::option::Option<i32>,
}
/// From: Request\ShopOpenRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ShopOpenRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\ShopSellRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopSellRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub shop_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ShopItemDbInfo>,
}
/// From: Request\SkyWayEnterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SkyWayEnterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "5")]
    pub is_auto: ::core::option::Option<bool>,
}
/// From: Request\SkyWayInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SkyWayInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\SkyWayScheduleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SkyWayScheduleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\StatueObjectRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StatueObjectRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
}
/// From: Request\StorageAddSlotRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StorageAddSlotRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub add_slot: ::core::option::Option<i32>,
}
/// From: Request\SupporterBattleInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterBattleInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineBattleModeType", optional, tag = "2")]
    pub battle_mode: ::core::option::Option<i32>,
}
/// From: Request\SupporterBorrowRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterBorrowRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub supporter_owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub supporter_slot_index: ::core::option::Option<i32>,
}
/// From: Request\SupporterDetailRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterDetailRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub target_owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub slot_index: ::core::option::Option<i32>,
}
/// From: Request\SupporterInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\SupporterRegisterRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterRegisterRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot_index: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub costume_inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub power: ::core::option::Option<i32>,
}
/// From: Request\SupporterRemoveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterRemoveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub slot_index: ::core::option::Option<i32>,
}
/// From: Request\SupporterRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, repeated, packed = "false", tag = "2")]
    pub id: ::prost::alloc::vec::Vec<i64>,
}
/// From: Request\SupporterStatusRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterStatusRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub limit: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub last_id: ::core::option::Option<i64>,
}
/// From: Request\TalentSkillUpgradeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TalentSkillUpgradeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Request\TalentSkillUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TalentSkillUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub object_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int64, optional, tag = "4")]
    pub food_index: ::core::option::Option<i64>,
}
/// From: Request\TalentSlotSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TalentSlotSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub char_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\TimePauseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TimePauseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub action_type: ::core::option::Option<i32>,
}
/// From: Request\TodayQuestInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TodayQuestInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\TotalWarBattleEndRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarBattleEndRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub score_info: ::prost::alloc::vec::Vec<BattleDamageDbInfo>,
}
/// From: Request\TotalWarBattleStartRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarBattleStartRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub battle_index: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub blue_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub red_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
}
/// From: Request\TotalWarContentsItemRenewRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarContentsItemRenewRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\TotalWarDeckInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarDeckInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\TotalWarDeckPresetInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarDeckPresetInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\TotalWarDeckPresetSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarDeckPresetSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub preset_info: ::core::option::Option<TotalWarDeckPresetDbInfo>,
}
/// From: Request\TotalWarDeckPresetSlotAddRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarDeckPresetSlotAddRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub add_count: ::core::option::Option<i32>,
}
/// From: Request\TotalWarDeckSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarDeckSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub deck_info: ::prost::alloc::vec::Vec<TotalWarDeckDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub contents_item_info: ::prost::alloc::vec::Vec<ContentsCharItemInfo>,
}
/// From: Request\TotalWarInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\TotalWarPresetDeleteRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarPresetDeleteRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub slot: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\TotalWarPresetInfoChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarPresetInfoChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub preset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub preset_resource_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub preset_resource_color: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub slot: ::core::option::Option<i32>,
}
/// From: Request\TotalWarRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\TotalWarRewardStateRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarRewardStateRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\TrapDamageRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TrapDamageRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub trap_id: ::core::option::Option<i32>,
}
/// From: Request\TutorialClearRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TutorialClearRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub clear_tutorial_id: ::core::option::Option<i32>,
}
/// From: Request\TutorialInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TutorialInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\UpdateUserContentsInfoOptionRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UpdateUserContentsInfoOptionRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub is_all_private: ::core::option::Option<bool>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub options: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub sort_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\UseRandomBoxRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UseRandomBoxRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub use_count: ::core::option::Option<i32>,
}
/// From: Request\UserContentsInfoOptionRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserContentsInfoOptionRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
}
/// From: Request\UserContentsInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserContentsInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub target_owner_index: ::core::option::Option<i64>,
}
/// From: Request\UseResourceItemRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UseResourceItemRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub inven_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "3")]
    pub use_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub select_value: ::core::option::Option<i32>,
}
/// From: Request\UserGreetingChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserGreetingChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub greeting: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\UserLevelRewardRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserLevelRewardRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Request\UserNicknameChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserNicknameChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Request\UserPortraitChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserPortraitChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub portrait_costume_id: ::core::option::Option<i32>,
}
/// From: Request\UserTitleChangeRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserTitleChangeRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub title_id: ::core::option::Option<i32>,
}
/// From: Request\WaypointInfoRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WaypointInfoRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
}
/// From: Request\WaypointSaveRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WaypointSaveRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub waypoint_id: ::core::option::Option<i32>,
}
/// From: Request\WaypointUseRequest.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WaypointUseRequest {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub start_waypoint_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub end_waypoint_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub move_point: ::core::option::Option<i32>,
}
/// From: Response\AchievementClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AchievementClearResponse {
    #[prost(int32, optional, tag = "1")]
    pub add_exp: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\AchievementInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AchievementInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub achievement_info: ::prost::alloc::vec::Vec<AchievementDbInfo>,
}
/// From: Response\AchievementUpdateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AchievementUpdateResponse {}
/// From: Response\ActiveMapResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ActiveMapResponse {}
/// From: Response\AlchemyBatchResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AlchemyBatchResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub add_talent_exp: ::core::option::Option<i32>,
}
/// From: Response\AlchemyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AlchemyResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub add_talent_exp: ::core::option::Option<i32>,
}
/// From: Response\AllCharRefreshResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AllCharRefreshResponse {
    #[prost(message, repeated, tag = "1")]
    pub buff_stat_info: ::prost::alloc::vec::Vec<PictorialBuffStatDbInfo>,
}
/// From: Response\AttendanceInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttendanceInfoResponse {
    #[prost(int64, repeated, packed = "false", tag = "1")]
    pub attendance_time: ::prost::alloc::vec::Vec<i64>,
}
/// From: Response\AttendanceResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttendanceResponse {
    #[prost(message, repeated, tag = "1")]
    pub attendance_always_info: ::prost::alloc::vec::Vec<AttendanceAlwaysInfo>,
    #[prost(message, repeated, tag = "2")]
    pub attendance_limit_info: ::prost::alloc::vec::Vec<AttendanceLimitGroup>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub standard_attendance_info: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub premium_attendance_info: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "5")]
    pub monthly1_attendance_info: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "6")]
    pub monthly2_attendance_info: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, repeated, tag = "7")]
    pub subscribe_attendance_info: ::prost::alloc::vec::Vec<SubscribeAttendanceInfo>,
    #[prost(message, repeated, tag = "8")]
    pub attendance_package_info: ::prost::alloc::vec::Vec<AttendancePackageInfo>,
    #[prost(message, repeated, tag = "9")]
    pub attendance_event_reward_obtain_info: ::prost::alloc::vec::Vec<
        AttendanceEventRewardObtainInfo,
    >,
}
/// From: Response\BalanceVersionCheckResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BalanceVersionCheckResponse {}
/// From: Response\BattleEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleEndResponse {
    #[prost(int32, optional, tag = "1")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub user_level_exp: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
    #[prost(message, optional, tag = "5")]
    pub reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "6")]
    pub bonus_reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "7")]
    pub monster_hunt_reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "8")]
    pub monster_hunt_daily_reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "9")]
    pub char_partner_info: ::prost::alloc::vec::Vec<CharPartnerDbInfo>,
    #[prost(message, optional, tag = "10")]
    pub evil_castle_info: ::core::option::Option<EvilCastleDbInfo>,
    #[prost(message, optional, tag = "11")]
    pub evil_castle_total_info: ::core::option::Option<EvilCastleTotalDbInfo>,
    #[prost(int32, optional, tag = "12")]
    pub evaluation: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "13")]
    pub monster_hunt_user_info: ::core::option::Option<MonsterHuntUserDbInfo>,
    #[prost(int32, optional, tag = "14")]
    pub rank: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "15")]
    pub evil_castle_tower_info: ::core::option::Option<EvilCastleTowerDbInfo>,
    #[prost(message, optional, tag = "16")]
    pub pack_event_battle_info: ::core::option::Option<PackEventBattleDbInfo>,
    #[prost(message, optional, tag = "17")]
    pub evile_castle_rogue_like_state_info: ::core::option::Option<
        EvilCastleRogueLikeStateInfo,
    >,
    #[prost(message, optional, tag = "18")]
    pub evile_castle_rogue_like_choice_info: ::core::option::Option<
        EvilCastleRogueLikeChoiceInfo,
    >,
    #[prost(int32, optional, tag = "19")]
    pub evile_castle_rogue_like_re_roll: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "20")]
    pub event_reward_info: ::core::option::Option<EvilCastleRogueLikeEventReward>,
    #[prost(int32, optional, tag = "21")]
    pub rogue_like_gold: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "22")]
    pub evil_castle_rogue_like_score_info: ::core::option::Option<
        EvilCastleRogueLikeScoreInfo,
    >,
    #[prost(int32, optional, tag = "23")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "24")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
    #[prost(message, optional, tag = "25")]
    pub guild_raid_normal_battle_info: ::core::option::Option<
        GuildRaidNormalBattleDbInfo,
    >,
    #[prost(message, optional, tag = "26")]
    pub guild_raid_golem_info: ::core::option::Option<GuildRaidBattleGolemInfo>,
    #[prost(message, optional, tag = "27")]
    pub guild_raid_score_info: ::core::option::Option<GuildRaidBattleScoreInfo>,
    #[prost(double, optional, tag = "28")]
    pub monster_hunt_rank_top_percent: ::core::option::Option<f64>,
    #[prost(int32, optional, tag = "29")]
    pub monster_hunt_clear_level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "30")]
    pub over_kill_damage: ::core::option::Option<i64>,
}
/// From: Response\BattleEndTestResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleEndTestResponse {
    #[prost(int32, optional, tag = "1")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub user_level_exp: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
    #[prost(message, optional, tag = "5")]
    pub reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "6")]
    pub bonus_reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "7")]
    pub monster_hunt_reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "8")]
    pub monster_hunt_daily_reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "9")]
    pub char_partner_info: ::prost::alloc::vec::Vec<CharPartnerDbInfo>,
    #[prost(message, optional, tag = "10")]
    pub evil_castle_info: ::core::option::Option<EvilCastleDbInfo>,
    #[prost(message, optional, tag = "11")]
    pub evil_castle_total_info: ::core::option::Option<EvilCastleTotalDbInfo>,
    #[prost(int32, optional, tag = "12")]
    pub evaluation: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "13")]
    pub monster_hunt_user_info: ::core::option::Option<MonsterHuntUserDbInfo>,
    #[prost(int32, optional, tag = "14")]
    pub rank: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "15")]
    pub evil_castle_tower_info: ::core::option::Option<EvilCastleTowerDbInfo>,
    #[prost(message, optional, tag = "16")]
    pub pack_event_battle_info: ::core::option::Option<PackEventBattleDbInfo>,
    #[prost(message, optional, tag = "17")]
    pub evile_castle_rogue_like_state_info: ::core::option::Option<
        EvilCastleRogueLikeStateInfo,
    >,
    #[prost(message, optional, tag = "18")]
    pub evile_castle_rogue_like_choice_info: ::core::option::Option<
        EvilCastleRogueLikeChoiceInfo,
    >,
    #[prost(int32, optional, tag = "19")]
    pub evile_castle_rogue_like_re_roll: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "20")]
    pub event_reward_info: ::core::option::Option<EvilCastleRogueLikeEventReward>,
    #[prost(int32, optional, tag = "21")]
    pub rogue_like_gold: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "22")]
    pub evil_castle_rogue_like_score_info: ::core::option::Option<
        EvilCastleRogueLikeScoreInfo,
    >,
    #[prost(int32, optional, tag = "23")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "24")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
    #[prost(message, optional, tag = "25")]
    pub guild_raid_normal_battle_info: ::core::option::Option<
        GuildRaidNormalBattleDbInfo,
    >,
    #[prost(message, optional, tag = "26")]
    pub guild_raid_golem_info: ::core::option::Option<GuildRaidBattleGolemInfo>,
    #[prost(message, optional, tag = "27")]
    pub guild_raid_score_info: ::core::option::Option<GuildRaidBattleScoreInfo>,
    #[prost(double, optional, tag = "28")]
    pub monster_hunt_rank_top_percent: ::core::option::Option<f64>,
}
/// From: Response\BattleEnterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleEnterResponse {
    #[prost(message, optional, tag = "1")]
    pub monster_info: ::core::option::Option<MonsterDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub battle_deck: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub event_schedule_info: ::core::option::Option<EventScheduleDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub buff_stat_info: ::prost::alloc::vec::Vec<PictorialBuffStatDbInfo>,
    #[prost(message, optional, tag = "5")]
    pub monster_hunt_user_info: ::core::option::Option<MonsterHuntUserDbInfo>,
    #[prost(enumeration = "DefineBattleEngineType", optional, tag = "6")]
    pub engine_type: ::core::option::Option<i32>,
}
/// From: Response\BattleExitResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleExitResponse {}
/// From: Response\BattleGiveUpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleGiveUpResponse {
    #[prost(message, optional, tag = "1")]
    pub user_info: ::core::option::Option<UserDbInfo>,
    #[prost(message, optional, tag = "5")]
    pub monster_hunt_user_info: ::core::option::Option<MonsterHuntUserDbInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntSkillData {
    #[prost(int32, optional, tag = "1")]
    pub costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub use_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub condition_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub parts_table_id: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineEMonsterHuntSkillLimits", optional, tag = "5")]
    pub limit_type: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntTeamProtoInfo {
    #[prost(string, optional, tag = "1")]
    pub blue_char_proto: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "2")]
    pub blue_equip_proto: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "3")]
    pub blue_buff_proto: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "4")]
    pub blue_costume_proto: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleRetryPreviousTurnResponse {
    #[prost(string, optional, tag = "1")]
    pub battle_result: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "2")]
    pub blue_team_skill_bubble_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub red_team_skill_bubble_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub monster_hunt_team: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub monster_hunt_skill_history: ::prost::alloc::vec::Vec<MonsterHuntSkillData>,
    #[prost(message, repeated, tag = "6")]
    pub monster_hunt_before_team_info: ::prost::alloc::vec::Vec<
        MonsterHuntTeamProtoInfo,
    >,
    #[prost(int32, optional, tag = "7")]
    pub turn_count: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "8")]
    pub monster_hunt_user_info: ::core::option::Option<MonsterHuntUserDbInfo>,
}
/// From: Response\BattleRetryResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BattleRetryResponse {
    #[prost(message, optional, tag = "1")]
    pub monster_hunt_user_info: ::core::option::Option<MonsterHuntUserDbInfo>,
}
/// From: Response\BattleStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleStartResponse {
    #[prost(message, repeated, tag = "1")]
    pub red_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub blue_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(int32, optional, tag = "3")]
    pub battle_random_seed: ::core::option::Option<i32>,
}
/// From: Response\BattleVerifyStateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattleVerifyStateResponse {
    #[prost(int32, optional, tag = "1")]
    pub state: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineTeamType", optional, tag = "2")]
    pub team_type: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub red_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub blue_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
}
/// From: Response\CafeteriaCumulativeRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaCumulativeRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub cumulative_reward_info: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "2")]
    pub reward_receipt_time: ::core::option::Option<i64>,
}
/// From: Response\CafeteriaDailyConnectionCostumeRefreshResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaDailyConnectionCostumeRefreshResponse {
    #[prost(int32, optional, tag = "1")]
    pub daily_connection_costume_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub can_get_phone_number: ::core::option::Option<bool>,
}
/// From: Response\CafeteriaEventNpcInteractionRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaEventNpcInteractionRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, optional, tag = "2")]
    pub daily_npc_reward_currency_count: ::core::option::Option<i32>,
}
/// From: Response\CafeteriaInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub cafeteria_info: ::core::option::Option<CafeteriaDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub facility_info: ::prost::alloc::vec::Vec<CafeteriaFacilityDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub part_time_manager_info: ::prost::alloc::vec::Vec<CafeteriaPartTimeManagerDbInfo>,
}
/// From: Response\CafeteriaIntroductionStoryRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaIntroductionStoryRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\CafeteriaLevelUpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaLevelUpResponse {
    #[prost(message, optional, tag = "1")]
    pub new_cafeteria_info: ::core::option::Option<CafeteriaDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub cumulative_reward_info: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\CafeteriaManageItemAddResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaManageItemAddResponse {
    #[prost(int32, optional, tag = "1")]
    pub next_manage_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub added_facility_info: ::core::option::Option<CafeteriaFacilityDbInfo>,
    #[prost(message, optional, tag = "3")]
    pub added_part_time_manager_info: ::core::option::Option<
        CafeteriaPartTimeManagerDbInfo,
    >,
}
/// From: Response\CafeteriaRareNpcInteractionRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaRareNpcInteractionRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\CafeteriaRegularCostumeInteractionAllRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaRegularCostumeInteractionAllRewardResponse {
    #[prost(int32, repeated, packed = "false", tag = "1")]
    pub rewarded_costume_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, optional, tag = "2")]
    pub reward_info: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "3")]
    pub regular_costume_info: ::prost::alloc::vec::Vec<
        CafeteriaRegularCostumeNoteDbInfo,
    >,
}
/// From: Response\CafeteriaRegularCostumeInteractionRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaRegularCostumeInteractionRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "2")]
    pub regular_costume_info: ::core::option::Option<CafeteriaRegularCostumeNoteDbInfo>,
}
/// From: Response\CafeteriaRegularCostumeNoteAllRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaRegularCostumeNoteAllRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub reward_received_costume_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\CafeteriaRegularCostumeNoteInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaRegularCostumeNoteInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub regular_costume_info: ::prost::alloc::vec::Vec<
        CafeteriaRegularCostumeNoteDbInfo,
    >,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub delayed_visibility_costume_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\CafeteriaRegularCostumeNoteRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CafeteriaRegularCostumeNoteRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\CafeteriaRewardReceiptTimeUpdateUsingCheatResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaRewardReceiptTimeUpdateUsingCheatResponse {
    #[prost(int64, optional, tag = "1")]
    pub new_reward_receipt_time: ::core::option::Option<i64>,
}
/// From: Response\CafeteriaSpawnResetCheatResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaSpawnResetCheatResponse {
    #[prost(int32, optional, tag = "1")]
    pub daily_connection_costume_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub can_get_phone_number: ::core::option::Option<bool>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub daily_regular_costume_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub rewarded_daily_regular_costume_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "5")]
    pub daily_npc_reward_currency_count: ::core::option::Option<i32>,
}
/// From: Response\CafeteriaSpawnResetResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CafeteriaSpawnResetResponse {
    #[prost(int32, optional, tag = "1")]
    pub daily_connection_costume_id: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub can_get_phone_number: ::core::option::Option<bool>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub daily_regular_costume_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub rewarded_daily_regular_costume_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "5")]
    pub daily_npc_reward_currency_count: ::core::option::Option<i32>,
}
/// From: Response\CancelLeaveUserResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CancelLeaveUserResponse {}
/// From: Response\CashMailInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CashMailInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mail_info: ::prost::alloc::vec::Vec<MailDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub total_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub max_inven_index: ::core::option::Option<i64>,
}
/// From: Response\CashShopBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CashShopBuyResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "2")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\CashShopInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CashShopInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub product_info: ::prost::alloc::vec::Vec<CashProductDbInfo>,
    #[prost(int64, optional, tag = "2")]
    pub daily_reset_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "3")]
    pub weekly_reset_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub monthly_reset_time: ::core::option::Option<i64>,
}
/// From: Response\CashShopPurchaseCountInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CashShopPurchaseCountInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub purchase_count_info: ::prost::alloc::vec::Vec<PurchaseCountDbInfo>,
}
/// From: Response\CharAllRevivalResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharAllRevivalResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\CharAutoReviveSetResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharAutoReviveSetResponse {
    #[prost(bool, optional, tag = "1")]
    pub can_char_auto_revive: ::core::option::Option<bool>,
    #[prost(int64, optional, tag = "2")]
    pub auto_revive_casting_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\CharAwakeActiveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharAwakeActiveResponse {}
/// From: Response\CharAwakeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharAwakeInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_awake_info: ::prost::alloc::vec::Vec<CharAwakeDbInfo>,
}
/// From: Response\CharClassUpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharClassUpResponse {
    #[prost(message, optional, tag = "1")]
    pub char_info: ::core::option::Option<CharDbInfo>,
}
/// From: Response\CharExpiryResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharExpiryResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
}
/// From: Response\ChargeCostInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChargeCostInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub cost_time_info: ::prost::alloc::vec::Vec<CostTimeDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub event_schedule_info: ::prost::alloc::vec::Vec<ChargeCostEventScheduleDbInfo>,
}
/// From: Response\CharGrowthResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharGrowthResponse {
    #[prost(message, optional, tag = "1")]
    pub char_info: ::core::option::Option<CharDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\CharHealingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharHealingResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub add_talent_exp: ::core::option::Option<i32>,
}
/// From: Response\CharImmortalResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharImmortalResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\CharImprintLevelUpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharImprintLevelUpResponse {}
/// From: Response\CharInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub field_char_control_deck_type: ::core::option::Option<i32>,
}
/// From: Response\CharLevelUpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharLevelUpResponse {
    #[prost(message, optional, tag = "1")]
    pub char_info: ::core::option::Option<CharDbInfo>,
}
/// From: Response\CharPartnerInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharPartnerInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_partner_info: ::prost::alloc::vec::Vec<CharPartnerDbInfo>,
}
/// From: Response\CharPartnerRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharPartnerRewardResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub reward_char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
}
/// From: Response\CharPartnerStoryRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharPartnerStoryRewardResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub reward_char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
}
/// From: Response\CharScoutInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharScoutInfoResponse {
    #[prost(int32, repeated, packed = "false", tag = "1")]
    pub appear_char_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "2")]
    pub use_reset_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub next_auto_reset_time: ::core::option::Option<i64>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub scout_complete_char_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\CharSpecialScoutBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharSpecialScoutBuyResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "2")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\CharSpecialScoutResetResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CharSpecialScoutResetResponse {
    #[prost(int32, repeated, packed = "false", tag = "1")]
    pub appear_char_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int64, optional, tag = "2")]
    pub next_auto_reset_time: ::core::option::Option<i64>,
}
/// From: Response\ClearPackageRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClearPackageRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\ClientCustomLogResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ClientCustomLogResponse {}
/// From: Response\CommunityRewardInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CommunityRewardDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub sub_type: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommunityRewardInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub community_reward_info: ::prost::alloc::vec::Vec<CommunityRewardDbInfo>,
}
/// From: Response\CommunityRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommunityRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\CookingResearchResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CookingResearchResponse {
    #[prost(message, optional, tag = "1")]
    pub item_info: ::core::option::Option<ItemDbInfo>,
}
/// From: Response\CookingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CookingResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub add_talent_exp: ::core::option::Option<i32>,
}
/// From: Response\CostumeAllRounderUpgradeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeAllRounderUpgradeResponse {}
/// From: Response\CostumeClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeClearResponse {}
/// From: Response\CostumeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CostumeInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
}
/// From: Response\CostumeNodeActivationResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeNodeActivationResponse {}
/// From: Response\CostumePotentialConnectResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CostumePotentialConnectResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\CostumeUpgradeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeUpgradeResponse {}
/// From: Response\CostumeUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CostumeUseResponse {}
/// From: Response\DatingEpisodeClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DatingEpisodeClearResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "2")]
    pub episode_info: ::core::option::Option<DatingEpisodeDbInfo>,
}
/// From: Response\DatingInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DatingInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub episode_info: ::prost::alloc::vec::Vec<DatingEpisodeDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub message_choice_info: ::prost::alloc::vec::Vec<DatingMessageChoiceDbInfo>,
}
/// From: Response\DatingMessageUpdateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DatingMessageUpdateResponse {
    #[prost(message, optional, tag = "1")]
    pub episode_info: ::core::option::Option<DatingEpisodeDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub message_choice_info: ::core::option::Option<DatingMessageChoiceDbInfo>,
}
/// From: Response\DeckCharAutoReviveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeckCharAutoReviveResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub field_deck_info: ::prost::alloc::vec::Vec<FieldDeckDbInfo>,
    #[prost(int64, repeated, packed = "false", tag = "3")]
    pub revived_char_inven_index: ::prost::alloc::vec::Vec<i64>,
    #[prost(enumeration = "DefineAutoReviveCharType", optional, tag = "4")]
    pub auto_revive_char_type: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub revive_char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(int32, optional, tag = "6")]
    pub add_talent_exp: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "7")]
    pub catalyst: ::core::option::Option<i64>,
    #[prost(enumeration = "DefineAutoReviveDisabledType", optional, tag = "8")]
    pub auto_revive_disabled_type: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "9")]
    pub casting_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\DeckCostumeSettingInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeckCostumeSettingInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub costume_setting_info: ::prost::alloc::vec::Vec<DeckCostumeSettingDbInfo>,
}
/// From: Response\DeckCostumeSettingSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeckCostumeSettingSaveResponse {}
/// From: Response\DeckInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeckInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub talent_slot_info: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\DeckSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeckSaveResponse {
    #[prost(message, optional, tag = "1")]
    pub deck_info: ::core::option::Option<DeckDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub char_info: ::core::option::Option<CharDbInfo>,
    #[prost(int64, optional, tag = "3")]
    pub forced_revive_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\DispatchInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DispatchInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub dispatch_info: ::prost::alloc::vec::Vec<DispatchDbInfo>,
}
/// From: Response\DispatchRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DispatchRewardResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\EatFoodAutoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EatFoodAutoResponse {
    #[prost(message, repeated, tag = "1")]
    pub recovery_char_info: ::prost::alloc::vec::Vec<
        eat_food_auto_response::RecoveryCharInfo,
    >,
}
/// Nested message and enum types in `EatFoodAutoResponse`.
pub mod eat_food_auto_response {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct RecoveryCharInfo {
        #[prost(int64, optional, tag = "1")]
        pub char_inven_index: ::core::option::Option<i64>,
        #[prost(int64, optional, tag = "2")]
        pub hp: ::core::option::Option<i64>,
    }
}
/// From: Response\EatFoodResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EatFoodResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub field_buff_info: ::prost::alloc::vec::Vec<FieldBuffDbInfo>,
}
/// From: Response\EquipAddSlotResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipAddSlotResponse {}
/// From: Response\EquipBatchUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipBatchUseResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\EquipBreakResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipBreakResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\EquipChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipChangeResponse {
    #[prost(message, optional, tag = "1")]
    pub char_info: ::core::option::Option<CharDbInfo>,
}
/// From: Response\EquipClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipClearResponse {
    #[prost(message, optional, tag = "1")]
    pub char_info: ::core::option::Option<CharDbInfo>,
}
/// From: Response\EquipFromMakingToBreakResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipFromMakingToBreakResponse {
    #[prost(int32, optional, tag = "1")]
    pub add_talent_exp: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
    #[prost(enumeration = "DefineEquipUpgradeResultType", optional, tag = "3")]
    pub result_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub try_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub consume_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub lack_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "7")]
    pub upgrade_used_gold: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "8")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\EquipFromMakingToUpgradeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipFromMakingToUpgradeResponse {
    #[prost(int32, optional, tag = "1")]
    pub add_talent_exp: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
    #[prost(enumeration = "DefineEquipUpgradeResultType", optional, tag = "3")]
    pub result_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub try_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub consume_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub lack_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "7")]
    pub upgrade_used_gold: ::core::option::Option<i32>,
}
/// From: Response\EquipFromUpgradeToBreakResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipFromUpgradeToBreakResponse {
    #[prost(message, optional, tag = "1")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
    #[prost(enumeration = "DefineEquipUpgradeResultType", optional, tag = "2")]
    pub result_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub try_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub consume_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub lack_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "6")]
    pub upgrade_used_gold: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "7")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\EquipInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub equip_option_re_roll_info: ::core::option::Option<EquipDbInfo>,
}
/// From: Response\EquipLockResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipLockResponse {}
/// From: Response\EquipMakingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipMakingResponse {
    #[prost(message, repeated, tag = "1")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub add_talent_exp: ::core::option::Option<i32>,
}
/// From: Response\EquipMarkDeleteResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipMarkDeleteResponse {}
/// From: Response\EquipMarkSetResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipMarkSetResponse {}
/// From: Response\EquipOptionReRollConfirmResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipOptionReRollConfirmResponse {
    #[prost(message, optional, tag = "1")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub char_info: ::core::option::Option<CharDbInfo>,
}
/// From: Response\EquipOptionReRollResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipOptionReRollResponse {
    #[prost(message, repeated, tag = "1")]
    pub main_option: ::prost::alloc::vec::Vec<EquipOptionInfo>,
    #[prost(message, repeated, tag = "2")]
    pub sub_option: ::prost::alloc::vec::Vec<EquipOptionInfo>,
}
/// From: Response\EquipPresetInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipPresetInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<EquipPresetCharInfo>,
}
/// From: Response\EquipPresetNameChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipPresetNameChangeResponse {}
/// From: Response\EquipPresetSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipPresetSaveResponse {}
/// From: Response\EquipsClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipsClearResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\EquipSequenceSmeltingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipSequenceSmeltingResponse {
    #[prost(message, optional, tag = "1")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub char_info: ::core::option::Option<CharDbInfo>,
    #[prost(enumeration = "DefineEquipUpgradeResultType", optional, tag = "3")]
    pub result_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub try_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub consume_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub lack_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\EquipSequenceUpgradeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipSequenceUpgradeResponse {
    #[prost(message, optional, tag = "1")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub char_info: ::core::option::Option<CharDbInfo>,
    #[prost(enumeration = "DefineEquipUpgradeResultType", optional, tag = "3")]
    pub result_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub try_count: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub consume_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub lack_item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "7")]
    pub upgrade_used_gold: ::core::option::Option<i32>,
}
/// From: Response\EquipSmeltingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipSmeltingResponse {
    #[prost(message, optional, tag = "1")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub char_info: ::core::option::Option<CharDbInfo>,
    #[prost(enumeration = "DefineEquipUpgradeResultType", optional, tag = "3")]
    pub result_type: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub result_grade: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\EquipStorageAddSlotResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EquipStorageAddSlotResponse {}
/// From: Response\EquipStorageInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipStorageInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
}
/// From: Response\EquipStorageOutResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipStorageOutResponse {
    #[prost(message, optional, tag = "1")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
}
/// From: Response\EquipStoragePutResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipStoragePutResponse {
    #[prost(message, optional, tag = "1")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
}
/// From: Response\EquipsUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipsUseResponse {
    #[prost(message, optional, tag = "1")]
    pub char_info: ::core::option::Option<CharDbInfo>,
}
/// From: Response\EquipUpgradeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipUpgradeResponse {
    #[prost(message, optional, tag = "1")]
    pub equip_info: ::core::option::Option<EquipDbInfo>,
    #[prost(enumeration = "DefineEquipUpgradeResultType", optional, tag = "2")]
    pub result_type: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub char_info: ::core::option::Option<CharDbInfo>,
}
/// From: Response\EquipUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipUseResponse {
    #[prost(message, optional, tag = "1")]
    pub char_info: ::core::option::Option<CharDbInfo>,
}
/// From: Response\EventExchangeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventExchangeInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub event_exchange_info: ::prost::alloc::vec::Vec<EventExchangeDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub event_exchange_reward_info: ::prost::alloc::vec::Vec<EventExchangeRewardDbInfo>,
}
/// From: Response\EventExchangeNextPageOpenResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventExchangeNextPageOpenResponse {}
/// From: Response\EventExchangeRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventExchangeRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "2")]
    pub change_exchange_reward_info: ::prost::alloc::vec::Vec<EventExchangeRewardDbInfo>,
}
/// From: Response\EventHubInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventHubInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub event_hub_info: ::prost::alloc::vec::Vec<EventHubDbInfo>,
}
/// From: Response\EventMissionInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventMissionInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mission_info: ::prost::alloc::vec::Vec<EventMissionDbInfo>,
}
/// From: Response\EventRewardHistoryResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventRewardHistoryResponse {
    #[prost(message, repeated, tag = "1")]
    pub history_info: ::prost::alloc::vec::Vec<EventRewardHistoryDbInfo>,
}
/// From: Response\EventRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EventRewardResponse {}
/// From: Response\EventScheduleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventScheduleInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub event_schedule_info: ::prost::alloc::vec::Vec<EventScheduleDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub delayed_visibility_schedule_info: ::prost::alloc::vec::Vec<
        DelayedVisibilityScheduleDbInfo,
    >,
}
/// From: Response\EvilCastleDailyRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleDailyRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\EvilCastleDailyRewardStateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleDailyRewardStateResponse {
    #[prost(bool, optional, tag = "1")]
    pub is_obtainable_daily_reward: ::core::option::Option<bool>,
}
/// From: Response\EvilCastleEnterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleEnterResponse {
    #[prost(message, repeated, tag = "1")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
}
/// From: Response\EvilCastleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub evil_castle_info: ::prost::alloc::vec::Vec<EvilCastleDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub evil_castle_total_info: ::core::option::Option<EvilCastleTotalDbInfo>,
    #[prost(int32, optional, tag = "3")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub regular_season: ::core::option::Option<i32>,
}
/// From: Response\EvilCastlePingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastlePingResponse {
    #[prost(int32, optional, tag = "1")]
    pub point: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleRankingInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRankingInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub user_ranking_info: ::prost::alloc::vec::Vec<EvilCastleRankUserInfo>,
    #[prost(message, optional, tag = "2")]
    pub my_ranking_info: ::core::option::Option<EvilCastleRankUserInfo>,
}
/// From: Response\EvilCastleRewardInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRewardInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub end_season_info: ::prost::alloc::vec::Vec<EvilCastleEndSeasonDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub end_season_total_info: ::core::option::Option<EvilCastleEndSeasonTotalDbInfo>,
    #[prost(message, optional, tag = "3")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\EvilCastleRogueLikeAllUserScoreInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeAllUserScoreInfoResponse {
    #[prost(int64, optional, tag = "1")]
    pub all_user_total_score: ::core::option::Option<i64>,
}
/// From: Response\EvilCastleRogueLikeBattleCharChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeBattleCharChangeResponse {}
/// From: Response\EvilCastleRogueLikeBattleEndPreviewResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeBattleEndPreviewResponse {
    #[prost(int32, optional, tag = "1")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub reward_item_preview: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int32, optional, tag = "3")]
    pub rogue_like_gold_preview: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub crystal_damage: ::core::option::Option<i64>,
}
/// From: Response\EvilCastleRogueLikeBattleSkipResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeBattleSkipResponse {
    #[prost(message, optional, tag = "1")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(message, optional, tag = "2")]
    pub choice_info: ::core::option::Option<EvilCastleRogueLikeChoiceInfo>,
    #[prost(int32, optional, tag = "3")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
}
/// From: Response\EvilCastleRogueLikeCharRevivalResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeCharRevivalResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\EvilCastleRogueLikeCostumeUpgradeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeCostumeUpgradeResponse {
    #[prost(message, optional, tag = "1")]
    pub costume_info: ::core::option::Option<CostumeDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub used_gold: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleRogueLikeDeckSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeDeckSaveResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
}
/// From: Response\EvilCastleRogueLikeEditEventResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeEditEventResponse {}
/// From: Response\EvilCastleRogueLikeEnterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeEnterResponse {
    #[prost(message, repeated, tag = "1")]
    pub floor_info: ::prost::alloc::vec::Vec<EvilCastleRogueLikeFloorInfo>,
    #[prost(message, optional, tag = "2")]
    pub choice_info: ::core::option::Option<EvilCastleRogueLikeChoiceInfo>,
    #[prost(message, optional, tag = "3")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(int32, optional, tag = "4")]
    pub rogue_like_gold: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub re_roll: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleRogueLikeEventChoiceResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeEventChoiceResponse {
    #[prost(message, optional, tag = "1")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(int32, optional, tag = "2")]
    pub event_result: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub event_reward_info: ::core::option::Option<EvilCastleRogueLikeEventReward>,
    #[prost(message, optional, tag = "5")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
}
/// From: Response\EvilCastleRogueLikeEventSelectResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeEventSelectResponse {
    #[prost(message, optional, tag = "1")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(int32, optional, tag = "2")]
    pub event_result: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub event_reward_info: ::core::option::Option<EvilCastleRogueLikeEventReward>,
    #[prost(message, optional, tag = "5")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
}
/// From: Response\EvilCastleRogueLikeGiveUpInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeGiveUpInfoResponse {
    #[prost(int32, optional, tag = "1")]
    pub obsidian: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleRogueLikeGiveUpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeGiveUpResponse {
    #[prost(message, optional, tag = "1")]
    pub score_info: ::core::option::Option<EvilCastleRogueLikeScoreInfo>,
}
/// From: Response\EvilCastleRogueLikeGrowthResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeGrowthResponse {
    #[prost(int32, optional, tag = "1")]
    pub level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub obsidian: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleRogueLikeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(int32, optional, tag = "2")]
    pub level: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub floor_info: ::prost::alloc::vec::Vec<EvilCastleRogueLikeFloorInfo>,
    #[prost(message, repeated, tag = "4")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub relic_info: ::prost::alloc::vec::Vec<RelicDbInfo>,
    #[prost(message, optional, tag = "8")]
    pub choice_info: ::core::option::Option<EvilCastleRogueLikeChoiceInfo>,
    #[prost(int32, optional, tag = "9")]
    pub re_roll: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "11")]
    pub id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "12")]
    pub growth_info: ::prost::alloc::vec::Vec<EvilCastleRogueLikeGrowthDbInfo>,
    #[prost(message, optional, tag = "13")]
    pub event_info: ::core::option::Option<EvilCastleRogueLikeEventInfo>,
    #[prost(message, optional, tag = "14")]
    pub shop_info: ::core::option::Option<EvilCastleRogueLikeShopDbInfo>,
    #[prost(int32, optional, tag = "15")]
    pub battle_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "16")]
    pub max_try_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "17")]
    pub obsidian: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "18")]
    pub rogue_like_gold: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "19")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "20")]
    pub regular_season: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "21")]
    pub season_reward: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "22")]
    pub max_reward_level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "23")]
    pub highest_crystal_damage: ::core::option::Option<i64>,
}
/// From: Response\EvilCastleRogueLikeMoveFloorResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeMoveFloorResponse {
    #[prost(message, optional, tag = "1")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(int32, optional, tag = "2")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
}
/// From: Response\EvilCastleRogueLikeQuickBattleResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeQuickBattleResponse {
    #[prost(message, optional, tag = "1")]
    pub score_info: ::core::option::Option<EvilCastleRogueLikeScoreInfo>,
}
/// From: Response\EvilCastleRogueLikeRankInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeRankUserInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub user_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "6")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int32, optional, tag = "7")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "10")]
    pub crystal_damage: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeRankInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub user_rank_info: ::prost::alloc::vec::Vec<EvilCastleRogueLikeRankUserInfo>,
    #[prost(message, optional, tag = "2")]
    pub my_rank_info: ::core::option::Option<EvilCastleRogueLikeRankUserInfo>,
}
/// From: Response\EvilCastleRogueLikeRelicMixResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeRelicMixResponse {
    #[prost(message, repeated, tag = "1")]
    pub add_relic_info: ::prost::alloc::vec::Vec<RelicDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub remove_relic_info: ::prost::alloc::vec::Vec<RelicDbInfo>,
}
/// From: Response\EvilCastleRogueLikeRewardReRollResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeRewardReRollResponse {
    #[prost(int32, optional, tag = "1")]
    pub count: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub choice_info: ::core::option::Option<EvilCastleRogueLikeChoiceInfo>,
}
/// From: Response\EvilCastleRogueLikeRoomEnterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeRoomEnterResponse {
    #[prost(message, optional, tag = "1")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(message, optional, tag = "2")]
    pub choice_info: ::core::option::Option<EvilCastleRogueLikeChoiceInfo>,
    #[prost(message, optional, tag = "3")]
    pub event_info: ::core::option::Option<EvilCastleRogueLikeEventInfo>,
    #[prost(message, optional, tag = "4")]
    pub shop_info: ::core::option::Option<EvilCastleRogueLikeShopDbInfo>,
    #[prost(int32, optional, tag = "5")]
    pub battle_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub rogue_like_gold: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "8")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
}
/// From: Response\EvilCastleRogueLikeSeasonRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeSeasonRewardResponse {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\EvilCastleRogueLikeSelectRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeSelectRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(message, optional, tag = "2")]
    pub choice_info: ::core::option::Option<EvilCastleRogueLikeChoiceInfo>,
    #[prost(message, repeated, tag = "3")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, optional, tag = "4")]
    pub costume_info: ::core::option::Option<CostumeDbInfo>,
    #[prost(message, optional, tag = "5")]
    pub relic_info: ::core::option::Option<RelicDbInfo>,
    #[prost(int32, optional, tag = "6")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "7")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
    #[prost(int32, optional, tag = "8")]
    pub rogue_like_gold: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleRogueLikeShopBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeShopBuyResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub costume_info: ::core::option::Option<CostumeDbInfo>,
    #[prost(message, optional, tag = "3")]
    pub relic_info: ::core::option::Option<RelicDbInfo>,
    #[prost(int32, optional, tag = "4")]
    pub used_gold: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleRogueLikeShopExitResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleRogueLikeShopExitResponse {
    #[prost(message, optional, tag = "1")]
    pub state_info: ::core::option::Option<EvilCastleRogueLikeStateInfo>,
    #[prost(int32, optional, tag = "2")]
    pub clear_floor: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub clear_room_info: ::core::option::Option<EvilCastleRogueLikeRoomInfo>,
}
/// From: Response\EvilCastleRogueLikeShopReRollResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleRogueLikeShopReRollResponse {
    #[prost(message, optional, tag = "1")]
    pub shop_info: ::core::option::Option<EvilCastleRogueLikeShopDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub used_gold: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleStageClearRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleStageClearRewardResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
}
/// From: Response\EvilCastleStageRankingInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvilCastleStageRankingInfoResponse {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub point: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub total_rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub total_point: ::core::option::Option<i32>,
}
/// From: Response\EvilCastleTowerInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EvilCastleTowerInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<EvilCastleTowerDbInfo>,
}
/// From: Response\FieldDeckInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldDeckInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub field_deck_info: ::prost::alloc::vec::Vec<FieldDeckDbInfo>,
}
/// From: Response\FieldDeckSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldDeckSaveResponse {}
/// From: Response\FieldMonsterDamageResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldMonsterDamageResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\FieldMonsterEventResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldMonsterEventResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub monster_info: ::core::option::Option<MonsterDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
}
/// From: Response\FieldMonsterRegenResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldMonsterRegenResponse {
    #[prost(message, optional, tag = "1")]
    pub monster_info: ::core::option::Option<MonsterDbInfo>,
}
/// From: Response\FieldMonsterRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldMonsterRewardResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
}
/// From: Response\FieldObjectInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldObjectInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub field_reward_obtain_info: ::prost::alloc::vec::Vec<FieldObjectDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub field_action_object_info: ::prost::alloc::vec::Vec<FieldObjectDbInfo>,
}
/// From: Response\FieldObjectPositionUpdateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FieldObjectPositionUpdateResponse {}
/// From: Response\FieldObjectPreviewResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldObjectPreviewResponse {
    #[prost(message, repeated, tag = "1")]
    pub field_reward_obtain_info: ::prost::alloc::vec::Vec<FieldObjectDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub research_object_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\FieldObjectResearchResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldObjectResearchResponse {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub reward_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\FieldObjectRespawnResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldObjectRespawnResponse {
    #[prost(message, repeated, tag = "1")]
    pub field_object_info: ::prost::alloc::vec::Vec<FieldObjectDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub field_object_respawn_info: ::prost::alloc::vec::Vec<FieldObjectRespawnDbInfo>,
}
/// From: Response\FieldObjectRewardListResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldObjectRewardListResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\FieldObjectRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldObjectRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "2")]
    pub field_buff_info: ::prost::alloc::vec::Vec<FieldBuffDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, optional, tag = "4")]
    pub monster_info: ::core::option::Option<MonsterDbInfo>,
}
/// From: Response\FieldTrapInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldTrapInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub field_trap_db_info: ::prost::alloc::vec::Vec<FieldTrapDbInfo>,
}
/// From: Response\FriendAcceptResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FriendAcceptResponse {
    #[prost(message, optional, tag = "1")]
    pub friend_info: ::core::option::Option<FriendDbInfo>,
}
/// From: Response\FriendInfoListResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FriendInfoListResponse {
    #[prost(message, repeated, tag = "1")]
    pub friend_info: ::prost::alloc::vec::Vec<FriendDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub friend_recv: ::prost::alloc::vec::Vec<FriendDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub friend_send: ::prost::alloc::vec::Vec<FriendDbInfo>,
}
/// From: Response\FriendReceiveListResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FriendReceiveListResponse {
    #[prost(message, repeated, tag = "1")]
    pub friend_info: ::prost::alloc::vec::Vec<FriendDbInfo>,
}
/// From: Response\FriendRecommendResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FriendRecommendResponse {
    #[prost(message, repeated, tag = "1")]
    pub friend_info: ::prost::alloc::vec::Vec<FriendDbInfo>,
}
/// From: Response\FriendRefuseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendRefuseResponse {}
/// From: Response\FriendRemoveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendRemoveResponse {}
/// From: Response\FriendSearchResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FriendSearchResponse {
    #[prost(message, optional, tag = "1")]
    pub friend_info: ::core::option::Option<FriendDbInfo>,
}
/// From: Response\FriendSendListResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FriendSendListResponse {
    #[prost(message, repeated, tag = "1")]
    pub friend_info: ::prost::alloc::vec::Vec<FriendDbInfo>,
}
/// From: Response\FriendSendRemoveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendSendRemoveResponse {}
/// From: Response\FriendSendResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FriendSendResponse {}
/// From: Response\GachaBuyPreviewLockResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaBuyPreviewLockResponse {}
/// From: Response\GachaBuyPreviewResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaBuyPreviewResponse {
    #[prost(message, optional, tag = "1")]
    pub preview_item_info: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\GachaBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaBuyResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, optional, tag = "2")]
    pub get_point: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub gacha_fixed_info: ::prost::alloc::vec::Vec<GachaFixedDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub selection_apply_sort_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int64, optional, tag = "5")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\GachaInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub schedule_info: ::prost::alloc::vec::Vec<GachaScheduleDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub gacha_user_info: ::prost::alloc::vec::Vec<GachaUserDbInfo>,
    #[prost(int32, optional, tag = "3")]
    pub schedule_end_exchange_point: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub gacha_fixed_info: ::prost::alloc::vec::Vec<GachaFixedDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub gacha_selection_info: ::prost::alloc::vec::Vec<GachaSelectionDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub gacha_selection_change_count_info: ::prost::alloc::vec::Vec<
        GachaSelectionCountChangeDbInfo,
    >,
    #[prost(message, repeated, tag = "7")]
    pub step_up_schedule_info: ::prost::alloc::vec::Vec<GachaStepUpScheduleDbInfo>,
    #[prost(message, repeated, tag = "8")]
    pub step_up_user_info: ::prost::alloc::vec::Vec<GachaStepUpUserDbInfo>,
    #[prost(message, repeated, tag = "9")]
    pub resemara_preview_item_info: ::prost::alloc::vec::Vec<ResemaraGachaDbInfo>,
}
/// From: Response\GachaLogResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaLogResponse {
    #[prost(message, repeated, tag = "1")]
    pub gacha_log: ::prost::alloc::vec::Vec<GachaLogDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub gacha_total_count_info: ::prost::alloc::vec::Vec<GachaTotalCountInfo>,
}
/// From: Response\GachaPointExchangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaPointExchangeResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\GachaPointManualExchangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaPointManualExchangeResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\GachaSelectionSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GachaSelectionSaveResponse {}
/// From: Response\GuildAcceptResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildAcceptResponse {}
/// From: Response\GuildCreateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildCreateResponse {
    #[prost(message, optional, tag = "1")]
    pub guild_info: ::core::option::Option<GuildDbInfo>,
    #[prost(double, optional, tag = "2")]
    pub top_percent: ::core::option::Option<f64>,
}
/// From: Response\GuildDeleteCancelResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildDeleteCancelResponse {}
/// From: Response\GuildInfoEditResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildInfoEditResponse {}
/// From: Response\GuildInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub guild_info: ::core::option::Option<GuildDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub member_info: ::prost::alloc::vec::Vec<GuildMemberDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub join_recv_info: ::prost::alloc::vec::Vec<UserBaseDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub action_info: ::prost::alloc::vec::Vec<GuildActionDbInfo>,
    #[prost(bool, optional, tag = "5")]
    pub is_attendance: ::core::option::Option<bool>,
    #[prost(message, optional, tag = "6")]
    pub raid_play_info: ::core::option::Option<GuildRaidPlayDbInfo>,
    #[prost(int64, optional, tag = "7")]
    pub ban_time: ::core::option::Option<i64>,
}
/// From: Response\GuildInitInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildInitInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub join_recv_info: ::prost::alloc::vec::Vec<UserBaseDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub action_info: ::prost::alloc::vec::Vec<GuildActionDbInfo>,
    #[prost(bool, optional, tag = "3")]
    pub is_reward: ::core::option::Option<bool>,
    #[prost(message, optional, tag = "4")]
    pub raid_play_info: ::core::option::Option<GuildRaidPlayDbInfo>,
}
/// From: Response\GuildJoinRefuseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildJoinRefuseResponse {}
/// From: Response\GuildJoinResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildJoinResponse {
    #[prost(message, optional, tag = "1")]
    pub guild_info: ::core::option::Option<GuildDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub member_info: ::prost::alloc::vec::Vec<GuildMemberDbInfo>,
    #[prost(int64, optional, tag = "3")]
    pub ban_time: ::core::option::Option<i64>,
    #[prost(enumeration = "DefineJoinResultType", optional, tag = "4")]
    pub result_type: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "5")]
    pub top_percent: ::core::option::Option<f64>,
}
/// From: Response\GuildJoinSendCancelResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildJoinSendCancelResponse {}
/// From: Response\GuildJoinSendInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildJoinSendInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub join_send_info: ::prost::alloc::vec::Vec<GuildDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub action_info: ::prost::alloc::vec::Vec<GuildActionDbInfo>,
}
/// From: Response\GuildLeaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildLeaveResponse {}
/// From: Response\GuildMemberBanResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildMemberBanResponse {}
/// From: Response\GuildMemberRoleEditResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildMemberRoleEditResponse {
    #[prost(message, repeated, tag = "1")]
    pub member_info: ::prost::alloc::vec::Vec<GuildMemberDbInfo>,
}
/// From: Response\GuildNoticeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildNoticeInfoResponse {
    #[prost(string, optional, tag = "1")]
    pub notice: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "2")]
    pub date: ::core::option::Option<i64>,
}
/// From: Response\GuildNoticeUpdateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildNoticeUpdateResponse {
    #[prost(int64, optional, tag = "1")]
    pub date: ::core::option::Option<i64>,
}
/// From: Response\GuildRaidBossBattleEnterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidBossBattleEnterResponse {
    #[prost(message, optional, tag = "1")]
    pub event_schedule_info: ::core::option::Option<EventScheduleDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub buff_stat_info: ::prost::alloc::vec::Vec<PictorialBuffStatDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub supporter_char_info: ::prost::alloc::vec::Vec<GuildSupporterBattleCharInfo>,
    #[prost(enumeration = "DefineBattleEngineType", optional, tag = "4")]
    pub engine_type: ::core::option::Option<i32>,
}
/// From: Response\GuildRaidBossBattleHistoryResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidBossBattleHistoryResponse {
    #[prost(int32, optional, tag = "1")]
    pub today_highest_level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub today_highest_score: ::core::option::Option<i64>,
}
/// From: Response\GuildRaidBossBattleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidBossBattleInfoResponse {
    #[prost(int64, optional, tag = "1")]
    pub guild_total_score: ::core::option::Option<i64>,
    #[prost(double, optional, tag = "2")]
    pub guild_top_percent: ::core::option::Option<f64>,
    #[prost(int32, optional, tag = "3")]
    pub highest_level: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub highest_score: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub top_member_owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "6")]
    pub top_member_user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "7")]
    pub top_member_score: ::core::option::Option<i32>,
}
/// From: Response\GuildRaidBossPracticeBattleEnterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidBossPracticeBattleEnterResponse {
    #[prost(message, optional, tag = "1")]
    pub event_schedule_info: ::core::option::Option<EventScheduleDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub buff_stat_info: ::prost::alloc::vec::Vec<PictorialBuffStatDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub supporter_char_info: ::prost::alloc::vec::Vec<GuildSupporterBattleCharInfo>,
    #[prost(enumeration = "DefineBattleEngineType", optional, tag = "4")]
    pub engine_type: ::core::option::Option<i32>,
}
/// From: Response\GuildRaidBossQuickBattleResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidBossQuickBattleResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\GuildRaidDeckInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidDeckInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub supporter_deck_info: ::prost::alloc::vec::Vec<GuildRaidSupporterDeckDbInfo>,
    #[prost(bool, optional, tag = "3")]
    pub is_supporter_deck_update: ::core::option::Option<bool>,
}
/// From: Response\GuildRaidDeckSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidDeckSaveResponse {
    #[prost(bool, optional, tag = "1")]
    pub is_supporter_update: ::core::option::Option<bool>,
}
/// From: Response\GuildRaidMainInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidMainInfoResponse {
    #[prost(int32, optional, tag = "1")]
    pub season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub raid_day: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub today_normal_battle_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "4")]
    pub user_score: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "5")]
    pub last_score_reward_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "6")]
    pub guild_total_score: ::core::option::Option<i64>,
    #[prost(double, optional, tag = "7")]
    pub guild_top_percent: ::core::option::Option<f64>,
    #[prost(int32, optional, tag = "8")]
    pub golem_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub golem_exp: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "10")]
    pub obtainable_season_reward: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "11")]
    pub today_supporter_use_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "12")]
    pub total_supporter_rental_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "13")]
    pub top_guild_score: ::core::option::Option<i64>,
    #[prost(int32, repeated, packed = "false", tag = "14")]
    pub play_day: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, repeated, tag = "15")]
    pub schedule_history_info: ::prost::alloc::vec::Vec<ContentScheduleHistory>,
    #[prost(message, repeated, tag = "16")]
    pub flag_grade_version_info: ::prost::alloc::vec::Vec<GuildRaidFlagGradeVersionInfo>,
    #[prost(int32, optional, tag = "17")]
    pub guild_rank: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidFlagGradeVersionInfo {
    #[prost(int32, optional, tag = "1")]
    pub group_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub min_season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub max_season: ::core::option::Option<i32>,
}
/// From: Response\GuildRaidMemberPlayHistoryInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidMemberPlayHistoryInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<GuildRaidMemberPlayHistoryDbInfo>,
}
/// From: Response\GuildRaidMemberRankingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidMemberRankingResponse {
    #[prost(message, repeated, tag = "1")]
    pub rank_info: ::prost::alloc::vec::Vec<GuildRaidMemberRankDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub user_rank_info: ::core::option::Option<GuildRaidMemberRankDbInfo>,
}
/// From: Response\GuildRaidNormalBattleHistoryInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidNormalBattleHistoryInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<GuildRaidNormalBattleHistoryDbInfo>,
}
/// From: Response\GuildRaidNormalBattleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidNormalBattleInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<GuildRaidNormalBattleDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub golem_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub golem_exp: ::core::option::Option<i32>,
}
/// From: Response\GuildRaidPresetDeleteResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetDeleteResponse {}
/// From: Response\GuildRaidPresetInfoChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetInfoChangeResponse {}
/// From: Response\GuildRaidPresetInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidPresetInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub preset_info: ::prost::alloc::vec::Vec<PresetDbInfo>,
}
/// From: Response\GuildRaidPresetSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetSaveResponse {}
/// From: Response\GuildRaidPresetSlotAddResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildRaidPresetSlotAddResponse {}
/// From: Response\GuildRaidPresetUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidPresetUseResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub char_equip_info: ::prost::alloc::vec::Vec<PresetUseEquipInfo>,
}
/// From: Response\GuildRaidSeasonRankingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidSeasonRankingResponse {
    #[prost(message, repeated, tag = "1")]
    pub rank_info: ::prost::alloc::vec::Vec<GuildRaidSeasonRankDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub user_rank_info: ::core::option::Option<GuildRaidSeasonRankDbInfo>,
}
/// From: Response\GuildRaidSeasonRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRaidSeasonRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(bool, optional, tag = "2")]
    pub is_received_reward: ::core::option::Option<bool>,
}
/// From: Response\GuildRecommendResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildRecommendResponse {
    #[prost(message, repeated, tag = "1")]
    pub guild_info: ::prost::alloc::vec::Vec<GuildDbInfo>,
}
/// From: Response\GuildSearchResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildSearchResponse {
    #[prost(message, repeated, tag = "1")]
    pub guild_info: ::prost::alloc::vec::Vec<GuildDbInfo>,
}
/// From: Response\GuildSupporterAddResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSupporterAddResponse {}
/// From: Response\GuildSupporterDeleteResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSupporterDeleteResponse {}
/// From: Response\GuildSupporterInfoListResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuildSupporterInfoListResponse {
    #[prost(message, repeated, tag = "1")]
    pub supporter_info: ::prost::alloc::vec::Vec<GuildSupporterInfo>,
}
/// From: Response\GuildSupporterInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildSupporterInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub supporter_info: ::core::option::Option<GuildSupporterInfo>,
}
/// From: Response\GuildUpdateActionInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GuildUpdateActionInfoResponse {}
/// From: Response\HuntDispatchEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntDispatchEndResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\HuntDispatchInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntDispatchInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub hunt_dispatch_info: ::prost::alloc::vec::Vec<HuntDispatchDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub hunting_ground_min_pack_id: ::core::option::Option<i32>,
}
/// From: Response\HuntDispatchResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntDispatchResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\HuntDispatchRewardPreviewResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntDispatchRewardPreviewResponse {
    #[prost(int32, optional, tag = "1")]
    pub current_play_count: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(bool, optional, tag = "3")]
    pub is_not_return_free_ap: ::core::option::Option<bool>,
}
/// From: Response\HuntDispatchStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HuntDispatchStartResponse {
    #[prost(message, optional, tag = "1")]
    pub hunt_dispatch_info: ::core::option::Option<HuntDispatchDbInfo>,
}
/// From: Response\HuntingGroundEnterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntingGroundEnterResponse {
    #[prost(message, repeated, tag = "1")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
}
/// From: Response\HuntingGroundInfoListResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntingGroundInfoListResponse {
    #[prost(message, repeated, tag = "1")]
    pub hunting_ground_info: ::prost::alloc::vec::Vec<HuntingGroundDbInfo>,
}
/// From: Response\HuntingGroundInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntingGroundInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub hunting_ground_info: ::core::option::Option<HuntingGroundDbInfo>,
}
/// From: Response\IdCardPresetDeleteResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardPresetDeleteResponse {}
/// From: Response\IdCardPresetInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardPresetInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub preset_info: ::prost::alloc::vec::Vec<IdCardPresetInfo>,
}
/// From: Response\IdCardPresetSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardPresetSaveResponse {}
/// From: Response\IdCardRecoveryResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardRecoveryResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "2")]
    pub id_card_info: ::core::option::Option<IdCardInfo>,
}
/// From: Response\IdCardSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardSaveResponse {}
/// From: Response\IdCardShopBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardShopBuyResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\IdCardShopInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IdCardShopDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub buy_count: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdCardShopInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub shop_buy_info: ::prost::alloc::vec::Vec<IdCardShopDbInfo>,
}
/// From: Response\InnOpenResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InnOpenResponse {
    #[prost(int32, optional, tag = "1")]
    pub reputation_state: ::core::option::Option<i32>,
}
/// From: Response\InteractionTriggerResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InteractionTriggerResponse {}
/// From: Response\InvenAddSlotResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InvenAddSlotResponse {}
/// From: Response\ItemDumpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemDumpResponse {}
/// From: Response\ItemInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\ItemStorageInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemStorageInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\ItemStorageOutResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemStorageOutResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\ItemStoragePutResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemStoragePutResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\ItemStorageUpdateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ItemStorageUpdateResponse {}
/// From: Response\JoinUserResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JoinUserResponse {
    #[prost(message, optional, tag = "1")]
    pub user_info: ::core::option::Option<UserDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\JpUserInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct JpUserInfoResponse {
    #[prost(float, optional, tag = "1")]
    pub accumulated_payment_amount: ::core::option::Option<f32>,
    #[prost(int32, optional, tag = "2")]
    pub date_of_birth: ::core::option::Option<i32>,
}
/// From: Response\JpUserResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct JpUserResponse {}
/// From: Response\LeaveUserResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LeaveUserResponse {
    #[prost(int64, optional, tag = "1")]
    pub unreg_date: ::core::option::Option<i64>,
}
/// From: Response\LikeUserResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LikeUserResponse {}
/// From: Response\LoginEventResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LoginEventInfo {
    #[prost(int32, optional, tag = "1")]
    pub login_event_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub next_login_time: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LoginEventResponse {
    #[prost(message, repeated, tag = "1")]
    pub login_event_info: ::prost::alloc::vec::Vec<LoginEventInfo>,
}
/// From: Response\LoginUserResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LoginUserResponse {
    #[prost(message, optional, tag = "1")]
    pub user_info: ::core::option::Option<UserDbInfo>,
    #[prost(float, optional, tag = "2")]
    pub accumulated_payment_amount: ::core::option::Option<f32>,
    #[prost(int32, optional, tag = "3")]
    pub date_of_birth: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "5")]
    pub repayment_currency: ::prost::alloc::vec::Vec<RewardDbInfo>,
    #[prost(message, optional, tag = "6")]
    pub user_guild_info: ::core::option::Option<GuildMemberDbInfo>,
    #[prost(message, optional, tag = "7")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(bool, optional, tag = "8")]
    pub has_available_supporter_reward: ::core::option::Option<bool>,
}
/// From: Response\LogoutUserResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LogoutUserResponse {}
/// From: Response\MailHistoryInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MailHistoryInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mail_info: ::prost::alloc::vec::Vec<MailDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub total_count: ::core::option::Option<i32>,
}
/// From: Response\MailInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MailInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mail_info: ::prost::alloc::vec::Vec<MailDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub total_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub max_inven_index: ::core::option::Option<i64>,
}
/// From: Response\MailOpenResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MailOpenResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "2")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\MaintenanceInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MaintenanceInfo {
    #[prost(int32, optional, tag = "1")]
    pub market_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub version: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "3")]
    pub bundle_version: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bool, optional, tag = "4")]
    pub is_bundle_update: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "5")]
    pub maintenance_type: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "6")]
    pub date: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "7")]
    pub region_list: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(sint32, optional, tag = "8")]
    pub use_dsa: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "9")]
    pub maintenance_url: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(sint32, optional, tag = "10")]
    pub use_maintenance_url: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "11")]
    pub download_url: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "12")]
    pub notice: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "13")]
    pub bundle_version_sd: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MaintenanceInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub market_info: ::core::option::Option<MaintenanceInfo>,
    #[prost(string, optional, tag = "2")]
    pub server_connect_info: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub connect_type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub user_type: ::core::option::Option<i32>,
}
/// From: Response\MercenaryScoutResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MercenaryScoutResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "2")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\MiniGameActionEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameActionEndResponse {
    #[prost(int64, optional, tag = "1")]
    pub my_best_record: ::core::option::Option<i64>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub new_clear_mission_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, optional, tag = "3")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniGameActionInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionMyBestRecord {
    #[prost(int32, optional, tag = "1")]
    pub monster_id: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "2")]
    pub record: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameActionInfoResponse {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub my_best_record: ::prost::alloc::vec::Vec<MiniGameActionMyBestRecord>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub clear_mission_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\MiniGameActionRankingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameActionRankingResponse {
    #[prost(message, repeated, tag = "1")]
    pub single_user_ranking_info: ::prost::alloc::vec::Vec<
        MiniGameActionSingleRankDbInfo,
    >,
    #[prost(message, optional, tag = "2")]
    pub single_my_ranking_info: ::core::option::Option<MiniGameActionSingleRankDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub multi_user_ranking_info: ::prost::alloc::vec::Vec<MiniGameActionMultiRankDbInfo>,
    #[prost(message, optional, tag = "4")]
    pub multi_my_ranking_info: ::core::option::Option<MiniGameActionMultiRankDbInfo>,
}
/// From: Response\MiniGameActionStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameActionStartResponse {}
/// From: Response\MiniGameBingoInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameBingoInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mini_game_bingo_info: ::prost::alloc::vec::Vec<MiniGameBingoDbInfo>,
}
/// From: Response\MiniGameBingoPlayResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameBingoPlayResponse {
    #[prost(message, optional, tag = "1")]
    pub before_mini_game_bingo_info: ::core::option::Option<MiniGameBingoDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub mini_game_bingo_info: ::core::option::Option<MiniGameBingoDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub open_bingo_index: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, repeated, tag = "4")]
    pub open_line_info: ::prost::alloc::vec::Vec<MiniGameBingoLineInfo>,
    #[prost(message, optional, tag = "5")]
    pub space_reward: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "6")]
    pub line_reward: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "7")]
    pub complete_reward: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniGameBoardInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameBoardInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mini_game_board_info: ::prost::alloc::vec::Vec<MiniGameBoardDbInfo>,
}
/// From: Response\MiniGameBoardPlayResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameBoardPlayResponse {
    #[prost(message, optional, tag = "1")]
    pub mini_game_board_info: ::core::option::Option<MiniGameBoardDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub mini_game_controller_info: ::prost::alloc::vec::Vec<MiniGameMoveControllerInfo>,
    #[prost(message, optional, tag = "3")]
    pub complete_reward: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "4")]
    pub scaffold_reward: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniGameDefenseEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameDefenseEndResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub reward_info: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\MiniGameDefenseInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameDefenseInfoResponse {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub reward_info: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\MiniGameDefenseMatchingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameDefenseMatchingResponse {}
/// From: Response\MiniGameDefenseStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameDefenseStartResponse {}
/// From: Response\MiniGameFieldEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameFieldEndResponse {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub highest_score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub last_reward_point: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "5")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(bool, optional, tag = "6")]
    pub is_possible_quick_reward: ::core::option::Option<bool>,
}
/// From: Response\MiniGameFieldInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameFieldInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<MiniGameDbInfo>,
}
/// From: Response\MiniGameFieldQuickRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameFieldQuickRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniGameFieldRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameFieldRewardResponse {
    #[prost(int32, optional, tag = "1")]
    pub last_reward_point: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub reward: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\MiniGameFieldScoreResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameFieldScoreResponse {
    #[prost(int32, optional, tag = "1")]
    pub current_score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub current_hp: ::core::option::Option<i32>,
}
/// From: Response\MiniGameFieldStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameFieldStartResponse {
    #[prost(int32, repeated, packed = "false", tag = "1")]
    pub field_object_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\MiniGameHubInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameHubInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mini_game_hub_info: ::prost::alloc::vec::Vec<MiniGameHubDbInfo>,
}
/// From: Response\MiniGameRelayServerInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RelayServerInfo {
    #[prost(string, optional, tag = "1")]
    pub region: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "2")]
    pub ip: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "3")]
    pub port: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRelayServerInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub server_info: ::prost::alloc::vec::Vec<RelayServerInfo>,
}
/// From: Response\MiniGameRhythmInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRhythmInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub play_info: ::prost::alloc::vec::Vec<MiniGameRhythmPlayDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniGameRhythmPlayEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRhythmPlayEndResponse {
    #[prost(message, optional, tag = "1")]
    pub play_info: ::core::option::Option<MiniGameRhythmPlayDbInfo>,
}
/// From: Response\MiniGameRhythmPlayStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRhythmPlayStartResponse {}
/// From: Response\MiniGameRhythmRankingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRhythmRankingResponse {
    #[prost(message, repeated, tag = "1")]
    pub rank_info: ::prost::alloc::vec::Vec<MiniGameRhythmRankDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub user_rank_info: ::core::option::Option<MiniGameRhythmRankDbInfo>,
}
/// From: Response\MiniGameRouletteDrawResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRouletteDrawResponse {
    #[prost(message, optional, tag = "1")]
    pub roulette_info: ::core::option::Option<MiniGameRouletteDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub roulette_reward: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "3")]
    pub roulette_accumulated_reward: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "4")]
    pub roulette_reward_info: ::prost::alloc::vec::Vec<MiniGameRouletteRewardInfo>,
}
/// From: Response\MiniGameRouletteInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRouletteInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub roulette_info: ::prost::alloc::vec::Vec<MiniGameRouletteDbInfo>,
}
/// From: Response\MiniGameRunEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRunEndResponse {
    #[prost(int32, optional, tag = "1")]
    pub best_record_value: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub last_reward_point: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(bool, optional, tag = "4")]
    pub is_possible_quick_reward: ::core::option::Option<bool>,
}
/// From: Response\MiniGameRunInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRunInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<MiniGameDbInfo>,
}
/// From: Response\MiniGameRunQuickRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameRunQuickRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniGameRunStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameRunStartResponse {}
/// From: Response\MiniGameSichuanEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSichuanEndResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "2")]
    pub world_best_record_owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "3")]
    pub world_best_record_user_id: ::core::option::Option<
        ::prost::alloc::string::String,
    >,
    #[prost(double, optional, tag = "4")]
    pub world_best_record_value: ::core::option::Option<f64>,
    #[prost(int32, optional, tag = "5")]
    pub rank: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "6")]
    pub is_block: ::core::option::Option<bool>,
}
/// From: Response\MiniGameSichuanInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSichuanInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<MiniGameSichuanScheduleInfo>,
}
/// From: Response\MiniGameSichuanRankingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSichuanRankingResponse {
    #[prost(message, repeated, tag = "1")]
    pub user_ranking_info: ::prost::alloc::vec::Vec<MiniGameSichuanRankDbInfo>,
}
/// From: Response\MiniGameSichuanStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSichuanStartResponse {}
/// From: Response\MiniGameSurvivalCharUpgradeResetResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSurvivalCharUpgradeResetResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniGameSurvivalCharUpgradeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalCharUpgradeResponse {}
/// From: Response\MiniGameSurvivalEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSurvivalEndResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, optional, tag = "2")]
    pub server_get_coin: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub server_total_exp: ::core::option::Option<i32>,
}
/// From: Response\MiniGameSurvivalInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSurvivalInfoResponse {
    #[prost(int32, optional, tag = "1")]
    pub event_schedule_id: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub active_char_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub active_map_group_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, optional, tag = "4")]
    pub user_rank_score: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "5")]
    pub top_rank_owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "6")]
    pub top_rank_user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "7")]
    pub top_rank_score: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "8")]
    pub stage_clear_info: ::prost::alloc::vec::Vec<MiniGameSurvivalStageClearDbInfo>,
    #[prost(message, repeated, tag = "9")]
    pub collection_info: ::prost::alloc::vec::Vec<MiniGameSurvivalCollectionDbInfo>,
    #[prost(message, repeated, tag = "10")]
    pub upgrade_info: ::prost::alloc::vec::Vec<MiniGameSurvivalUpgradeDbInfo>,
}
/// From: Response\MiniGameSurvivalPlayResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalPlayResponse {
    #[prost(int32, optional, tag = "1")]
    pub server_increase_coin: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub server_increase_exp: ::core::option::Option<i32>,
}
/// From: Response\MiniGameSurvivalRankingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSurvivalRankingResponse {
    #[prost(message, repeated, tag = "1")]
    pub rank_info: ::prost::alloc::vec::Vec<MiniGameSurvivalRankDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub user_rank_info: ::core::option::Option<MiniGameSurvivalRankDbInfo>,
}
/// From: Response\MiniGameSurvivalSkillSelectListResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniGameSurvivalSkillSelectListResponse {
    #[prost(int32, optional, tag = "1")]
    pub remain_reroll_count: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub skill_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\MiniGameSurvivalSkillUpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSurvivalSkillUpResponse {
    #[prost(message, repeated, tag = "1")]
    pub skill_info: ::prost::alloc::vec::Vec<MiniGameSurvivalSkillDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub increase_coin: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub recovery_hp: ::core::option::Option<i32>,
}
/// From: Response\MiniGameSurvivalStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniGameSurvivalStartResponse {
    #[prost(message, repeated, tag = "1")]
    pub skill_info: ::prost::alloc::vec::Vec<MiniGameSurvivalSkillDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub random_seed: ::core::option::Option<i32>,
}
/// From: Response\MiniPuzzleAllOpenResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniPuzzleAllOpenResponse {
    #[prost(message, optional, tag = "1")]
    pub before_puzzle_info: ::core::option::Option<MiniPuzzleDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub mini_puzzle_info: ::core::option::Option<MiniPuzzleDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub mini_puzzle_word_reward: ::prost::alloc::vec::Vec<MiniPuzzleWordReward>,
    #[prost(message, optional, tag = "4")]
    pub open_reward: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "5")]
    pub word_complete_reward: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniPuzzleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniPuzzleInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mini_puzzle_info: ::prost::alloc::vec::Vec<MiniPuzzleDbInfo>,
}
/// From: Response\MiniPuzzleOpenResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiniPuzzleOpenResponse {
    #[prost(message, optional, tag = "1")]
    pub before_puzzle_info: ::core::option::Option<MiniPuzzleDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub mini_puzzle_info: ::core::option::Option<MiniPuzzleDbInfo>,
    #[prost(message, optional, tag = "3")]
    pub mini_puzzle_word_reward: ::core::option::Option<MiniPuzzleWordReward>,
    #[prost(message, optional, tag = "4")]
    pub open_reward: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "5")]
    pub word_complete_reward: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MiniPuzzleRenewResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MiniPuzzleRenewResponse {
    #[prost(message, optional, tag = "1")]
    pub before_puzzle_info: ::core::option::Option<MiniPuzzleDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub mini_puzzle_info: ::core::option::Option<MiniPuzzleDbInfo>,
}
/// From: Response\MissionClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MissionClearResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "2")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\MissionInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MissionInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub mission_info: ::prost::alloc::vec::Vec<MissionDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub mission_section_reward_info: ::prost::alloc::vec::Vec<
        MissionSectionRewardDbInfo,
    >,
    #[prost(int64, optional, tag = "3")]
    pub daily_mission_reset_time: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "4")]
    pub weekly_mission_reset_time: ::core::option::Option<i64>,
}
/// From: Response\MissionSectionRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MissionSectionRewardResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub reward_char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
}
/// From: Response\MissionUpdateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MissionUpdateResponse {}
/// From: Response\MonsterHuntChangeTeamResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntChangeTeamResponse {}
/// From: Response\MonsterHuntDeckInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntDeckInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub monster_hunt_deck_info: ::prost::alloc::vec::Vec<MonsterHuntDeckDbInfo>,
}
/// From: Response\MonsterHuntDeckSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntDeckSaveResponse {}
/// From: Response\MonsterHuntPresetDeleteResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetDeleteResponse {}
/// From: Response\MonsterHuntPresetInfoChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetInfoChangeResponse {}
/// From: Response\MonsterHuntPresetInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntPresetInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub preset_info: ::prost::alloc::vec::Vec<PresetDbInfo>,
}
/// From: Response\MonsterHuntPresetSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetSaveResponse {}
/// From: Response\MonsterHuntPresetSlotAddResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonsterHuntPresetSlotAddResponse {}
/// From: Response\MonsterHuntPresetUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntPresetUseResponse {
    #[prost(message, repeated, tag = "1")]
    pub monster_hunt_deck_info: ::prost::alloc::vec::Vec<MonsterHuntDeckDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub char_equip_info: ::prost::alloc::vec::Vec<PresetUseEquipInfo>,
}
/// From: Response\MonsterHuntQuickBattleResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntQuickBattleResponse {
    #[prost(message, optional, tag = "1")]
    pub monster_hunt_user_info: ::core::option::Option<MonsterHuntUserDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub monster_hunt_reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "3")]
    pub monster_hunt_daily_reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, optional, tag = "4")]
    pub rank: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "5")]
    pub rank_top_percent: ::core::option::Option<f64>,
}
/// From: Response\MonsterHuntRankInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntRankUserInfo {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub user_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "6")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int32, optional, tag = "7")]
    pub rank: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "8")]
    pub score: ::core::option::Option<f64>,
    #[prost(int32, optional, tag = "9")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "10")]
    pub rank_top_percent: ::core::option::Option<f64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntRankInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub user_rank_info: ::prost::alloc::vec::Vec<MonsterHuntRankUserInfo>,
    #[prost(message, optional, tag = "2")]
    pub my_rank_info: ::core::option::Option<MonsterHuntRankUserInfo>,
}
/// From: Response\MonsterHuntScheduleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntScheduleInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub monster_hunt_schedule_info: ::prost::alloc::vec::Vec<MonsterHuntScheduleInfo>,
    #[prost(int32, optional, tag = "2")]
    pub start_regular_season: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub season_history: ::prost::alloc::vec::Vec<MonsterHuntScheduleHistory>,
}
/// From: Response\MonsterHuntSeasonRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterHuntSeasonRewardResponse {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub score: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub monster_hunt_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(double, optional, tag = "5")]
    pub rank_top_percent: ::core::option::Option<f64>,
}
/// From: Response\MonsterHuntUserInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MonsterHuntUserInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub monster_hunt_user_info: ::core::option::Option<MonsterHuntUserDbInfo>,
    #[prost(int32, optional, tag = "2")]
    pub rank: ::core::option::Option<i32>,
    #[prost(double, optional, tag = "3")]
    pub rank_top_percent: ::core::option::Option<f64>,
}
/// From: Response\MonsterInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
}
/// From: Response\MyLikeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyLikeInfoResponse {
    #[prost(int64, optional, tag = "1")]
    pub target_owner_index: ::core::option::Option<i64>,
}
/// From: Response\MyRoomExpandResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomExpandResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "2")]
    pub my_room: ::core::option::Option<MyRoomDbInfo>,
}
/// From: Response\MyRoomHideResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomHideResponse {}
/// From: Response\MyRoomItemInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomItemInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub trophy_info: ::prost::alloc::vec::Vec<MyRoomTrophyDbInfo>,
}
/// From: Response\MyRoomLikeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomLikeResponse {
    #[prost(int32, optional, tag = "1")]
    pub monthly_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub total_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub date: ::core::option::Option<i64>,
}
/// From: Response\MyRoomMoveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomMoveResponse {}
/// From: Response\MyRoomNameChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomNameChangeResponse {}
/// From: Response\MyRoomPrimaryChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomPrimaryChangeResponse {}
/// From: Response\MyRoomSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomSaveResponse {}
/// From: Response\MyRoomSearchFriendResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomSearchFriendResponse {
    #[prost(message, repeated, tag = "1")]
    pub room_info: ::prost::alloc::vec::Vec<MyRoomUserInfo>,
}
/// From: Response\MyRoomSearchGuildResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomSearchGuildResponse {
    #[prost(message, repeated, tag = "1")]
    pub room_info: ::prost::alloc::vec::Vec<MyRoomUserInfo>,
}
/// From: Response\MyRoomSearchRecommendResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomSearchRecommendResponse {
    #[prost(message, repeated, tag = "1")]
    pub room_info: ::prost::alloc::vec::Vec<MyRoomUserInfo>,
}
/// From: Response\MyRoomShopBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomShopBuyResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\MyRoomShopInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MyRoomShopDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub buy_count: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomShopInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub shop_buy_info: ::prost::alloc::vec::Vec<MyRoomShopDbInfo>,
}
/// From: Response\MyRoomUserInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MyRoomUserInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub room_info: ::core::option::Option<MyRoomUserInfo>,
    #[prost(bool, optional, tag = "2")]
    pub sync_use_count: ::core::option::Option<bool>,
}
/// From: Response\NoticeDetailInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NoticeDetailInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub notice_info: ::core::option::Option<NoticeDbInfo>,
}
/// From: Response\NoticeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NoticeInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub notice_info: ::prost::alloc::vec::Vec<NoticeDbInfo>,
}
/// From: Response\OverwhelmResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OverwhelmResponse {
    #[prost(message, repeated, tag = "1")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub update_quest_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, optional, tag = "3")]
    pub reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "4")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\PackBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackBuyResponse {
    #[prost(message, optional, tag = "1")]
    pub pack_info: ::core::option::Option<PackDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, repeated, tag = "3")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
}
/// From: Response\PackDetailResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackDetailResponse {
    #[prost(message, optional, tag = "1")]
    pub pack_info: ::core::option::Option<pack_detail_response::PackDetail>,
}
/// Nested message and enum types in `PackDetailResponse`.
pub mod pack_detail_response {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct PackDetail {
        #[prost(int32, optional, tag = "1")]
        pub id: ::core::option::Option<i32>,
    }
}
/// From: Response\PackEventBattleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackEventBattleInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<PackEventBattleDbInfo>,
}
/// From: Response\PackEventStoryClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackEventStoryClearResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "2")]
    pub clear_info: ::core::option::Option<PackEventStoryDbInfo>,
}
/// From: Response\PackEventStoryInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackEventStoryInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<PackEventStoryDbInfo>,
}
/// From: Response\PackEventStoryReplayClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackEventStoryReplayClearResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\PackInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub pack_info: ::prost::alloc::vec::Vec<PackDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub quest_level_info: ::prost::alloc::vec::Vec<QuestLevelDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub pack_clear_reward_info: ::prost::alloc::vec::Vec<PackClearRewardDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub evil_castle_clear_reward_info: ::prost::alloc::vec::Vec<
        EvilCastleClearRewardDbInfo,
    >,
}
/// From: Response\PackInGameInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackInGameInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub quest_info: ::prost::alloc::vec::Vec<QuestDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub clear_quest_ids: ::prost::alloc::vec::Vec<i32>,
    #[prost(string, optional, tag = "4")]
    pub position: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "5")]
    pub talent_npc_info: ::prost::alloc::vec::Vec<TalentNpcDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub talent_object_info: ::prost::alloc::vec::Vec<TalentObjectDbInfo>,
    #[prost(message, repeated, tag = "8")]
    pub field_buff_info: ::prost::alloc::vec::Vec<FieldBuffDbInfo>,
    #[prost(message, repeated, tag = "9")]
    pub reputation_info: ::prost::alloc::vec::Vec<ReputationDbInfo>,
    #[prost(message, repeated, tag = "10")]
    pub map_active_info: ::prost::alloc::vec::Vec<MapActiveInfo>,
    #[prost(int32, repeated, packed = "false", tag = "11")]
    pub research_object_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, optional, tag = "12")]
    pub hunting_ground_info: ::core::option::Option<HuntingGroundDbInfo>,
    #[prost(message, repeated, tag = "13")]
    pub talent_skill_info: ::prost::alloc::vec::Vec<TalentSkillDbInfo>,
    #[prost(message, repeated, tag = "14")]
    pub content_rank_statue_info: ::prost::alloc::vec::Vec<ContentRankStatueDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "15")]
    pub statue_reward_obtain_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, optional, tag = "16")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\PackJamEventResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackJamEventResponse {
    #[prost(message, optional, tag = "1")]
    pub pack_event_reward: ::core::option::Option<ItemDbInfo>,
}
/// From: Response\PackPreviewInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackPreviewInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub quest_info: ::prost::alloc::vec::Vec<QuestDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub quest_title_info: ::prost::alloc::vec::Vec<QuestTitleDbInfo>,
    #[prost(bool, optional, tag = "3")]
    pub is_pack_event_reward: ::core::option::Option<bool>,
}
/// From: Response\PackRewardObjectCountResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackRewardObjectCountResponse {
    #[prost(message, repeated, tag = "1")]
    pub count_info: ::prost::alloc::vec::Vec<PackRewardObjectCountInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackRewardObjectCountInfo {
    #[prost(enumeration = "DefinePackRewardObjectCountType", optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub max_count: ::core::option::Option<i32>,
}
/// From: Response\PackSubQuestClearInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackSubQuestClearInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub sub_quest_clear_info: ::prost::alloc::vec::Vec<PackSubQuestClearInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PackSubQuestClearInfo {
    #[prost(int32, optional, tag = "1")]
    pub pack_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub sub_quest_clear_count: ::core::option::Option<i32>,
}
/// From: Response\PassBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PassBuyResponse {
    #[prost(int32, optional, tag = "1")]
    pub exp: ::core::option::Option<i32>,
}
/// From: Response\PassInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PassInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub pass_info: ::prost::alloc::vec::Vec<PassDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub pass_reward_info: ::prost::alloc::vec::Vec<PassRewardDbInfo>,
}
/// From: Response\PassRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PassRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, optional, tag = "2")]
    pub newbie_pass_step: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "3")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\PersonalInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PersonalDbInfo {
    #[prost(int32, optional, tag = "1")]
    pub id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "2")]
    pub title: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "3")]
    pub url: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int64, optional, tag = "4")]
    pub start_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "5")]
    pub end_date: ::core::option::Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PersonalInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub personal_info: ::prost::alloc::vec::Vec<PersonalDbInfo>,
}
/// From: Response\PictorialBookInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PictorialBookInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub pictorialbook_info: ::prost::alloc::vec::Vec<PictorialBookDbInfo>,
}
/// From: Response\PingCheckResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PingCheckResponse {}
/// From: Response\PlatformLoginResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlatformLoginResponse {
    #[prost(message, optional, tag = "1")]
    pub user_info: ::core::option::Option<UserDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub user_guild_info: ::core::option::Option<GuildMemberDbInfo>,
    #[prost(message, optional, tag = "3")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
}
/// From: Response\PopularCostumeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PopularCostumeInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<PopularCostumeCountDbInfo>,
}
/// From: Response\PopularEquipInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PopularEquipInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info: ::prost::alloc::vec::Vec<PopularEquipDbInfo>,
}
/// From: Response\PresetAddSlotResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetAddSlotResponse {}
/// From: Response\PresetDeleteResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetDeleteResponse {}
/// From: Response\PresetInfoChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetInfoChangeResponse {}
/// From: Response\PresetInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PresetInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub preset_info: ::prost::alloc::vec::Vec<PresetDbInfo>,
}
/// From: Response\PresetSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PresetSaveResponse {}
/// From: Response\PresetUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PresetUseResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub char_equip_info: ::prost::alloc::vec::Vec<PresetUseEquipInfo>,
}
/// From: Response\PrestigeSkinInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PrestigeSkinInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub prestige_skin_info: ::prost::alloc::vec::Vec<PrestigeSkinDbInfo>,
}
/// From: Response\PrestigeSkinSetResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PrestigeSkinSetResponse {
    #[prost(int32, optional, tag = "1")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
}
/// From: Response\PvpBattleDeckInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleDeckInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub attack_deck_info: ::prost::alloc::vec::Vec<PvpBattleUserDeckInfo>,
    #[prost(message, repeated, tag = "2")]
    pub attack_deck_item_info: ::prost::alloc::vec::Vec<ContentsCharItemInfo>,
    #[prost(message, repeated, tag = "3")]
    pub defense_deck_info: ::prost::alloc::vec::Vec<PvpBattleUserDeckInfo>,
    #[prost(message, repeated, tag = "4")]
    pub defense_deck_item_info: ::prost::alloc::vec::Vec<ContentsCharItemInfo>,
}
/// From: Response\PvpBattleDeckSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleDeckSaveResponse {}
/// From: Response\PvpBattleEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleEndResponse {
    #[prost(int32, optional, tag = "1")]
    pub battle_result: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub char_partner_info: ::prost::alloc::vec::Vec<CharPartnerDbInfo>,
    #[prost(int32, optional, tag = "4")]
    pub change_vp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub continue_win_vp: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "6")]
    pub battle_statistics_info: ::core::option::Option<BattleStatisticsDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "7")]
    pub once_reward_info: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\PvpBattleHistoryDeckInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleHistoryDeckInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub user_deck_full_info: ::core::option::Option<PvpBattleUserDeckFullInfo>,
    #[prost(message, optional, tag = "2")]
    pub enemy_deck_full_info: ::core::option::Option<PvpBattleUserDeckFullInfo>,
}
/// From: Response\PvpBattleHistoryResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleHistoryResponse {
    #[prost(message, repeated, tag = "1")]
    pub attack_history_info: ::prost::alloc::vec::Vec<PvpBattleHistoryInfo>,
    #[prost(message, repeated, tag = "2")]
    pub defense_history_info: ::prost::alloc::vec::Vec<PvpBattleHistoryInfo>,
    #[prost(int32, optional, tag = "3")]
    pub season_win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub season_lose_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "5")]
    pub season_attack_win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "6")]
    pub season_attack_lose_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub season_defense_win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub season_defense_lose_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub prev_season_attack_win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub prev_season_attack_lose_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "11")]
    pub prev_season_defense_win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "12")]
    pub prev_season_defense_lose_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "13")]
    pub deck_season_attack_win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "14")]
    pub deck_season_attack_lose_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "15")]
    pub deck_season_defense_win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "16")]
    pub deck_season_defense_lose_count: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "17")]
    pub deck_season_attack_reset_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "18")]
    pub deck_season_defense_reset_date: ::core::option::Option<i64>,
}
/// From: Response\PvpBattleMatchingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleMatchingResponse {
    #[prost(int32, optional, tag = "1")]
    pub user_vp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub user_rank: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "3")]
    pub user_buff_stat_info: ::prost::alloc::vec::Vec<PictorialBuffStatDbInfo>,
    #[prost(int64, optional, tag = "4")]
    pub enemy_owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "5")]
    pub enemy_user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "6")]
    pub enemy_exp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub enemy_vp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub enemy_rank: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "9")]
    pub enemy_guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int32, optional, tag = "10")]
    pub enemy_portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "11")]
    pub enemy_portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "12")]
    pub enemy_deck_info: ::prost::alloc::vec::Vec<PvpBattleUserDeckInfo>,
    #[prost(message, repeated, tag = "13")]
    pub enemy_char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "14")]
    pub enemy_costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "15")]
    pub enemy_equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(int32, optional, tag = "16")]
    pub battle_random_seed: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "17")]
    pub event_schedule_info: ::core::option::Option<EventScheduleDbInfo>,
    #[prost(message, repeated, tag = "18")]
    pub enemy_buff_stat_info: ::prost::alloc::vec::Vec<PictorialBuffStatDbInfo>,
    #[prost(message, repeated, tag = "19")]
    pub enemy_awake_info: ::prost::alloc::vec::Vec<CharAwakeDbInfo>,
}
/// From: Response\PvpBattleOnceRewardInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleOnceRewardInfoResponse {
    #[prost(int32, repeated, packed = "false", tag = "1")]
    pub once_reward_info: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\PvpBattleRankingResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleRankingResponse {
    #[prost(message, repeated, tag = "1")]
    pub user_ranking_info: ::prost::alloc::vec::Vec<PvpBattleRankUserInfo>,
    #[prost(message, optional, tag = "2")]
    pub my_ranking_info: ::core::option::Option<PvpBattleRankUserInfo>,
}
/// From: Response\PvpBattleRankUserDetailResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleRankUserDetailResponse {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "2")]
    pub win_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub lose_count: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub attack_deck_info: ::core::option::Option<PvpBattleUserDeckFullInfo>,
    #[prost(message, optional, tag = "5")]
    pub defence_deck_info: ::core::option::Option<PvpBattleUserDeckFullInfo>,
}
/// From: Response\PvpBattleReplayInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleReplayInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub blue_deck_full_info: ::core::option::Option<PvpBattleUserDeckFullInfo>,
    #[prost(message, optional, tag = "2")]
    pub red_deck_full_info: ::core::option::Option<PvpBattleUserDeckFullInfo>,
    #[prost(int32, repeated, packed = "false", tag = "3")]
    pub battle_random_seed: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\PvpBattleResetResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleResetResponse {
    #[prost(int64, optional, tag = "1")]
    pub deck_season_attack_reset_date: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "2")]
    pub deck_season_defense_reset_date: ::core::option::Option<i64>,
}
/// From: Response\PvpBattleRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpBattleRewardResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\PvpBattleStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleStartResponse {
    #[prost(int32, optional, tag = "1")]
    pub battle_random_seed: ::core::option::Option<i32>,
}
/// From: Response\PvpBattleUserInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PvpBattleUserInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub base_info: ::core::option::Option<PvpBattleUserBaseInfo>,
    #[prost(bool, optional, tag = "2")]
    pub is_season_reward: ::core::option::Option<bool>,
    #[prost(int32, optional, tag = "3")]
    pub pvp_table_change_season: ::core::option::Option<i32>,
    #[prost(enumeration = "DefineBattleEngineType", optional, tag = "4")]
    pub engine_type: ::core::option::Option<i32>,
}
/// From: Response\PvpContentsItemRenewResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpContentsItemRenewResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_item_info: ::prost::alloc::vec::Vec<ContentsCharItemInfo>,
}
/// From: Response\PvpSeasonRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PvpSeasonRewardResponse {
    #[prost(int32, optional, tag = "1")]
    pub rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub vp: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int32, optional, tag = "4")]
    pub reward_season: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "5")]
    pub once_reward_info: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\QuestAcceptResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestAcceptResponse {
    #[prost(message, optional, tag = "1")]
    pub quest_info: ::core::option::Option<QuestDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub give_quest_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\QuestClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestClearResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "2")]
    pub quest_info: ::core::option::Option<QuestDbInfo>,
    #[prost(int32, optional, tag = "3")]
    pub clear_quest_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "4")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub give_quest_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub remove_quest_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "8")]
    pub reputation_info: ::prost::alloc::vec::Vec<ReputationDbInfo>,
    #[prost(message, optional, tag = "9")]
    pub quest_level_info: ::core::option::Option<QuestLevelDbInfo>,
    #[prost(int64, repeated, packed = "false", tag = "10")]
    pub delete_char_inven_index: ::prost::alloc::vec::Vec<i64>,
    #[prost(message, repeated, tag = "11")]
    pub pack_info: ::prost::alloc::vec::Vec<PackDbInfo>,
    #[prost(message, optional, tag = "12")]
    pub ending_reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "13")]
    pub immortal_reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "14")]
    pub forced_revive_char_inven_index: ::core::option::Option<i64>,
    #[prost(int64, optional, tag = "15")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\QuestGiveUpResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestGiveUpResponse {
    #[prost(int32, optional, tag = "1")]
    pub quest_id: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub deck_info: ::prost::alloc::vec::Vec<DeckDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub remove_quest_item: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(int64, repeated, packed = "false", tag = "4")]
    pub delete_char_inven_index: ::prost::alloc::vec::Vec<i64>,
}
/// From: Response\QuestImmortalResetResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QuestImmortalResetResponse {}
/// From: Response\QuestInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub quest_info: ::prost::alloc::vec::Vec<QuestDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub clear_quest_ids: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\QuestMaxClearInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestMaxClearInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub max_clear_info: ::prost::alloc::vec::Vec<QuestMaxClearDbInfo>,
}
/// From: Response\QuestUpdateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestUpdateResponse {
    #[prost(int32, optional, tag = "1")]
    pub update_quest_id: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "2")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\QuickBattleResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuickBattleResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\RecipeInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RecipeInfoResponse {
    #[prost(int32, optional, tag = "1")]
    pub seq: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub recipe_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\RecommendDeckInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RecommendDeckInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub recommend_deck_info: ::prost::alloc::vec::Vec<RecommendDeckDbInfo>,
}
/// From: Response\RecommendDeckUserOptionSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RecommendDeckUserOptionSaveResponse {}
/// From: Response\RefreshTokenResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RefreshTokenResponse {
    #[prost(string, optional, tag = "1")]
    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
}
/// From: Response\ReportUserResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ReportUserResponse {}
/// From: Response\ReputationInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReputationInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub reputation_info: ::prost::alloc::vec::Vec<ReputationDbInfo>,
}
/// From: Response\RootSortIdInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RootSortIdInfo {
    #[prost(int32, optional, tag = "1")]
    pub r#type: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "3")]
    pub sort_id: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RootSortIdInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub root_sort_info: ::prost::alloc::vec::Vec<RootSortIdInfo>,
}
/// From: Response\SaveFieldCharControlDeckTypeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SaveFieldCharControlDeckTypeResponse {}
/// From: Response\SaveTotalBattlePowerResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SaveTotalBattlePowerResponse {
    #[prost(int32, optional, tag = "1")]
    pub highest_total_battle_power: ::core::option::Option<i32>,
}
/// From: Response\SaveUserPositionResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SaveUserPositionResponse {}
/// From: Response\ScheduleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScheduleInfoResponse {
    #[prost(int32, optional, tag = "1")]
    pub schedule_calculate_mile_seconds: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub schedule_info: ::prost::alloc::vec::Vec<ScheduleDbInfo>,
}
/// From: Response\SeasonRewardInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SeasonRewardInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub reward_info: ::prost::alloc::vec::Vec<SeasonRewardDbInfo>,
}
/// From: Response\SelectPlatformOtherDataResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SelectPlatformOtherDataResponse {
    #[prost(message, optional, tag = "1")]
    pub platform_user_info: ::core::option::Option<UserDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub guest_user_info: ::core::option::Option<UserDbInfo>,
}
/// From: Response\ServerInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ServerInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub info_list: ::prost::alloc::vec::Vec<server_info_response::ServerInfo>,
}
/// Nested message and enum types in `ServerInfoResponse`.
pub mod server_info_response {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "PascalCase")]
    #[serde(default)]
    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct ServerInfo {
        #[prost(sint32, optional, tag = "1")]
        pub region: ::core::option::Option<i32>,
        #[prost(string, optional, tag = "2")]
        pub game_server_info: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "3")]
        pub cdn_info: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(sint32, optional, tag = "4")]
        pub open_flag: ::core::option::Option<i32>,
        #[prost(string, optional, tag = "5")]
        pub log_server_info: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "6")]
        pub char_server_info: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "7")]
        pub coupon_web_info: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "8")]
        pub game_data_info: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "9")]
        pub game_data_version: ::core::option::Option<::prost::alloc::string::String>,
    }
}
/// From: Response\ServerNowTimeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServerNowTimeResponse {
    #[prost(int64, optional, tag = "1")]
    pub server_time: ::core::option::Option<i64>,
}
/// From: Response\ShopBuyResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopBuyResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(message, optional, tag = "2")]
    pub product_info: ::core::option::Option<ProductDbInfo>,
    #[prost(int64, optional, tag = "3")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\ShopInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopInfoResponse {
    #[prost(message, optional, tag = "1")]
    pub shop_info: ::core::option::Option<ShopDbInfo>,
}
/// From: Response\ShopOpenResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ShopOpenResponse {
    #[prost(int32, optional, tag = "1")]
    pub reputation_state: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "2")]
    pub is_talent_skill_discount: ::core::option::Option<bool>,
}
/// From: Response\ShopSellResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopSellResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\SkyWayEnterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SkyWayEnterResponse {
    #[prost(message, repeated, tag = "1")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
}
/// From: Response\SkyWayInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SkyWayInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub sky_way_info: ::prost::alloc::vec::Vec<SkyWayDbInfo>,
}
/// From: Response\SkyWayScheduleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SkyWayScheduleInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub schedule_info: ::prost::alloc::vec::Vec<SkyWayScheduleDbInfo>,
}
/// From: Response\StatueObjectRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StatueObjectRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\StorageAddSlotResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StorageAddSlotResponse {}
/// From: Response\SupporterBattleInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SupporterBattleInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub friend_supporter_info: ::prost::alloc::vec::Vec<SupporterDeckInfo>,
    #[prost(message, repeated, tag = "2")]
    pub recommended_supporter_info: ::prost::alloc::vec::Vec<SupporterDeckInfo>,
}
/// From: Response\SupporterBorrowResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SupporterBorrowResponse {
    #[prost(message, optional, tag = "1")]
    pub supporter_info: ::core::option::Option<SupporterDeckInfo>,
    #[prost(bool, optional, tag = "2")]
    pub can_request_friend: ::core::option::Option<bool>,
    #[prost(message, optional, tag = "3")]
    pub supporter_char_info: ::core::option::Option<GuildSupporterBattleCharInfo>,
}
/// From: Response\SupporterDetailResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterDetailResponse {
    #[prost(message, optional, tag = "1")]
    pub supporter_info: ::core::option::Option<SupporterSlotInfo>,
}
/// From: Response\SupporterInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SupporterInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub supporter_info: ::prost::alloc::vec::Vec<CostumeBaseDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub guild_supporter_info: ::prost::alloc::vec::Vec<CostumeBaseDbInfo>,
}
/// From: Response\SupporterRegisterResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterRegisterResponse {
    #[prost(message, optional, tag = "1")]
    pub supporter_slot: ::core::option::Option<SupporterSlotInfo>,
}
/// From: Response\SupporterRemoveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SupporterRemoveResponse {}
/// From: Response\SupporterRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SupporterRewardResponse {
    #[prost(int64, repeated, packed = "false", tag = "1")]
    pub id: ::prost::alloc::vec::Vec<i64>,
    #[prost(message, optional, tag = "2")]
    pub reward_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\SupporterStatusResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SupporterStatusResponse {
    #[prost(message, repeated, tag = "1")]
    pub supporter_rental_history: ::prost::alloc::vec::Vec<SupporterUsageInfo>,
    #[prost(message, repeated, tag = "2")]
    pub supporter_info: ::prost::alloc::vec::Vec<CostumeBaseDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub guild_supporter_info: ::prost::alloc::vec::Vec<CostumeBaseDbInfo>,
    #[prost(int32, optional, tag = "4")]
    pub daily_reward_claim_count: ::core::option::Option<i32>,
}
/// From: Response\TalentSkillUpgradeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TalentSkillUpgradeResponse {
    #[prost(message, repeated, tag = "1")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
}
/// From: Response\TalentSkillUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TalentSkillUseResponse {
    #[prost(message, optional, tag = "1")]
    pub talent_skill_info: ::core::option::Option<TalentSkillDbInfo>,
    #[prost(message, optional, tag = "2")]
    pub talent_npc_info: ::core::option::Option<TalentNpcDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub item_info: ::prost::alloc::vec::Vec<ItemDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub equip_info: ::prost::alloc::vec::Vec<EquipDbInfo>,
    #[prost(message, repeated, tag = "5")]
    pub reward_char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
    #[prost(message, repeated, tag = "6")]
    pub costume_info: ::prost::alloc::vec::Vec<CostumeDbInfo>,
    #[prost(message, repeated, tag = "7")]
    pub reputation_info: ::prost::alloc::vec::Vec<ReputationDbInfo>,
    #[prost(message, repeated, tag = "8")]
    pub dispatch_info: ::prost::alloc::vec::Vec<DispatchDbInfo>,
    #[prost(message, repeated, tag = "9")]
    pub monster_info: ::prost::alloc::vec::Vec<MonsterDbInfo>,
    #[prost(int32, optional, tag = "10")]
    pub add_talent_exp: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "11")]
    pub is_success: ::core::option::Option<bool>,
}
/// From: Response\TalentSlotSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TalentSlotSaveResponse {}
/// From: Response\TimePauseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TimePauseResponse {
    #[prost(int32, optional, tag = "1")]
    pub add_seconds: ::core::option::Option<i32>,
}
/// From: Response\TodayQuestInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TodayQuestInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub quest_info: ::prost::alloc::vec::Vec<QuestDbInfo>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub clear_quest_ids: ::prost::alloc::vec::Vec<i32>,
    #[prost(int64, optional, tag = "3")]
    pub today_end_time: ::core::option::Option<i64>,
    #[prost(int32, repeated, packed = "false", tag = "4")]
    pub today_quest_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\TotalWarBattleEndResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarBattleEndResponse {
    #[prost(message, repeated, tag = "1")]
    pub score_info: ::prost::alloc::vec::Vec<BattleDamageDbInfo>,
    #[prost(double, optional, tag = "2")]
    pub top_percent: ::core::option::Option<f64>,
}
/// From: Response\TotalWarBattleStartResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarBattleStartResponse {
    #[prost(int32, optional, tag = "1")]
    pub battle_random_seed: ::core::option::Option<i32>,
    #[prost(message, repeated, tag = "2")]
    pub blue_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "3")]
    pub red_char_info: ::prost::alloc::vec::Vec<BattleCharDbInfo>,
    #[prost(message, repeated, tag = "4")]
    pub buff_stat_info: ::prost::alloc::vec::Vec<PictorialBuffStatDbInfo>,
    #[prost(message, optional, tag = "5")]
    pub event_schedule_info: ::core::option::Option<EventScheduleDbInfo>,
}
/// From: Response\TotalWarContentsItemRenewResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarContentsItemRenewResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_item_info: ::prost::alloc::vec::Vec<ContentsCharItemInfo>,
}
/// From: Response\TotalWarDeckInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarDeckInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub deck_info: ::prost::alloc::vec::Vec<TotalWarDeckDbInfo>,
    #[prost(message, repeated, tag = "2")]
    pub contents_item_info: ::prost::alloc::vec::Vec<ContentsCharItemInfo>,
}
/// From: Response\TotalWarDeckPresetInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarDeckPresetInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub preset_info: ::prost::alloc::vec::Vec<TotalWarDeckPresetDbInfo>,
}
/// From: Response\TotalWarDeckPresetSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarDeckPresetSaveResponse {}
/// From: Response\TotalWarDeckPresetSlotAddResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarDeckPresetSlotAddResponse {}
/// From: Response\TotalWarDeckSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarDeckSaveResponse {}
/// From: Response\TotalWarInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarInfoResponse {
    #[prost(message, repeated, tag = "1")]
    pub score_info: ::prost::alloc::vec::Vec<BattleDamageDbInfo>,
    #[prost(double, optional, tag = "2")]
    pub top_percent: ::core::option::Option<f64>,
    #[prost(int64, optional, tag = "3")]
    pub top_ranker_score: ::core::option::Option<i64>,
    #[prost(enumeration = "DefineBattleEngineType", optional, tag = "4")]
    pub engine_type: ::core::option::Option<i32>,
}
/// From: Response\TotalWarPresetDeleteResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarPresetDeleteResponse {}
/// From: Response\TotalWarPresetInfoChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarPresetInfoChangeResponse {}
/// From: Response\TotalWarRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TotalWarRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\TotalWarRewardStateResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TotalWarRewardStateResponse {
    #[prost(bool, optional, tag = "1")]
    pub is_obtainable_daily_reward: ::core::option::Option<bool>,
}
/// From: Response\TrapDamageResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrapDamageResponse {
    #[prost(message, repeated, tag = "1")]
    pub char_info: ::prost::alloc::vec::Vec<CharDbInfo>,
}
/// From: Response\TutorialClearResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TutorialClearResponse {}
/// From: Response\TutorialInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TutorialInfoResponse {
    #[prost(int32, repeated, packed = "false", tag = "1")]
    pub tutorial_clear_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\UpdateUserContentsInfoOptionResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UpdateUserContentsInfoOptionResponse {}
/// From: Response\UseRandomBoxResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UseRandomBoxResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\UserContentsInfoOptionResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserContentsInfoOptionResponse {
    #[prost(bool, optional, tag = "1")]
    pub is_all_private: ::core::option::Option<bool>,
    #[prost(int32, repeated, packed = "false", tag = "2")]
    pub options: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\UserContentsInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserContentsInfoResponse {
    #[prost(int64, optional, tag = "1")]
    pub owner_index: ::core::option::Option<i64>,
    #[prost(string, optional, tag = "2")]
    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "3")]
    pub title_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "4")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "5")]
    pub greeting: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "6")]
    pub pvp_season: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "7")]
    pub pvp_vp: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "8")]
    pub pvp_rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "9")]
    pub monsterhunt_rank: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "10")]
    pub like_count: ::core::option::Option<i32>,
    #[prost(bool, optional, tag = "11")]
    pub is_all_private: ::core::option::Option<bool>,
    #[prost(int32, repeated, packed = "false", tag = "12")]
    pub options: ::prost::alloc::vec::Vec<i32>,
    #[prost(bool, optional, tag = "13")]
    pub is_friend: ::core::option::Option<bool>,
    #[prost(message, optional, tag = "14")]
    pub room_info: ::core::option::Option<MyRoomUserInfo>,
    #[prost(int64, optional, tag = "15")]
    pub total_war_score: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "16")]
    pub total_battle_power: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "17")]
    pub guild_base_info: ::core::option::Option<GuildBaseDbInfo>,
    #[prost(int32, optional, tag = "18")]
    pub my_room_like_count: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "19")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "20")]
    pub guild_raid_rank: ::core::option::Option<i32>,
    #[prost(int64, optional, tag = "21")]
    pub guild_raid_score: ::core::option::Option<i64>,
    #[prost(int32, optional, tag = "22")]
    pub evil_castle_greed_tower_top_floor: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "23")]
    pub evil_castle_rage_tower_top_floor: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "24")]
    pub evil_castle_envy_tower_top_floor: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "25")]
    pub evil_castle_rogue_like_level: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "26")]
    pub achievement_level: ::core::option::Option<i32>,
    #[prost(int32, repeated, packed = "false", tag = "27")]
    pub sort_id: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, optional, tag = "28")]
    pub id_card_info: ::core::option::Option<IdCardInfo>,
    #[prost(double, optional, tag = "29")]
    pub monsterhunt_rank_top_percent: ::core::option::Option<f64>,
    #[prost(message, repeated, tag = "30")]
    pub supporter_info: ::prost::alloc::vec::Vec<CostumeBaseDbInfo>,
}
/// From: Response\UseResourceItemResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UseResourceItemResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
    #[prost(int64, optional, tag = "2")]
    pub first_auto_revive_set_char_inven_index: ::core::option::Option<i64>,
}
/// From: Response\UserGreetingChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserGreetingChangeResponse {}
/// From: Response\UserLevelRewardResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserLevelRewardResponse {
    #[prost(message, optional, tag = "1")]
    pub reward_info_bundle: ::core::option::Option<RewardDbInfoBundle>,
}
/// From: Response\UserNicknameChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserNicknameChangeResponse {}
/// From: Response\UserPortraitChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserPortraitChangeResponse {
    #[prost(int32, optional, tag = "1")]
    pub portrait_costume_id: ::core::option::Option<i32>,
    #[prost(int32, optional, tag = "2")]
    pub portrait_costume_design_id: ::core::option::Option<i32>,
}
/// From: Response\UserTitleChangeResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserTitleChangeResponse {}
/// From: Response\WaypointInfoResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WaypointInfoResponse {
    #[prost(int32, repeated, packed = "false", tag = "1")]
    pub waypoint_id: ::prost::alloc::vec::Vec<i32>,
}
/// From: Response\WaypointSaveResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WaypointSaveResponse {}
/// From: Response\WaypointUseResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WaypointUseResponse {}
/// From: Commons\Define.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePackType {
    PackStory = 0,
    PackChar = 1,
    PackTutorial = 2,
    PackPvp = 3,
    PackEvilCastle = 4,
    PackSkyWay = 5,
    PackEvent = 6,
    PackTotalWar = 7,
    PackGuildRaid = 8,
    PackCafeteria = 9,
    PackHidden = 100,
}
impl DefinePackType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PackStory => "PACK_STORY",
            Self::PackChar => "PACK_CHAR",
            Self::PackTutorial => "PACK_TUTORIAL",
            Self::PackPvp => "PACK_PVP",
            Self::PackEvilCastle => "PACK_EvilCastle",
            Self::PackSkyWay => "PACK_SKY_WAY",
            Self::PackEvent => "PACK_EVENT",
            Self::PackTotalWar => "PACK_TOTAL_WAR",
            Self::PackGuildRaid => "PACK_GUILD_RAID",
            Self::PackCafeteria => "PACK_CAFETERIA",
            Self::PackHidden => "PACK_HIDDEN",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PACK_STORY" => Some(Self::PackStory),
            "PACK_CHAR" => Some(Self::PackChar),
            "PACK_TUTORIAL" => Some(Self::PackTutorial),
            "PACK_PVP" => Some(Self::PackPvp),
            "PACK_EvilCastle" => Some(Self::PackEvilCastle),
            "PACK_SKY_WAY" => Some(Self::PackSkyWay),
            "PACK_EVENT" => Some(Self::PackEvent),
            "PACK_TOTAL_WAR" => Some(Self::PackTotalWar),
            "PACK_GUILD_RAID" => Some(Self::PackGuildRaid),
            "PACK_CAFETERIA" => Some(Self::PackCafeteria),
            "PACK_HIDDEN" => Some(Self::PackHidden),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineResourceType {
    RtNormal = 0,
    RtCharLevelUpMaterial = 1,
    RtCostumeBook = 2,
    RtEquipmentMaterial = 3,
    RtAlchemyMaterial = 4,
    RtCurrencyResource = 5,
    RtSelectCostume = 6,
}
impl DefineResourceType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::RtNormal => "RT_NORMAL",
            Self::RtCharLevelUpMaterial => "RT_CHAR_LEVEL_UP_MATERIAL",
            Self::RtCostumeBook => "RT_COSTUME_BOOK",
            Self::RtEquipmentMaterial => "RT_EQUIPMENT_MATERIAL",
            Self::RtAlchemyMaterial => "RT_ALCHEMY_MATERIAL",
            Self::RtCurrencyResource => "RT_CURRENCY_RESOURCE",
            Self::RtSelectCostume => "RT_SELECT_COSTUME",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "RT_NORMAL" => Some(Self::RtNormal),
            "RT_CHAR_LEVEL_UP_MATERIAL" => Some(Self::RtCharLevelUpMaterial),
            "RT_COSTUME_BOOK" => Some(Self::RtCostumeBook),
            "RT_EQUIPMENT_MATERIAL" => Some(Self::RtEquipmentMaterial),
            "RT_ALCHEMY_MATERIAL" => Some(Self::RtAlchemyMaterial),
            "RT_CURRENCY_RESOURCE" => Some(Self::RtCurrencyResource),
            "RT_SELECT_COSTUME" => Some(Self::RtSelectCostume),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineBattleModeType {
    None = 0,
    Quest = 1,
    NormalHunt = 2,
    FieldBoxBattle = 3,
    TodayQuest = 4,
    HuntingGround = 5,
    Pvp = 6,
    EvilCastle = 7,
    MonsterHunt = 8,
    SkyWayGoblin = 9,
    SkyWaySlime = 10,
    SkyWayCrystalFire = 11,
    SkyWayCrystalWater = 12,
    SkyWayCrystalWind = 13,
    SkyWayCrystalLight = 14,
    SkyWayCrystalDark = 15,
    EvilCastleGreedTower = 16,
    PackEventBattle = 17,
    TotalWar = 18,
    EvilCastleRageTower = 19,
    EvilCastleEnvyTower = 20,
    EvilCastleRogueLike = 21,
    GuildRaidNormal = 22,
    GuildRaidBoss = 23,
    MonsterHuntPractice = 24,
    GuildRaidNormalPractice = 25,
    GuildRaidBossPractice = 26,
    EvilCastleRogueLikeCrystal = 27,
}
impl DefineBattleModeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::None => "NONE",
            Self::Quest => "QUEST",
            Self::NormalHunt => "NORMAL_HUNT",
            Self::FieldBoxBattle => "FIELD_BOX_BATTLE",
            Self::TodayQuest => "TODAY_QUEST",
            Self::HuntingGround => "HUNTING_GROUND",
            Self::Pvp => "PVP",
            Self::EvilCastle => "EVIL_CASTLE",
            Self::MonsterHunt => "MONSTER_HUNT",
            Self::SkyWayGoblin => "SKY_WAY_GOBLIN",
            Self::SkyWaySlime => "SKY_WAY_SLIME",
            Self::SkyWayCrystalFire => "SKY_WAY_CRYSTAL_FIRE",
            Self::SkyWayCrystalWater => "SKY_WAY_CRYSTAL_WATER",
            Self::SkyWayCrystalWind => "SKY_WAY_CRYSTAL_WIND",
            Self::SkyWayCrystalLight => "SKY_WAY_CRYSTAL_LIGHT",
            Self::SkyWayCrystalDark => "SKY_WAY_CRYSTAL_DARK",
            Self::EvilCastleGreedTower => "EVIL_CASTLE_GREED_TOWER",
            Self::PackEventBattle => "PACK_EVENT_BATTLE",
            Self::TotalWar => "TOTAL_WAR",
            Self::EvilCastleRageTower => "EVIL_CASTLE_RAGE_TOWER",
            Self::EvilCastleEnvyTower => "EVIL_CASTLE_ENVY_TOWER",
            Self::EvilCastleRogueLike => "EVIL_CASTLE_ROGUE_LIKE",
            Self::GuildRaidNormal => "GUILD_RAID_NORMAL",
            Self::GuildRaidBoss => "GUILD_RAID_BOSS",
            Self::MonsterHuntPractice => "MONSTER_HUNT_PRACTICE",
            Self::GuildRaidNormalPractice => "GUILD_RAID_NORMAL_PRACTICE",
            Self::GuildRaidBossPractice => "GUILD_RAID_BOSS_PRACTICE",
            Self::EvilCastleRogueLikeCrystal => "EVIL_CASTLE_ROGUE_LIKE_CRYSTAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NONE" => Some(Self::None),
            "QUEST" => Some(Self::Quest),
            "NORMAL_HUNT" => Some(Self::NormalHunt),
            "FIELD_BOX_BATTLE" => Some(Self::FieldBoxBattle),
            "TODAY_QUEST" => Some(Self::TodayQuest),
            "HUNTING_GROUND" => Some(Self::HuntingGround),
            "PVP" => Some(Self::Pvp),
            "EVIL_CASTLE" => Some(Self::EvilCastle),
            "MONSTER_HUNT" => Some(Self::MonsterHunt),
            "SKY_WAY_GOBLIN" => Some(Self::SkyWayGoblin),
            "SKY_WAY_SLIME" => Some(Self::SkyWaySlime),
            "SKY_WAY_CRYSTAL_FIRE" => Some(Self::SkyWayCrystalFire),
            "SKY_WAY_CRYSTAL_WATER" => Some(Self::SkyWayCrystalWater),
            "SKY_WAY_CRYSTAL_WIND" => Some(Self::SkyWayCrystalWind),
            "SKY_WAY_CRYSTAL_LIGHT" => Some(Self::SkyWayCrystalLight),
            "SKY_WAY_CRYSTAL_DARK" => Some(Self::SkyWayCrystalDark),
            "EVIL_CASTLE_GREED_TOWER" => Some(Self::EvilCastleGreedTower),
            "PACK_EVENT_BATTLE" => Some(Self::PackEventBattle),
            "TOTAL_WAR" => Some(Self::TotalWar),
            "EVIL_CASTLE_RAGE_TOWER" => Some(Self::EvilCastleRageTower),
            "EVIL_CASTLE_ENVY_TOWER" => Some(Self::EvilCastleEnvyTower),
            "EVIL_CASTLE_ROGUE_LIKE" => Some(Self::EvilCastleRogueLike),
            "GUILD_RAID_NORMAL" => Some(Self::GuildRaidNormal),
            "GUILD_RAID_BOSS" => Some(Self::GuildRaidBoss),
            "MONSTER_HUNT_PRACTICE" => Some(Self::MonsterHuntPractice),
            "GUILD_RAID_NORMAL_PRACTICE" => Some(Self::GuildRaidNormalPractice),
            "GUILD_RAID_BOSS_PRACTICE" => Some(Self::GuildRaidBossPractice),
            "EVIL_CASTLE_ROGUE_LIKE_CRYSTAL" => Some(Self::EvilCastleRogueLikeCrystal),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineDifficulty {
    DifficultyNormal = 0,
    DifficultyHard = 1,
    DifficultyHardest = 2,
    DifficultyHell = 3,
    DifficultyLegendary = 4,
}
impl DefineDifficulty {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::DifficultyNormal => "DIFFICULTY_NORMAL",
            Self::DifficultyHard => "DIFFICULTY_HARD",
            Self::DifficultyHardest => "DIFFICULTY_HARDEST",
            Self::DifficultyHell => "DIFFICULTY_HELL",
            Self::DifficultyLegendary => "DIFFICULTY_LEGENDARY",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "DIFFICULTY_NORMAL" => Some(Self::DifficultyNormal),
            "DIFFICULTY_HARD" => Some(Self::DifficultyHard),
            "DIFFICULTY_HARDEST" => Some(Self::DifficultyHardest),
            "DIFFICULTY_HELL" => Some(Self::DifficultyHell),
            "DIFFICULTY_LEGENDARY" => Some(Self::DifficultyLegendary),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineCharStatOption {
    NoneStat = 0,
    HealthValue = 1,
    HealthPercent = 2,
    AttackValue = 3,
    AttackPercent = 4,
    MagicValue = 5,
    MagicPercent = 6,
    DefencePercent = 7,
    MagicResistancePercent = 8,
    CriticalChancePercent = 9,
    CriticalDamagePercent = 10,
    WaterDamage = 11,
    FireDamage = 12,
    WindDamage = 13,
    LightDamage = 14,
    DarkDamage = 15,
    WaterResistance = 16,
    FireResistance = 17,
    WindResistance = 18,
    AllElementDamage = 19,
    AllElementResistance = 20,
}
impl DefineCharStatOption {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::NoneStat => "NONE_STAT",
            Self::HealthValue => "HEALTH_VALUE",
            Self::HealthPercent => "HEALTH_PERCENT",
            Self::AttackValue => "ATTACK_VALUE",
            Self::AttackPercent => "ATTACK_PERCENT",
            Self::MagicValue => "MAGIC_VALUE",
            Self::MagicPercent => "MAGIC_PERCENT",
            Self::DefencePercent => "DEFENCE_PERCENT",
            Self::MagicResistancePercent => "MAGIC_RESISTANCE_PERCENT",
            Self::CriticalChancePercent => "CRITICAL_CHANCE_PERCENT",
            Self::CriticalDamagePercent => "CRITICAL_DAMAGE_PERCENT",
            Self::WaterDamage => "WATER_DAMAGE",
            Self::FireDamage => "FIRE_DAMAGE",
            Self::WindDamage => "WIND_DAMAGE",
            Self::LightDamage => "LIGHT_DAMAGE",
            Self::DarkDamage => "DARK_DAMAGE",
            Self::WaterResistance => "WATER_RESISTANCE",
            Self::FireResistance => "FIRE_RESISTANCE",
            Self::WindResistance => "WIND_RESISTANCE",
            Self::AllElementDamage => "ALL_ELEMENT_DAMAGE",
            Self::AllElementResistance => "ALL_ELEMENT_RESISTANCE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NONE_STAT" => Some(Self::NoneStat),
            "HEALTH_VALUE" => Some(Self::HealthValue),
            "HEALTH_PERCENT" => Some(Self::HealthPercent),
            "ATTACK_VALUE" => Some(Self::AttackValue),
            "ATTACK_PERCENT" => Some(Self::AttackPercent),
            "MAGIC_VALUE" => Some(Self::MagicValue),
            "MAGIC_PERCENT" => Some(Self::MagicPercent),
            "DEFENCE_PERCENT" => Some(Self::DefencePercent),
            "MAGIC_RESISTANCE_PERCENT" => Some(Self::MagicResistancePercent),
            "CRITICAL_CHANCE_PERCENT" => Some(Self::CriticalChancePercent),
            "CRITICAL_DAMAGE_PERCENT" => Some(Self::CriticalDamagePercent),
            "WATER_DAMAGE" => Some(Self::WaterDamage),
            "FIRE_DAMAGE" => Some(Self::FireDamage),
            "WIND_DAMAGE" => Some(Self::WindDamage),
            "LIGHT_DAMAGE" => Some(Self::LightDamage),
            "DARK_DAMAGE" => Some(Self::DarkDamage),
            "WATER_RESISTANCE" => Some(Self::WaterResistance),
            "FIRE_RESISTANCE" => Some(Self::FireResistance),
            "WIND_RESISTANCE" => Some(Self::WindResistance),
            "ALL_ELEMENT_DAMAGE" => Some(Self::AllElementDamage),
            "ALL_ELEMENT_RESISTANCE" => Some(Self::AllElementResistance),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEquipGradeType {
    NoneGrade = 0,
    EquipNormal = 1,
    EquipRare = 2,
    EquipHero = 3,
    EquipLegend = 4,
}
impl DefineEquipGradeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::NoneGrade => "NONE_GRADE",
            Self::EquipNormal => "EQUIP_NORMAL",
            Self::EquipRare => "EQUIP_RARE",
            Self::EquipHero => "EQUIP_HERO",
            Self::EquipLegend => "EQUIP_LEGEND",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NONE_GRADE" => Some(Self::NoneGrade),
            "EQUIP_NORMAL" => Some(Self::EquipNormal),
            "EQUIP_RARE" => Some(Self::EquipRare),
            "EQUIP_HERO" => Some(Self::EquipHero),
            "EQUIP_LEGEND" => Some(Self::EquipLegend),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEquipmentQualityType {
    QualityNone = 0,
    QualityAdvanced = 1,
    QualityPremium = 2,
    QualityLegendary = 3,
}
impl DefineEquipmentQualityType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::QualityNone => "QUALITY_NONE",
            Self::QualityAdvanced => "QUALITY_ADVANCED",
            Self::QualityPremium => "QUALITY_PREMIUM",
            Self::QualityLegendary => "QUALITY_LEGENDARY",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "QUALITY_NONE" => Some(Self::QualityNone),
            "QUALITY_ADVANCED" => Some(Self::QualityAdvanced),
            "QUALITY_PREMIUM" => Some(Self::QualityPremium),
            "QUALITY_LEGENDARY" => Some(Self::QualityLegendary),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEquipRankType {
    NoneEquipRank = 0,
    C = 1,
    B = 2,
    A = 3,
    S = 4,
}
impl DefineEquipRankType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::NoneEquipRank => "NONE_EQUIP_RANK",
            Self::C => "C",
            Self::B => "B",
            Self::A => "A",
            Self::S => "S",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NONE_EQUIP_RANK" => Some(Self::NoneEquipRank),
            "C" => Some(Self::C),
            "B" => Some(Self::B),
            "A" => Some(Self::A),
            "S" => Some(Self::S),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineTrapType {
    FixTrap = 0,
    OnceTrap = 1,
    SceneRegen = 2,
}
impl DefineTrapType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::FixTrap => "FIX_TRAP",
            Self::OnceTrap => "ONCE_TRAP",
            Self::SceneRegen => "SCENE_REGEN",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "FIX_TRAP" => Some(Self::FixTrap),
            "ONCE_TRAP" => Some(Self::OnceTrap),
            "SCENE_REGEN" => Some(Self::SceneRegen),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineQuestConditionType {
    Talk = 0,
    Hunt = 1,
    Collection = 2,
    TargetBattle = 3,
    UseTalentSkill = 4,
    PuzzleInorder = 5,
    Puzzle = 6,
    GateSpot = 7,
    RandomBattle = 8,
    ObjectMove = 9,
    ObjectMoveAndInteract = 10,
    ClickTalentSkill = 11,
    UiInteraction = 12,
    TargetMapMove = 13,
    PvpDeckSave = 14,
    MiniGame = 15,
    GlobalFieldReward = 16,
    GlobalFieldObjectCrash = 17,
    FieldResearchObject = 18,
    TalkManual = 19,
}
impl DefineQuestConditionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Talk => "TALK",
            Self::Hunt => "HUNT",
            Self::Collection => "COLLECTION",
            Self::TargetBattle => "TARGET_BATTLE",
            Self::UseTalentSkill => "USE_TALENT_SKILL",
            Self::PuzzleInorder => "PUZZLE_INORDER",
            Self::Puzzle => "PUZZLE",
            Self::GateSpot => "GATE_SPOT",
            Self::RandomBattle => "RANDOM_BATTLE",
            Self::ObjectMove => "OBJECT_MOVE",
            Self::ObjectMoveAndInteract => "OBJECT_MOVE_AND_INTERACT",
            Self::ClickTalentSkill => "CLICK_TALENT_SKILL",
            Self::UiInteraction => "UI_INTERACTION",
            Self::TargetMapMove => "TARGET_MAP_MOVE",
            Self::PvpDeckSave => "PVP_DECK_SAVE",
            Self::MiniGame => "MINI_GAME",
            Self::GlobalFieldReward => "GLOBAL_FIELD_REWARD",
            Self::GlobalFieldObjectCrash => "GLOBAL_FIELD_OBJECT_CRASH",
            Self::FieldResearchObject => "FIELD_RESEARCH_OBJECT",
            Self::TalkManual => "TALK_MANUAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TALK" => Some(Self::Talk),
            "HUNT" => Some(Self::Hunt),
            "COLLECTION" => Some(Self::Collection),
            "TARGET_BATTLE" => Some(Self::TargetBattle),
            "USE_TALENT_SKILL" => Some(Self::UseTalentSkill),
            "PUZZLE_INORDER" => Some(Self::PuzzleInorder),
            "PUZZLE" => Some(Self::Puzzle),
            "GATE_SPOT" => Some(Self::GateSpot),
            "RANDOM_BATTLE" => Some(Self::RandomBattle),
            "OBJECT_MOVE" => Some(Self::ObjectMove),
            "OBJECT_MOVE_AND_INTERACT" => Some(Self::ObjectMoveAndInteract),
            "CLICK_TALENT_SKILL" => Some(Self::ClickTalentSkill),
            "UI_INTERACTION" => Some(Self::UiInteraction),
            "TARGET_MAP_MOVE" => Some(Self::TargetMapMove),
            "PVP_DECK_SAVE" => Some(Self::PvpDeckSave),
            "MINI_GAME" => Some(Self::MiniGame),
            "GLOBAL_FIELD_REWARD" => Some(Self::GlobalFieldReward),
            "GLOBAL_FIELD_OBJECT_CRASH" => Some(Self::GlobalFieldObjectCrash),
            "FIELD_RESEARCH_OBJECT" => Some(Self::FieldResearchObject),
            "TALK_MANUAL" => Some(Self::TalkManual),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineTalentSkillType {
    TsNone = 0,
    TsSteal = 1,
    TsFastDash = 2,
    TsOverwhelm = 3,
    TsAbsorption = 4,
    TsInterrogate = 5,
    TsExamine = 6,
    TsCooking = 7,
    TsAlchemy = 8,
    TsEquipmentMaking = 9,
    TsCharCure = 10,
    TsSpellControl = 11,
    TsTrapSearch = 12,
    TsMoveSpeedUp = 13,
    TsCharImmortal = 14,
    TsCreateWayPoint = 15,
    TsShopDiscount = 16,
    TsStealth = 17,
    TsDispatch = 18,
    TsCharmByNpc = 19,
    TsSummon = 20,
}
impl DefineTalentSkillType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::TsNone => "TS_NONE",
            Self::TsSteal => "TS_STEAL",
            Self::TsFastDash => "TS_FAST_DASH",
            Self::TsOverwhelm => "TS_OVERWHELM",
            Self::TsAbsorption => "TS_ABSORPTION",
            Self::TsInterrogate => "TS_INTERROGATE",
            Self::TsExamine => "TS_EXAMINE",
            Self::TsCooking => "TS_COOKING",
            Self::TsAlchemy => "TS_ALCHEMY",
            Self::TsEquipmentMaking => "TS_EQUIPMENT_MAKING",
            Self::TsCharCure => "TS_CHAR_CURE",
            Self::TsSpellControl => "TS_SPELL_CONTROL",
            Self::TsTrapSearch => "TS_TRAP_SEARCH",
            Self::TsMoveSpeedUp => "TS_MOVE_SPEED_UP",
            Self::TsCharImmortal => "TS_CHAR_IMMORTAL",
            Self::TsCreateWayPoint => "TS_CREATE_WAY_POINT",
            Self::TsShopDiscount => "TS_SHOP_DISCOUNT",
            Self::TsStealth => "TS_STEALTH",
            Self::TsDispatch => "TS_DISPATCH",
            Self::TsCharmByNpc => "TS_CHARM_BY_NPC",
            Self::TsSummon => "TS_SUMMON",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TS_NONE" => Some(Self::TsNone),
            "TS_STEAL" => Some(Self::TsSteal),
            "TS_FAST_DASH" => Some(Self::TsFastDash),
            "TS_OVERWHELM" => Some(Self::TsOverwhelm),
            "TS_ABSORPTION" => Some(Self::TsAbsorption),
            "TS_INTERROGATE" => Some(Self::TsInterrogate),
            "TS_EXAMINE" => Some(Self::TsExamine),
            "TS_COOKING" => Some(Self::TsCooking),
            "TS_ALCHEMY" => Some(Self::TsAlchemy),
            "TS_EQUIPMENT_MAKING" => Some(Self::TsEquipmentMaking),
            "TS_CHAR_CURE" => Some(Self::TsCharCure),
            "TS_SPELL_CONTROL" => Some(Self::TsSpellControl),
            "TS_TRAP_SEARCH" => Some(Self::TsTrapSearch),
            "TS_MOVE_SPEED_UP" => Some(Self::TsMoveSpeedUp),
            "TS_CHAR_IMMORTAL" => Some(Self::TsCharImmortal),
            "TS_CREATE_WAY_POINT" => Some(Self::TsCreateWayPoint),
            "TS_SHOP_DISCOUNT" => Some(Self::TsShopDiscount),
            "TS_STEALTH" => Some(Self::TsStealth),
            "TS_DISPATCH" => Some(Self::TsDispatch),
            "TS_CHARM_BY_NPC" => Some(Self::TsCharmByNpc),
            "TS_SUMMON" => Some(Self::TsSummon),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePictorialBookMainId {
    PictorialBookMainNone = 0,
    PictorialBookMainChar = 1,
    PictorialBookMainTalent = 2,
    PictorialBookMainEquip = 3,
    PictorialBookMainCookingRecipe = 4,
    PictorialBookMainCollectionQuest = 5,
    PictorialBookMainResource = 6,
    PictorialBookMainCostume = 7,
}
impl DefinePictorialBookMainId {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PictorialBookMainNone => "PICTORIAL_BOOK_MAIN_NONE",
            Self::PictorialBookMainChar => "PICTORIAL_BOOK_MAIN_CHAR",
            Self::PictorialBookMainTalent => "PICTORIAL_BOOK_MAIN_TALENT",
            Self::PictorialBookMainEquip => "PICTORIAL_BOOK_MAIN_EQUIP",
            Self::PictorialBookMainCookingRecipe => "PICTORIAL_BOOK_MAIN_COOKING_RECIPE",
            Self::PictorialBookMainCollectionQuest => {
                "PICTORIAL_BOOK_MAIN_COLLECTION_QUEST"
            }
            Self::PictorialBookMainResource => "PICTORIAL_BOOK_MAIN_RESOURCE",
            Self::PictorialBookMainCostume => "PICTORIAL_BOOK_MAIN_COSTUME",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PICTORIAL_BOOK_MAIN_NONE" => Some(Self::PictorialBookMainNone),
            "PICTORIAL_BOOK_MAIN_CHAR" => Some(Self::PictorialBookMainChar),
            "PICTORIAL_BOOK_MAIN_TALENT" => Some(Self::PictorialBookMainTalent),
            "PICTORIAL_BOOK_MAIN_EQUIP" => Some(Self::PictorialBookMainEquip),
            "PICTORIAL_BOOK_MAIN_COOKING_RECIPE" => {
                Some(Self::PictorialBookMainCookingRecipe)
            }
            "PICTORIAL_BOOK_MAIN_COLLECTION_QUEST" => {
                Some(Self::PictorialBookMainCollectionQuest)
            }
            "PICTORIAL_BOOK_MAIN_RESOURCE" => Some(Self::PictorialBookMainResource),
            "PICTORIAL_BOOK_MAIN_COSTUME" => Some(Self::PictorialBookMainCostume),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePictorialBookType {
    PictorialBookItem = 0,
    PictorialBookTalent = 1,
}
impl DefinePictorialBookType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PictorialBookItem => "PICTORIAL_BOOK_ITEM",
            Self::PictorialBookTalent => "PICTORIAL_BOOK_TALENT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PICTORIAL_BOOK_ITEM" => Some(Self::PictorialBookItem),
            "PICTORIAL_BOOK_TALENT" => Some(Self::PictorialBookTalent),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMailType {
    MtIngameReward = 0,
    MtAdminReward = 1,
    MtEventReward = 2,
    MtTotalWarDailyReward = 3,
}
impl DefineMailType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MtIngameReward => "MT_INGAME_REWARD",
            Self::MtAdminReward => "MT_ADMIN_REWARD",
            Self::MtEventReward => "MT_EVENT_REWARD",
            Self::MtTotalWarDailyReward => "MT_TOTAL_WAR_DAILY_REWARD",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MT_INGAME_REWARD" => Some(Self::MtIngameReward),
            "MT_ADMIN_REWARD" => Some(Self::MtAdminReward),
            "MT_EVENT_REWARD" => Some(Self::MtEventReward),
            "MT_TOTAL_WAR_DAILY_REWARD" => Some(Self::MtTotalWarDailyReward),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePassRewardType {
    SprBasic = 0,
    SprPremium1 = 1,
    SprPremium2 = 2,
}
impl DefinePassRewardType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::SprBasic => "SPR_BASIC",
            Self::SprPremium1 => "SPR_PREMIUM_1",
            Self::SprPremium2 => "SPR_PREMIUM_2",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SPR_BASIC" => Some(Self::SprBasic),
            "SPR_PREMIUM_1" => Some(Self::SprPremium1),
            "SPR_PREMIUM_2" => Some(Self::SprPremium2),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineAttendanceRewardType {
    SarNone = 0,
    SprStandard = 1,
    SprPremium = 2,
    SprMonthly1 = 3,
    SprMonthly2 = 4,
}
impl DefineAttendanceRewardType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::SarNone => "SAR_NONE",
            Self::SprStandard => "SPR_STANDARD",
            Self::SprPremium => "SPR_PREMIUM",
            Self::SprMonthly1 => "SPR_MONTHLY1",
            Self::SprMonthly2 => "SPR_MONTHLY2",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SAR_NONE" => Some(Self::SarNone),
            "SPR_STANDARD" => Some(Self::SprStandard),
            "SPR_PREMIUM" => Some(Self::SprPremium),
            "SPR_MONTHLY1" => Some(Self::SprMonthly1),
            "SPR_MONTHLY2" => Some(Self::SprMonthly2),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineReputationState {
    ReputationStateBad = 0,
    ReputationStateNormal = 1,
    ReputationStateGood = 2,
}
impl DefineReputationState {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ReputationStateBad => "REPUTATION_STATE_BAD",
            Self::ReputationStateNormal => "REPUTATION_STATE_NORMAL",
            Self::ReputationStateGood => "REPUTATION_STATE_GOOD",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "REPUTATION_STATE_BAD" => Some(Self::ReputationStateBad),
            "REPUTATION_STATE_NORMAL" => Some(Self::ReputationStateNormal),
            "REPUTATION_STATE_GOOD" => Some(Self::ReputationStateGood),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineBattleChallengeType {
    BattleChallengeTypeNormal = 0,
    BattleChallengeTypeEvilCastle = 1,
}
impl DefineBattleChallengeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::BattleChallengeTypeNormal => "BATTLE_CHALLENGE_TYPE_NORMAL",
            Self::BattleChallengeTypeEvilCastle => "BATTLE_CHALLENGE_TYPE_EVIL_CASTLE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "BATTLE_CHALLENGE_TYPE_NORMAL" => Some(Self::BattleChallengeTypeNormal),
            "BATTLE_CHALLENGE_TYPE_EVIL_CASTLE" => {
                Some(Self::BattleChallengeTypeEvilCastle)
            }
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineScheduleStateType {
    ScheduleSeason = 0,
    ScheduleOffSeason = 1,
    ScheduleCalculate = 2,
    ScheduleComingSoon = 3,
    ScheduleTraining = 4,
}
impl DefineScheduleStateType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ScheduleSeason => "SCHEDULE_SEASON",
            Self::ScheduleOffSeason => "SCHEDULE_OFF_SEASON",
            Self::ScheduleCalculate => "SCHEDULE_CALCULATE",
            Self::ScheduleComingSoon => "SCHEDULE_COMING_SOON",
            Self::ScheduleTraining => "SCHEDULE_TRAINING",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SCHEDULE_SEASON" => Some(Self::ScheduleSeason),
            "SCHEDULE_OFF_SEASON" => Some(Self::ScheduleOffSeason),
            "SCHEDULE_CALCULATE" => Some(Self::ScheduleCalculate),
            "SCHEDULE_COMING_SOON" => Some(Self::ScheduleComingSoon),
            "SCHEDULE_TRAINING" => Some(Self::ScheduleTraining),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineScheduleContentId {
    ScheduleContentNone = 0,
    ScheduleContentPvp = 1,
    ScheduleContentEvilCastle = 2,
    ScheduleContentPopularCostume = 3,
    ScheduleContentPopularEquip = 4,
    ScheduleContentEvilCastleRogueLike = 5,
    ScheduleContentGuildRaid = 6,
    ScheduleContentMyRoomMonthlyLike = 7,
    ScheduleContentMaintenance = 101,
    ScheduleContentCbtAppStore = 102,
    ScheduleContentCbtPlayStore = 103,
}
impl DefineScheduleContentId {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ScheduleContentNone => "SCHEDULE_CONTENT_NONE",
            Self::ScheduleContentPvp => "SCHEDULE_CONTENT_PVP",
            Self::ScheduleContentEvilCastle => "SCHEDULE_CONTENT_EVIL_CASTLE",
            Self::ScheduleContentPopularCostume => "SCHEDULE_CONTENT_POPULAR_COSTUME",
            Self::ScheduleContentPopularEquip => "SCHEDULE_CONTENT_POPULAR_EQUIP",
            Self::ScheduleContentEvilCastleRogueLike => {
                "SCHEDULE_CONTENT_EVIL_CASTLE_ROGUE_LIKE"
            }
            Self::ScheduleContentGuildRaid => "SCHEDULE_CONTENT_GUILD_RAID",
            Self::ScheduleContentMyRoomMonthlyLike => {
                "SCHEDULE_CONTENT_MY_ROOM_MONTHLY_LIKE"
            }
            Self::ScheduleContentMaintenance => "SCHEDULE_CONTENT_MAINTENANCE",
            Self::ScheduleContentCbtAppStore => "SCHEDULE_CONTENT_CBT_APP_STORE",
            Self::ScheduleContentCbtPlayStore => "SCHEDULE_CONTENT_CBT_PLAY_STORE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SCHEDULE_CONTENT_NONE" => Some(Self::ScheduleContentNone),
            "SCHEDULE_CONTENT_PVP" => Some(Self::ScheduleContentPvp),
            "SCHEDULE_CONTENT_EVIL_CASTLE" => Some(Self::ScheduleContentEvilCastle),
            "SCHEDULE_CONTENT_POPULAR_COSTUME" => {
                Some(Self::ScheduleContentPopularCostume)
            }
            "SCHEDULE_CONTENT_POPULAR_EQUIP" => Some(Self::ScheduleContentPopularEquip),
            "SCHEDULE_CONTENT_EVIL_CASTLE_ROGUE_LIKE" => {
                Some(Self::ScheduleContentEvilCastleRogueLike)
            }
            "SCHEDULE_CONTENT_GUILD_RAID" => Some(Self::ScheduleContentGuildRaid),
            "SCHEDULE_CONTENT_MY_ROOM_MONTHLY_LIKE" => {
                Some(Self::ScheduleContentMyRoomMonthlyLike)
            }
            "SCHEDULE_CONTENT_MAINTENANCE" => Some(Self::ScheduleContentMaintenance),
            "SCHEDULE_CONTENT_CBT_APP_STORE" => Some(Self::ScheduleContentCbtAppStore),
            "SCHEDULE_CONTENT_CBT_PLAY_STORE" => Some(Self::ScheduleContentCbtPlayStore),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineRankContentType {
    RankNone = 0,
    RankPvp = 1,
    RankEvilCastle = 2,
    RankMonsterHunt = 3,
    RankTotalWar = 4,
    RankEvilCastleRogueLike = 5,
    RankGuildRaid = 6,
    RankMiniGameSurvival = 7,
    RankMiniGameSichuan = 8,
    RankMiniGameRhythm = 9,
}
impl DefineRankContentType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::RankNone => "RANK_NONE",
            Self::RankPvp => "RANK_PVP",
            Self::RankEvilCastle => "RANK_EVIL_CASTLE",
            Self::RankMonsterHunt => "RANK_MONSTER_HUNT",
            Self::RankTotalWar => "RANK_TOTAL_WAR",
            Self::RankEvilCastleRogueLike => "RANK_EVIL_CASTLE_ROGUE_LIKE",
            Self::RankGuildRaid => "RANK_GUILD_RAID",
            Self::RankMiniGameSurvival => "RANK_MINI_GAME_SURVIVAL",
            Self::RankMiniGameSichuan => "RANK_MINI_GAME_SICHUAN",
            Self::RankMiniGameRhythm => "RANK_MINI_GAME_RHYTHM",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "RANK_NONE" => Some(Self::RankNone),
            "RANK_PVP" => Some(Self::RankPvp),
            "RANK_EVIL_CASTLE" => Some(Self::RankEvilCastle),
            "RANK_MONSTER_HUNT" => Some(Self::RankMonsterHunt),
            "RANK_TOTAL_WAR" => Some(Self::RankTotalWar),
            "RANK_EVIL_CASTLE_ROGUE_LIKE" => Some(Self::RankEvilCastleRogueLike),
            "RANK_GUILD_RAID" => Some(Self::RankGuildRaid),
            "RANK_MINI_GAME_SURVIVAL" => Some(Self::RankMiniGameSurvival),
            "RANK_MINI_GAME_SICHUAN" => Some(Self::RankMiniGameSichuan),
            "RANK_MINI_GAME_RHYTHM" => Some(Self::RankMiniGameRhythm),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMissionConditionType {
    McConnect = 0,
    McTodayQuestClear = 1,
    McMonsterKill = 2,
    McCollectionGet = 3,
    McWaypointUse = 4,
    McFieldRewardMonsterCatch = 5,
    McTalentSkillUse = 6,
    McHuntingBattle = 7,
    McGachaBuy = 9,
    McPackBattle = 10,
    McItemCurrencyUse = 11,
    McResourceUse = 12,
    McCharLevelUpItemUse = 13,
    McEquipmentUpgrade = 14,
    McEventMiniGameCount = 15,
    McTargetBasicPassReward = 16,
    McPackRewardByEventLostCoinRewardFieldObject = 17,
    McBattleModeStartTry = 18,
    McBattleModeStartTryWithUniqueCharId = 19,
    McEquipMakeGrade = 20,
    McEquipSmelting = 21,
    McDeckBattlePower = 22,
    McHuntDispatch = 23,
    McSkyWayDungeonPositionGroupLevelClear = 24,
    McPackMainQuestHardLevelClear = 25,
    McCostumePotentialActivateNodeKind = 26,
    McPvpRankIdGoal = 27,
    McCostumeGradeGet = 28,
    McTalentSkillUpgrade = 29,
    McSamGroupIdMissionUpdateCompleteCount = 30,
    McOtherGroupIdMissionUpdateCompleteCount = 31,
    McItemCurrencyGet = 32,
    McCafeteriaCumulativeReward = 33,
    McRhythmGameJudgmentCount = 49,
    McRhythmGameFullCombo = 50,
    McRhythmGameScore = 51,
    McRhythmGameGrade = 52,
    McRhythmGameDifficultyPlayEnd = 53,
    McMyRoomVisit = 34,
    McMyRoomExpand = 35,
    McMyRoomLike = 36,
    McArcadeMenuVisit = 37,
    McPackQuestIdClear = 38,
    McLobbyItemSettingChange = 39,
    McDatingEpisodeClear = 40,
    McGuildLobbyUiEnter = 41,
    McCharImprintLevelUp = 42,
    McCharAwakeActive = 43,
    McEquipMakingUiEnter = 44,
    McEquipUpgradeUiEnter = 45,
    McTryToBattleInMonsterHuntIncludeTraining = 46,
    McEvilCastleRageTowerClear = 47,
    McEvilCastleEnvyTowerClear = 48,
    McGachaUsePoint = 101,
    McGetGachaPickupCostume = 103,
    McCostumeUpgrade = 104,
    McTryToGachaToTargetGachaGroup = 105,
    McGetGachaToTargetEquipmentItem = 106,
    McPackMainQuestNormalLevelClear = 201,
    McPackMainQuest1levelAcceptQuest = 202,
    McPackMainQuest2levelAcceptQuest = 203,
    McEnterPackInField = 204,
    McCharTargetLevelUp = 207,
    McCharTargetGradeUp = 208,
    McTryToCharScoutToTargetGrade = 209,
    McUseRecoveryThroughMotel = 210,
    McBuyItemINShop = 211,
    McSellItemINShop = 212,
    McSuccessEquipmentUpgradeToTargetLevel = 213,
    McTryToEquipEquipmentItem = 214,
    McTryToChangeEquipmentItem = 215,
    McTryToBreakEquipmentItem = 216,
    McTryToSmeltEquipmentItem = 217,
    McRewardByResearchFieldObject = 218,
    McRewardByFieldRewardObject = 219,
    McTalentSkillUpgradeToTargetGrade = 220,
    McRewardToAchievementLevel = 221,
    McCompletedPictorialToTargetPictorialType = 222,
    McRewardToPassLevel = 223,
    McTryToUseAutoHunting = 224,
    McTryToBattleInSkywayDungeonGroupId = 227,
    McTryToChangeCostumeInBattle = 226,
    McTryToBattleInEvilCastleToTargetFloor = 228,
    McClearInEvilCastleToTargetFloor = 229,
    McTryToBattleInMonsterHunt = 230,
    McPlatformConnectOrLogin = 231,
    McEvilCastleGreedTowerBattle = 232,
    McEvilCastleGreedTowerClear = 233,
    McWinToBattleInMonsterHunt = 240,
    McPackNormalLevelClear = 250,
    McPackNpcQuestClearInPack = 251,
    McPackRewardByResearchFieldObject = 260,
    McPackRewardByUniqueBoxRewardFieldObject = 261,
    McTotalWarUseCostume = 270,
    McTotalWarTryCount = 280,
    McTotalWarResultScore = 281,
    McTotalWarDistribution = 290,
    McMyRoomChangeSkinFloor = 300,
    McMyRoomChangeSkinWall = 301,
    McMyRoomInstallObjectFloor = 302,
    McMyRoomInstallObjectWall = 303,
    McMyRoomInstallCarpet = 304,
    McMyRoomInstallCostume = 305,
    McMyRoomSaveTheRoom = 306,
    McMyRoomInstallCostumeToLyingPosition = 307,
    McMyRoomInstallCostumeToSittingPosition = 308,
    McMyRoomSetPresentiveRoom = 309,
    McMyRoomBuyItem = 310,
    McMyRoomInstallObject = 311,
    McMyRoomVisitAnotherUser = 312,
    McMyRoomSaturationPercent = 313,
    McCostumePotentialActivationSkillNode = 314,
    McEventFieldMiniGamePlay = 315,
    McMiniGameSurvivalCharLevel = 316,
    McMiniGameSurvivalLifeTime = 317,
    McMiniGameSurvivalSkillMaxLevelCount = 318,
    McMiniGameSurvivalKillMonsterCount = 319,
    McMiniGameSurvivalMapClear = 320,
    McMiniGameSurvivalSpecificSkillMaxLevel = 321,
    McMiniGameDefenseWaveClear = 322,
    McMiniGameActionMonster = 323,
    McMiniGameActionTimeMonster = 324,
    McMiniGameActionUnderHitCount = 325,
    McMiniGameActionPartBreakCount = 326,
    McMiniGameActionGroggyCount = 327,
    McMiniGameActionJustGuardAfterSpecialSkill = 328,
    McMiniGameActionGroggyAfterDamage = 329,
    McMiniGameActionDebuffAfterSpecialSkill = 330,
    McMiniGameActionPartBreakId = 331,
    McMiniGameActionJustGuardAfterJustMissTime = 332,
    McMiniGameActionJustMissCount = 333,
    McMiniGameActionJustGuardCount = 334,
    McMiniGameActionHealCount = 335,
    McMiniGameActionAngerAfterGroggyCount = 336,
    McCompletedDailyOpenEventMissionToTargetDay = 1001,
    McCompletedEventMissionInSameGroupId = 1002,
}
impl DefineMissionConditionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::McConnect => "MC_CONNECT",
            Self::McTodayQuestClear => "MC_TODAY_QUEST_CLEAR",
            Self::McMonsterKill => "MC_MONSTER_KILL",
            Self::McCollectionGet => "MC_COLLECTION_GET",
            Self::McWaypointUse => "MC_WAYPOINT_USE",
            Self::McFieldRewardMonsterCatch => "MC_FIELD_REWARD_MONSTER_CATCH",
            Self::McTalentSkillUse => "MC_TALENT_SKILL_USE",
            Self::McHuntingBattle => "MC_HUNTING_BATTLE",
            Self::McGachaBuy => "MC_GACHA_BUY",
            Self::McPackBattle => "MC_PACK_BATTLE",
            Self::McItemCurrencyUse => "MC_ITEM_CURRENCY_USE",
            Self::McResourceUse => "MC_RESOURCE_USE",
            Self::McCharLevelUpItemUse => "MC_CHAR_LEVEL_UP_ITEM_USE",
            Self::McEquipmentUpgrade => "MC_EQUIPMENT_UPGRADE",
            Self::McEventMiniGameCount => "MC_EVENT_MINI_GAME_COUNT",
            Self::McTargetBasicPassReward => "MC_TARGET_BASIC_PASS_REWARD",
            Self::McPackRewardByEventLostCoinRewardFieldObject => {
                "MC_PACK_REWARD_BY_EVENT_LOST_COIN_REWARD_FIELD_OBJECT"
            }
            Self::McBattleModeStartTry => "MC_BATTLE_MODE_START_TRY",
            Self::McBattleModeStartTryWithUniqueCharId => {
                "MC_BATTLE_MODE_START_TRY_WITH_UNIQUE_CHAR_ID"
            }
            Self::McEquipMakeGrade => "MC_EQUIP_MAKE_GRADE",
            Self::McEquipSmelting => "MC_EQUIP_SMELTING",
            Self::McDeckBattlePower => "MC_DECK_BATTLE_POWER",
            Self::McHuntDispatch => "MC_HUNT_DISPATCH",
            Self::McSkyWayDungeonPositionGroupLevelClear => {
                "MC_SKY_WAY_DUNGEON_POSITION_GROUP_LEVEL_CLEAR"
            }
            Self::McPackMainQuestHardLevelClear => "MC_PACK_MAIN_QUEST_HARD_LEVEL_CLEAR",
            Self::McCostumePotentialActivateNodeKind => {
                "MC_COSTUME_POTENTIAL_ACTIVATE_NODE_KIND"
            }
            Self::McPvpRankIdGoal => "MC_PVP_RANK_ID_GOAL",
            Self::McCostumeGradeGet => "MC_COSTUME_GRADE_GET",
            Self::McTalentSkillUpgrade => "MC_TALENT_SKILL_UPGRADE",
            Self::McSamGroupIdMissionUpdateCompleteCount => {
                "MC_SAM_GROUP_ID_MISSION_UPDATE_COMPLETE_COUNT"
            }
            Self::McOtherGroupIdMissionUpdateCompleteCount => {
                "MC_OTHER_GROUP_ID_MISSION_UPDATE_COMPLETE_COUNT"
            }
            Self::McItemCurrencyGet => "MC_ITEM_CURRENCY_GET",
            Self::McCafeteriaCumulativeReward => "MC_CAFETERIA_CUMULATIVE_REWARD",
            Self::McRhythmGameJudgmentCount => "MC_RHYTHM_GAME_JUDGMENT_COUNT",
            Self::McRhythmGameFullCombo => "MC_RHYTHM_GAME_FULL_COMBO",
            Self::McRhythmGameScore => "MC_RHYTHM_GAME_SCORE",
            Self::McRhythmGameGrade => "MC_RHYTHM_GAME_GRADE",
            Self::McRhythmGameDifficultyPlayEnd => "MC_RHYTHM_GAME_DIFFICULTY_PLAY_END",
            Self::McMyRoomVisit => "MC_MY_ROOM_VISIT",
            Self::McMyRoomExpand => "MC_MY_ROOM_EXPAND",
            Self::McMyRoomLike => "MC_MY_ROOM_LIKE",
            Self::McArcadeMenuVisit => "MC_ARCADE_MENU_VISIT",
            Self::McPackQuestIdClear => "MC_PACK_QUEST_ID_CLEAR",
            Self::McLobbyItemSettingChange => "MC_LOBBY_ITEM_SETTING_CHANGE",
            Self::McDatingEpisodeClear => "MC_DATING_EPISODE_CLEAR",
            Self::McGuildLobbyUiEnter => "MC_GUILD_LOBBY_UI_ENTER",
            Self::McCharImprintLevelUp => "MC_CHAR_IMPRINT_LEVEL_UP",
            Self::McCharAwakeActive => "MC_CHAR_AWAKE_ACTIVE",
            Self::McEquipMakingUiEnter => "MC_EQUIP_MAKING_UI_ENTER",
            Self::McEquipUpgradeUiEnter => "MC_EQUIP_UPGRADE_UI_ENTER",
            Self::McTryToBattleInMonsterHuntIncludeTraining => {
                "MC_TRY_TO_BATTLE_IN_MONSTER_HUNT_INCLUDE_TRAINING"
            }
            Self::McEvilCastleRageTowerClear => "MC_EVIL_CASTLE_RAGE_TOWER_CLEAR",
            Self::McEvilCastleEnvyTowerClear => "MC_EVIL_CASTLE_ENVY_TOWER_CLEAR",
            Self::McGachaUsePoint => "MC_GACHA_USE_POINT",
            Self::McGetGachaPickupCostume => "MC_GET_GACHA_PICKUP_COSTUME",
            Self::McCostumeUpgrade => "MC_COSTUME_UPGRADE",
            Self::McTryToGachaToTargetGachaGroup => {
                "MC_TRY_TO_GACHA_TO_TARGET_GACHA_GROUP"
            }
            Self::McGetGachaToTargetEquipmentItem => {
                "MC_GET_GACHA_TO_TARGET_EQUIPMENT_ITEM"
            }
            Self::McPackMainQuestNormalLevelClear => {
                "MC_PACK_MAIN_QUEST_NORMAL_LEVEL_CLEAR"
            }
            Self::McPackMainQuest1levelAcceptQuest => {
                "MC_PACK_MAIN_QUEST_1LEVEL_ACCEPT_QUEST"
            }
            Self::McPackMainQuest2levelAcceptQuest => {
                "MC_PACK_MAIN_QUEST_2LEVEL_ACCEPT_QUEST"
            }
            Self::McEnterPackInField => "MC_ENTER_PACK_IN_FIELD",
            Self::McCharTargetLevelUp => "MC_CHAR_TARGET_LEVEL_UP",
            Self::McCharTargetGradeUp => "MC_CHAR_TARGET_GRADE_UP",
            Self::McTryToCharScoutToTargetGrade => "MC_TRY_TO_CHAR_SCOUT_TO_TARGET_GRADE",
            Self::McUseRecoveryThroughMotel => "MC_USE_RECOVERY_THROUGH_MOTEL",
            Self::McBuyItemINShop => "MC_BUY_ITEM_iN_SHOP",
            Self::McSellItemINShop => "MC_SELL_ITEM_iN_SHOP",
            Self::McSuccessEquipmentUpgradeToTargetLevel => {
                "MC_SUCCESS_EQUIPMENT_UPGRADE_TO_TARGET_LEVEL"
            }
            Self::McTryToEquipEquipmentItem => "MC_TRY_TO_EQUIP_EQUIPMENT_ITEM",
            Self::McTryToChangeEquipmentItem => "MC_TRY_TO_CHANGE_EQUIPMENT_ITEM",
            Self::McTryToBreakEquipmentItem => "MC_TRY_TO_BREAK_EQUIPMENT_ITEM",
            Self::McTryToSmeltEquipmentItem => "MC_TRY_TO_SMELT_EQUIPMENT_ITEM",
            Self::McRewardByResearchFieldObject => "MC_REWARD_BY_RESEARCH_FIELD_OBJECT",
            Self::McRewardByFieldRewardObject => "MC_REWARD_BY_FIELD_REWARD_OBJECT",
            Self::McTalentSkillUpgradeToTargetGrade => {
                "MC_TALENT_SKILL_UPGRADE_TO_TARGET_GRADE"
            }
            Self::McRewardToAchievementLevel => "MC_REWARD_TO_ACHIEVEMENT_LEVEL",
            Self::McCompletedPictorialToTargetPictorialType => {
                "MC_COMPLETED_PICTORIAL_TO_TARGET_PICTORIAL_TYPE"
            }
            Self::McRewardToPassLevel => "MC_REWARD_TO_PASS_LEVEL",
            Self::McTryToUseAutoHunting => "MC_TRY_TO_USE_AUTO_HUNTING",
            Self::McTryToBattleInSkywayDungeonGroupId => {
                "MC_TRY_TO_BATTLE_IN_SKYWAY_DUNGEON_GROUP_ID"
            }
            Self::McTryToChangeCostumeInBattle => "MC_TRY_TO_CHANGE_COSTUME_IN_BATTLE",
            Self::McTryToBattleInEvilCastleToTargetFloor => {
                "MC_TRY_TO_BATTLE_IN_EVIL_CASTLE_TO_TARGET_FLOOR"
            }
            Self::McClearInEvilCastleToTargetFloor => {
                "MC_CLEAR_IN_EVIL_CASTLE_TO_TARGET_FLOOR"
            }
            Self::McTryToBattleInMonsterHunt => "MC_TRY_TO_BATTLE_IN_MONSTER_HUNT",
            Self::McPlatformConnectOrLogin => "MC_PLATFORM_CONNECT_OR_LOGIN",
            Self::McEvilCastleGreedTowerBattle => "MC_EVIL_CASTLE_GREED_TOWER_BATTLE",
            Self::McEvilCastleGreedTowerClear => "MC_EVIL_CASTLE_GREED_TOWER_CLEAR",
            Self::McWinToBattleInMonsterHunt => "MC_WIN_TO_BATTLE_IN_MONSTER_HUNT",
            Self::McPackNormalLevelClear => "MC_PACK_NORMAL_LEVEL_CLEAR",
            Self::McPackNpcQuestClearInPack => "MC_PACK_NPC_QUEST_CLEAR_IN_PACK",
            Self::McPackRewardByResearchFieldObject => {
                "MC_PACK_REWARD_BY_RESEARCH_FIELD_OBJECT"
            }
            Self::McPackRewardByUniqueBoxRewardFieldObject => {
                "MC_PACK_REWARD_BY_UNIQUE_BOX_REWARD_FIELD_OBJECT"
            }
            Self::McTotalWarUseCostume => "MC_TOTAL_WAR_USE_COSTUME",
            Self::McTotalWarTryCount => "MC_TOTAL_WAR_TRY_COUNT",
            Self::McTotalWarResultScore => "MC_TOTAL_WAR_RESULT_SCORE",
            Self::McTotalWarDistribution => "MC_TOTAL_WAR_DISTRIBUTION",
            Self::McMyRoomChangeSkinFloor => "MC_MY_ROOM_CHANGE_SKIN_FLOOR",
            Self::McMyRoomChangeSkinWall => "MC_MY_ROOM_CHANGE_SKIN_WALL",
            Self::McMyRoomInstallObjectFloor => "MC_MY_ROOM_INSTALL_OBJECT_FLOOR",
            Self::McMyRoomInstallObjectWall => "MC_MY_ROOM_INSTALL_OBJECT_WALL",
            Self::McMyRoomInstallCarpet => "MC_MY_ROOM_INSTALL_CARPET",
            Self::McMyRoomInstallCostume => "MC_MY_ROOM_INSTALL_COSTUME",
            Self::McMyRoomSaveTheRoom => "MC_MY_ROOM_SAVE_THE_ROOM",
            Self::McMyRoomInstallCostumeToLyingPosition => {
                "MC_MY_ROOM_INSTALL_COSTUME_TO_LYING_POSITION"
            }
            Self::McMyRoomInstallCostumeToSittingPosition => {
                "MC_MY_ROOM_INSTALL_COSTUME_TO_SITTING_POSITION"
            }
            Self::McMyRoomSetPresentiveRoom => "MC_MY_ROOM_SET_PRESENTIVE_ROOM",
            Self::McMyRoomBuyItem => "MC_MY_ROOM_BUY_ITEM",
            Self::McMyRoomInstallObject => "MC_MY_ROOM_INSTALL_OBJECT",
            Self::McMyRoomVisitAnotherUser => "MC_MY_ROOM_VISIT_ANOTHER_USER",
            Self::McMyRoomSaturationPercent => "MC_MY_ROOM_SATURATION_PERCENT",
            Self::McCostumePotentialActivationSkillNode => {
                "MC_COSTUME_POTENTIAL_ACTIVATION_SKILL_NODE"
            }
            Self::McEventFieldMiniGamePlay => "MC_EVENT_FIELD_MINI_GAME_PLAY",
            Self::McMiniGameSurvivalCharLevel => "MC_MINI_GAME_SURVIVAL_CHAR_LEVEL",
            Self::McMiniGameSurvivalLifeTime => "MC_MINI_GAME_SURVIVAL_LIFE_TIME",
            Self::McMiniGameSurvivalSkillMaxLevelCount => {
                "MC_MINI_GAME_SURVIVAL_SKILL_MAX_LEVEL_COUNT"
            }
            Self::McMiniGameSurvivalKillMonsterCount => {
                "MC_MINI_GAME_SURVIVAL_KILL_MONSTER_COUNT"
            }
            Self::McMiniGameSurvivalMapClear => "MC_MINI_GAME_SURVIVAL_MAP_CLEAR",
            Self::McMiniGameSurvivalSpecificSkillMaxLevel => {
                "MC_MINI_GAME_SURVIVAL_SPECIFIC_SKILL_MAX_LEVEL"
            }
            Self::McMiniGameDefenseWaveClear => "MC_MINI_GAME_DEFENSE_WAVE_CLEAR",
            Self::McMiniGameActionMonster => "MC_MINI_GAME_ACTION_MONSTER",
            Self::McMiniGameActionTimeMonster => "MC_MINI_GAME_ACTION_TIME_MONSTER",
            Self::McMiniGameActionUnderHitCount => "MC_MINI_GAME_ACTION_UNDER_HIT_COUNT",
            Self::McMiniGameActionPartBreakCount => {
                "MC_MINI_GAME_ACTION_PART_BREAK_COUNT"
            }
            Self::McMiniGameActionGroggyCount => "MC_MINI_GAME_ACTION_GROGGY_COUNT",
            Self::McMiniGameActionJustGuardAfterSpecialSkill => {
                "MC_MINI_GAME_ACTION_JUST_GUARD_AFTER_SPECIAL_SKILL"
            }
            Self::McMiniGameActionGroggyAfterDamage => {
                "MC_MINI_GAME_ACTION_GROGGY_AFTER_DAMAGE"
            }
            Self::McMiniGameActionDebuffAfterSpecialSkill => {
                "MC_MINI_GAME_ACTION_DEBUFF_AFTER_SPECIAL_SKILL"
            }
            Self::McMiniGameActionPartBreakId => "MC_MINI_GAME_ACTION_PART_BREAK_ID",
            Self::McMiniGameActionJustGuardAfterJustMissTime => {
                "MC_MINI_GAME_ACTION_JUST_GUARD_AFTER_JUST_MISS_TIME"
            }
            Self::McMiniGameActionJustMissCount => "MC_MINI_GAME_ACTION_JUST_MISS_COUNT",
            Self::McMiniGameActionJustGuardCount => {
                "MC_MINI_GAME_ACTION_JUST_GUARD_COUNT"
            }
            Self::McMiniGameActionHealCount => "MC_MINI_GAME_ACTION_HEAL_COUNT",
            Self::McMiniGameActionAngerAfterGroggyCount => {
                "MC_MINI_GAME_ACTION_ANGER_AFTER_GROGGY_COUNT"
            }
            Self::McCompletedDailyOpenEventMissionToTargetDay => {
                "MC_COMPLETED_DAILY_OPEN_EVENT_MISSION_TO_TARGET_DAY"
            }
            Self::McCompletedEventMissionInSameGroupId => {
                "MC_COMPLETED_EVENT_MISSION_IN_SAME_GROUP_ID"
            }
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MC_CONNECT" => Some(Self::McConnect),
            "MC_TODAY_QUEST_CLEAR" => Some(Self::McTodayQuestClear),
            "MC_MONSTER_KILL" => Some(Self::McMonsterKill),
            "MC_COLLECTION_GET" => Some(Self::McCollectionGet),
            "MC_WAYPOINT_USE" => Some(Self::McWaypointUse),
            "MC_FIELD_REWARD_MONSTER_CATCH" => Some(Self::McFieldRewardMonsterCatch),
            "MC_TALENT_SKILL_USE" => Some(Self::McTalentSkillUse),
            "MC_HUNTING_BATTLE" => Some(Self::McHuntingBattle),
            "MC_GACHA_BUY" => Some(Self::McGachaBuy),
            "MC_PACK_BATTLE" => Some(Self::McPackBattle),
            "MC_ITEM_CURRENCY_USE" => Some(Self::McItemCurrencyUse),
            "MC_RESOURCE_USE" => Some(Self::McResourceUse),
            "MC_CHAR_LEVEL_UP_ITEM_USE" => Some(Self::McCharLevelUpItemUse),
            "MC_EQUIPMENT_UPGRADE" => Some(Self::McEquipmentUpgrade),
            "MC_EVENT_MINI_GAME_COUNT" => Some(Self::McEventMiniGameCount),
            "MC_TARGET_BASIC_PASS_REWARD" => Some(Self::McTargetBasicPassReward),
            "MC_PACK_REWARD_BY_EVENT_LOST_COIN_REWARD_FIELD_OBJECT" => {
                Some(Self::McPackRewardByEventLostCoinRewardFieldObject)
            }
            "MC_BATTLE_MODE_START_TRY" => Some(Self::McBattleModeStartTry),
            "MC_BATTLE_MODE_START_TRY_WITH_UNIQUE_CHAR_ID" => {
                Some(Self::McBattleModeStartTryWithUniqueCharId)
            }
            "MC_EQUIP_MAKE_GRADE" => Some(Self::McEquipMakeGrade),
            "MC_EQUIP_SMELTING" => Some(Self::McEquipSmelting),
            "MC_DECK_BATTLE_POWER" => Some(Self::McDeckBattlePower),
            "MC_HUNT_DISPATCH" => Some(Self::McHuntDispatch),
            "MC_SKY_WAY_DUNGEON_POSITION_GROUP_LEVEL_CLEAR" => {
                Some(Self::McSkyWayDungeonPositionGroupLevelClear)
            }
            "MC_PACK_MAIN_QUEST_HARD_LEVEL_CLEAR" => {
                Some(Self::McPackMainQuestHardLevelClear)
            }
            "MC_COSTUME_POTENTIAL_ACTIVATE_NODE_KIND" => {
                Some(Self::McCostumePotentialActivateNodeKind)
            }
            "MC_PVP_RANK_ID_GOAL" => Some(Self::McPvpRankIdGoal),
            "MC_COSTUME_GRADE_GET" => Some(Self::McCostumeGradeGet),
            "MC_TALENT_SKILL_UPGRADE" => Some(Self::McTalentSkillUpgrade),
            "MC_SAM_GROUP_ID_MISSION_UPDATE_COMPLETE_COUNT" => {
                Some(Self::McSamGroupIdMissionUpdateCompleteCount)
            }
            "MC_OTHER_GROUP_ID_MISSION_UPDATE_COMPLETE_COUNT" => {
                Some(Self::McOtherGroupIdMissionUpdateCompleteCount)
            }
            "MC_ITEM_CURRENCY_GET" => Some(Self::McItemCurrencyGet),
            "MC_CAFETERIA_CUMULATIVE_REWARD" => Some(Self::McCafeteriaCumulativeReward),
            "MC_RHYTHM_GAME_JUDGMENT_COUNT" => Some(Self::McRhythmGameJudgmentCount),
            "MC_RHYTHM_GAME_FULL_COMBO" => Some(Self::McRhythmGameFullCombo),
            "MC_RHYTHM_GAME_SCORE" => Some(Self::McRhythmGameScore),
            "MC_RHYTHM_GAME_GRADE" => Some(Self::McRhythmGameGrade),
            "MC_RHYTHM_GAME_DIFFICULTY_PLAY_END" => {
                Some(Self::McRhythmGameDifficultyPlayEnd)
            }
            "MC_MY_ROOM_VISIT" => Some(Self::McMyRoomVisit),
            "MC_MY_ROOM_EXPAND" => Some(Self::McMyRoomExpand),
            "MC_MY_ROOM_LIKE" => Some(Self::McMyRoomLike),
            "MC_ARCADE_MENU_VISIT" => Some(Self::McArcadeMenuVisit),
            "MC_PACK_QUEST_ID_CLEAR" => Some(Self::McPackQuestIdClear),
            "MC_LOBBY_ITEM_SETTING_CHANGE" => Some(Self::McLobbyItemSettingChange),
            "MC_DATING_EPISODE_CLEAR" => Some(Self::McDatingEpisodeClear),
            "MC_GUILD_LOBBY_UI_ENTER" => Some(Self::McGuildLobbyUiEnter),
            "MC_CHAR_IMPRINT_LEVEL_UP" => Some(Self::McCharImprintLevelUp),
            "MC_CHAR_AWAKE_ACTIVE" => Some(Self::McCharAwakeActive),
            "MC_EQUIP_MAKING_UI_ENTER" => Some(Self::McEquipMakingUiEnter),
            "MC_EQUIP_UPGRADE_UI_ENTER" => Some(Self::McEquipUpgradeUiEnter),
            "MC_TRY_TO_BATTLE_IN_MONSTER_HUNT_INCLUDE_TRAINING" => {
                Some(Self::McTryToBattleInMonsterHuntIncludeTraining)
            }
            "MC_EVIL_CASTLE_RAGE_TOWER_CLEAR" => Some(Self::McEvilCastleRageTowerClear),
            "MC_EVIL_CASTLE_ENVY_TOWER_CLEAR" => Some(Self::McEvilCastleEnvyTowerClear),
            "MC_GACHA_USE_POINT" => Some(Self::McGachaUsePoint),
            "MC_GET_GACHA_PICKUP_COSTUME" => Some(Self::McGetGachaPickupCostume),
            "MC_COSTUME_UPGRADE" => Some(Self::McCostumeUpgrade),
            "MC_TRY_TO_GACHA_TO_TARGET_GACHA_GROUP" => {
                Some(Self::McTryToGachaToTargetGachaGroup)
            }
            "MC_GET_GACHA_TO_TARGET_EQUIPMENT_ITEM" => {
                Some(Self::McGetGachaToTargetEquipmentItem)
            }
            "MC_PACK_MAIN_QUEST_NORMAL_LEVEL_CLEAR" => {
                Some(Self::McPackMainQuestNormalLevelClear)
            }
            "MC_PACK_MAIN_QUEST_1LEVEL_ACCEPT_QUEST" => {
                Some(Self::McPackMainQuest1levelAcceptQuest)
            }
            "MC_PACK_MAIN_QUEST_2LEVEL_ACCEPT_QUEST" => {
                Some(Self::McPackMainQuest2levelAcceptQuest)
            }
            "MC_ENTER_PACK_IN_FIELD" => Some(Self::McEnterPackInField),
            "MC_CHAR_TARGET_LEVEL_UP" => Some(Self::McCharTargetLevelUp),
            "MC_CHAR_TARGET_GRADE_UP" => Some(Self::McCharTargetGradeUp),
            "MC_TRY_TO_CHAR_SCOUT_TO_TARGET_GRADE" => {
                Some(Self::McTryToCharScoutToTargetGrade)
            }
            "MC_USE_RECOVERY_THROUGH_MOTEL" => Some(Self::McUseRecoveryThroughMotel),
            "MC_BUY_ITEM_iN_SHOP" => Some(Self::McBuyItemINShop),
            "MC_SELL_ITEM_iN_SHOP" => Some(Self::McSellItemINShop),
            "MC_SUCCESS_EQUIPMENT_UPGRADE_TO_TARGET_LEVEL" => {
                Some(Self::McSuccessEquipmentUpgradeToTargetLevel)
            }
            "MC_TRY_TO_EQUIP_EQUIPMENT_ITEM" => Some(Self::McTryToEquipEquipmentItem),
            "MC_TRY_TO_CHANGE_EQUIPMENT_ITEM" => Some(Self::McTryToChangeEquipmentItem),
            "MC_TRY_TO_BREAK_EQUIPMENT_ITEM" => Some(Self::McTryToBreakEquipmentItem),
            "MC_TRY_TO_SMELT_EQUIPMENT_ITEM" => Some(Self::McTryToSmeltEquipmentItem),
            "MC_REWARD_BY_RESEARCH_FIELD_OBJECT" => {
                Some(Self::McRewardByResearchFieldObject)
            }
            "MC_REWARD_BY_FIELD_REWARD_OBJECT" => Some(Self::McRewardByFieldRewardObject),
            "MC_TALENT_SKILL_UPGRADE_TO_TARGET_GRADE" => {
                Some(Self::McTalentSkillUpgradeToTargetGrade)
            }
            "MC_REWARD_TO_ACHIEVEMENT_LEVEL" => Some(Self::McRewardToAchievementLevel),
            "MC_COMPLETED_PICTORIAL_TO_TARGET_PICTORIAL_TYPE" => {
                Some(Self::McCompletedPictorialToTargetPictorialType)
            }
            "MC_REWARD_TO_PASS_LEVEL" => Some(Self::McRewardToPassLevel),
            "MC_TRY_TO_USE_AUTO_HUNTING" => Some(Self::McTryToUseAutoHunting),
            "MC_TRY_TO_BATTLE_IN_SKYWAY_DUNGEON_GROUP_ID" => {
                Some(Self::McTryToBattleInSkywayDungeonGroupId)
            }
            "MC_TRY_TO_CHANGE_COSTUME_IN_BATTLE" => {
                Some(Self::McTryToChangeCostumeInBattle)
            }
            "MC_TRY_TO_BATTLE_IN_EVIL_CASTLE_TO_TARGET_FLOOR" => {
                Some(Self::McTryToBattleInEvilCastleToTargetFloor)
            }
            "MC_CLEAR_IN_EVIL_CASTLE_TO_TARGET_FLOOR" => {
                Some(Self::McClearInEvilCastleToTargetFloor)
            }
            "MC_TRY_TO_BATTLE_IN_MONSTER_HUNT" => Some(Self::McTryToBattleInMonsterHunt),
            "MC_PLATFORM_CONNECT_OR_LOGIN" => Some(Self::McPlatformConnectOrLogin),
            "MC_EVIL_CASTLE_GREED_TOWER_BATTLE" => {
                Some(Self::McEvilCastleGreedTowerBattle)
            }
            "MC_EVIL_CASTLE_GREED_TOWER_CLEAR" => Some(Self::McEvilCastleGreedTowerClear),
            "MC_WIN_TO_BATTLE_IN_MONSTER_HUNT" => Some(Self::McWinToBattleInMonsterHunt),
            "MC_PACK_NORMAL_LEVEL_CLEAR" => Some(Self::McPackNormalLevelClear),
            "MC_PACK_NPC_QUEST_CLEAR_IN_PACK" => Some(Self::McPackNpcQuestClearInPack),
            "MC_PACK_REWARD_BY_RESEARCH_FIELD_OBJECT" => {
                Some(Self::McPackRewardByResearchFieldObject)
            }
            "MC_PACK_REWARD_BY_UNIQUE_BOX_REWARD_FIELD_OBJECT" => {
                Some(Self::McPackRewardByUniqueBoxRewardFieldObject)
            }
            "MC_TOTAL_WAR_USE_COSTUME" => Some(Self::McTotalWarUseCostume),
            "MC_TOTAL_WAR_TRY_COUNT" => Some(Self::McTotalWarTryCount),
            "MC_TOTAL_WAR_RESULT_SCORE" => Some(Self::McTotalWarResultScore),
            "MC_TOTAL_WAR_DISTRIBUTION" => Some(Self::McTotalWarDistribution),
            "MC_MY_ROOM_CHANGE_SKIN_FLOOR" => Some(Self::McMyRoomChangeSkinFloor),
            "MC_MY_ROOM_CHANGE_SKIN_WALL" => Some(Self::McMyRoomChangeSkinWall),
            "MC_MY_ROOM_INSTALL_OBJECT_FLOOR" => Some(Self::McMyRoomInstallObjectFloor),
            "MC_MY_ROOM_INSTALL_OBJECT_WALL" => Some(Self::McMyRoomInstallObjectWall),
            "MC_MY_ROOM_INSTALL_CARPET" => Some(Self::McMyRoomInstallCarpet),
            "MC_MY_ROOM_INSTALL_COSTUME" => Some(Self::McMyRoomInstallCostume),
            "MC_MY_ROOM_SAVE_THE_ROOM" => Some(Self::McMyRoomSaveTheRoom),
            "MC_MY_ROOM_INSTALL_COSTUME_TO_LYING_POSITION" => {
                Some(Self::McMyRoomInstallCostumeToLyingPosition)
            }
            "MC_MY_ROOM_INSTALL_COSTUME_TO_SITTING_POSITION" => {
                Some(Self::McMyRoomInstallCostumeToSittingPosition)
            }
            "MC_MY_ROOM_SET_PRESENTIVE_ROOM" => Some(Self::McMyRoomSetPresentiveRoom),
            "MC_MY_ROOM_BUY_ITEM" => Some(Self::McMyRoomBuyItem),
            "MC_MY_ROOM_INSTALL_OBJECT" => Some(Self::McMyRoomInstallObject),
            "MC_MY_ROOM_VISIT_ANOTHER_USER" => Some(Self::McMyRoomVisitAnotherUser),
            "MC_MY_ROOM_SATURATION_PERCENT" => Some(Self::McMyRoomSaturationPercent),
            "MC_COSTUME_POTENTIAL_ACTIVATION_SKILL_NODE" => {
                Some(Self::McCostumePotentialActivationSkillNode)
            }
            "MC_EVENT_FIELD_MINI_GAME_PLAY" => Some(Self::McEventFieldMiniGamePlay),
            "MC_MINI_GAME_SURVIVAL_CHAR_LEVEL" => Some(Self::McMiniGameSurvivalCharLevel),
            "MC_MINI_GAME_SURVIVAL_LIFE_TIME" => Some(Self::McMiniGameSurvivalLifeTime),
            "MC_MINI_GAME_SURVIVAL_SKILL_MAX_LEVEL_COUNT" => {
                Some(Self::McMiniGameSurvivalSkillMaxLevelCount)
            }
            "MC_MINI_GAME_SURVIVAL_KILL_MONSTER_COUNT" => {
                Some(Self::McMiniGameSurvivalKillMonsterCount)
            }
            "MC_MINI_GAME_SURVIVAL_MAP_CLEAR" => Some(Self::McMiniGameSurvivalMapClear),
            "MC_MINI_GAME_SURVIVAL_SPECIFIC_SKILL_MAX_LEVEL" => {
                Some(Self::McMiniGameSurvivalSpecificSkillMaxLevel)
            }
            "MC_MINI_GAME_DEFENSE_WAVE_CLEAR" => Some(Self::McMiniGameDefenseWaveClear),
            "MC_MINI_GAME_ACTION_MONSTER" => Some(Self::McMiniGameActionMonster),
            "MC_MINI_GAME_ACTION_TIME_MONSTER" => Some(Self::McMiniGameActionTimeMonster),
            "MC_MINI_GAME_ACTION_UNDER_HIT_COUNT" => {
                Some(Self::McMiniGameActionUnderHitCount)
            }
            "MC_MINI_GAME_ACTION_PART_BREAK_COUNT" => {
                Some(Self::McMiniGameActionPartBreakCount)
            }
            "MC_MINI_GAME_ACTION_GROGGY_COUNT" => Some(Self::McMiniGameActionGroggyCount),
            "MC_MINI_GAME_ACTION_JUST_GUARD_AFTER_SPECIAL_SKILL" => {
                Some(Self::McMiniGameActionJustGuardAfterSpecialSkill)
            }
            "MC_MINI_GAME_ACTION_GROGGY_AFTER_DAMAGE" => {
                Some(Self::McMiniGameActionGroggyAfterDamage)
            }
            "MC_MINI_GAME_ACTION_DEBUFF_AFTER_SPECIAL_SKILL" => {
                Some(Self::McMiniGameActionDebuffAfterSpecialSkill)
            }
            "MC_MINI_GAME_ACTION_PART_BREAK_ID" => {
                Some(Self::McMiniGameActionPartBreakId)
            }
            "MC_MINI_GAME_ACTION_JUST_GUARD_AFTER_JUST_MISS_TIME" => {
                Some(Self::McMiniGameActionJustGuardAfterJustMissTime)
            }
            "MC_MINI_GAME_ACTION_JUST_MISS_COUNT" => {
                Some(Self::McMiniGameActionJustMissCount)
            }
            "MC_MINI_GAME_ACTION_JUST_GUARD_COUNT" => {
                Some(Self::McMiniGameActionJustGuardCount)
            }
            "MC_MINI_GAME_ACTION_HEAL_COUNT" => Some(Self::McMiniGameActionHealCount),
            "MC_MINI_GAME_ACTION_ANGER_AFTER_GROGGY_COUNT" => {
                Some(Self::McMiniGameActionAngerAfterGroggyCount)
            }
            "MC_COMPLETED_DAILY_OPEN_EVENT_MISSION_TO_TARGET_DAY" => {
                Some(Self::McCompletedDailyOpenEventMissionToTargetDay)
            }
            "MC_COMPLETED_EVENT_MISSION_IN_SAME_GROUP_ID" => {
                Some(Self::McCompletedEventMissionInSameGroupId)
            }
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineContentOpenType {
    ContentNone = 0,
    ContentUnlockPack = 1,
    ContentUnlockHunting = 2,
    ContentUnlockNoneUse = 3,
    ContentUnlockGacha = 4,
    ContentUnlockUiEvent = 5,
    ContentUnlockUiShop = 6,
    ContentUnlockUiPass = 7,
    ContentUnlockUiMission = 8,
    ContentUnlockUiMail = 9,
    ContentUnlockUiPictorialBook = 10,
    ContentUnlockMonsterHunt = 11,
    ContentUnlockAchievement = 12,
    ContentUnlockPremiumAttendance = 13,
    ContentUnlockHuntDispatch = 14,
    ContentUnlockFriend = 15,
    ContentUnlockMyRoom = 16,
    ContentUnlockGuild = 17,
    ContentUnlockEvilCastleRogueLike = 18,
    ContentUnlockDating = 19,
}
impl DefineContentOpenType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ContentNone => "CONTENT_NONE",
            Self::ContentUnlockPack => "CONTENT_UNLOCK_PACK",
            Self::ContentUnlockHunting => "CONTENT_UNLOCK_HUNTING",
            Self::ContentUnlockNoneUse => "CONTENT_UNLOCK_NONE_USE",
            Self::ContentUnlockGacha => "CONTENT_UNLOCK_GACHA",
            Self::ContentUnlockUiEvent => "CONTENT_UNLOCK_UI_EVENT",
            Self::ContentUnlockUiShop => "CONTENT_UNLOCK_UI_SHOP",
            Self::ContentUnlockUiPass => "CONTENT_UNLOCK_UI_PASS",
            Self::ContentUnlockUiMission => "CONTENT_UNLOCK_UI_MISSION",
            Self::ContentUnlockUiMail => "CONTENT_UNLOCK_UI_MAIL",
            Self::ContentUnlockUiPictorialBook => "CONTENT_UNLOCK_UI_PICTORIAL_BOOK",
            Self::ContentUnlockMonsterHunt => "CONTENT_UNLOCK_MONSTER_HUNT",
            Self::ContentUnlockAchievement => "CONTENT_UNLOCK_ACHIEVEMENT",
            Self::ContentUnlockPremiumAttendance => "CONTENT_UNLOCK_PREMIUM_ATTENDANCE",
            Self::ContentUnlockHuntDispatch => "CONTENT_UNLOCK_HUNT_DISPATCH",
            Self::ContentUnlockFriend => "CONTENT_UNLOCK_FRIEND",
            Self::ContentUnlockMyRoom => "CONTENT_UNLOCK_MY_ROOM",
            Self::ContentUnlockGuild => "CONTENT_UNLOCK_GUILD",
            Self::ContentUnlockEvilCastleRogueLike => {
                "CONTENT_UNLOCK_EVIL_CASTLE_ROGUE_LIKE"
            }
            Self::ContentUnlockDating => "CONTENT_UNLOCK_DATING",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CONTENT_NONE" => Some(Self::ContentNone),
            "CONTENT_UNLOCK_PACK" => Some(Self::ContentUnlockPack),
            "CONTENT_UNLOCK_HUNTING" => Some(Self::ContentUnlockHunting),
            "CONTENT_UNLOCK_NONE_USE" => Some(Self::ContentUnlockNoneUse),
            "CONTENT_UNLOCK_GACHA" => Some(Self::ContentUnlockGacha),
            "CONTENT_UNLOCK_UI_EVENT" => Some(Self::ContentUnlockUiEvent),
            "CONTENT_UNLOCK_UI_SHOP" => Some(Self::ContentUnlockUiShop),
            "CONTENT_UNLOCK_UI_PASS" => Some(Self::ContentUnlockUiPass),
            "CONTENT_UNLOCK_UI_MISSION" => Some(Self::ContentUnlockUiMission),
            "CONTENT_UNLOCK_UI_MAIL" => Some(Self::ContentUnlockUiMail),
            "CONTENT_UNLOCK_UI_PICTORIAL_BOOK" => {
                Some(Self::ContentUnlockUiPictorialBook)
            }
            "CONTENT_UNLOCK_MONSTER_HUNT" => Some(Self::ContentUnlockMonsterHunt),
            "CONTENT_UNLOCK_ACHIEVEMENT" => Some(Self::ContentUnlockAchievement),
            "CONTENT_UNLOCK_PREMIUM_ATTENDANCE" => {
                Some(Self::ContentUnlockPremiumAttendance)
            }
            "CONTENT_UNLOCK_HUNT_DISPATCH" => Some(Self::ContentUnlockHuntDispatch),
            "CONTENT_UNLOCK_FRIEND" => Some(Self::ContentUnlockFriend),
            "CONTENT_UNLOCK_MY_ROOM" => Some(Self::ContentUnlockMyRoom),
            "CONTENT_UNLOCK_GUILD" => Some(Self::ContentUnlockGuild),
            "CONTENT_UNLOCK_EVIL_CASTLE_ROGUE_LIKE" => {
                Some(Self::ContentUnlockEvilCastleRogueLike)
            }
            "CONTENT_UNLOCK_DATING" => Some(Self::ContentUnlockDating),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineContentTicketType {
    ContentTicketNone = 0,
    ContentTicketOpenContent = 1,
    ContentTicketMonthlyFee = 2,
    ContentTicketAttendancePackage = 3,
}
impl DefineContentTicketType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ContentTicketNone => "CONTENT_TICKET_NONE",
            Self::ContentTicketOpenContent => "CONTENT_TICKET_OPEN_CONTENT",
            Self::ContentTicketMonthlyFee => "CONTENT_TICKET_MONTHLY_FEE",
            Self::ContentTicketAttendancePackage => "CONTENT_TICKET_ATTENDANCE_PACKAGE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CONTENT_TICKET_NONE" => Some(Self::ContentTicketNone),
            "CONTENT_TICKET_OPEN_CONTENT" => Some(Self::ContentTicketOpenContent),
            "CONTENT_TICKET_MONTHLY_FEE" => Some(Self::ContentTicketMonthlyFee),
            "CONTENT_TICKET_ATTENDANCE_PACKAGE" => {
                Some(Self::ContentTicketAttendancePackage)
            }
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineAccessUserType {
    AuNormal = 0,
    AuAdmin = 1,
    AuLoginBlock = 2,
    AuChatBlock = 3,
    AuLeaveReservation = 4,
    AuLeaveUser = 5,
    AuPreset = 6,
    AuDummy = 7,
    AuLoginPeriodBlock = 8,
    AuAutoWorkPlaceBlock = 9,
}
impl DefineAccessUserType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::AuNormal => "AU_NORMAL",
            Self::AuAdmin => "AU_ADMIN",
            Self::AuLoginBlock => "AU_LOGIN_BLOCK",
            Self::AuChatBlock => "AU_CHAT_BLOCK",
            Self::AuLeaveReservation => "AU_LEAVE_RESERVATION",
            Self::AuLeaveUser => "AU_LEAVE_USER",
            Self::AuPreset => "AU_PRESET",
            Self::AuDummy => "AU_DUMMY",
            Self::AuLoginPeriodBlock => "AU_LOGIN_PERIOD_BLOCK",
            Self::AuAutoWorkPlaceBlock => "AU_AUTO_WORK_PLACE_BLOCK",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "AU_NORMAL" => Some(Self::AuNormal),
            "AU_ADMIN" => Some(Self::AuAdmin),
            "AU_LOGIN_BLOCK" => Some(Self::AuLoginBlock),
            "AU_CHAT_BLOCK" => Some(Self::AuChatBlock),
            "AU_LEAVE_RESERVATION" => Some(Self::AuLeaveReservation),
            "AU_LEAVE_USER" => Some(Self::AuLeaveUser),
            "AU_PRESET" => Some(Self::AuPreset),
            "AU_DUMMY" => Some(Self::AuDummy),
            "AU_LOGIN_PERIOD_BLOCK" => Some(Self::AuLoginPeriodBlock),
            "AU_AUTO_WORK_PLACE_BLOCK" => Some(Self::AuAutoWorkPlaceBlock),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineTeamType {
    TtNone = 0,
    TtBlue = 1,
    TtRed = 2,
}
impl DefineTeamType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::TtNone => "TT_NONE",
            Self::TtBlue => "TT_BLUE",
            Self::TtRed => "TT_RED",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TT_NONE" => Some(Self::TtNone),
            "TT_BLUE" => Some(Self::TtBlue),
            "TT_RED" => Some(Self::TtRed),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineBattleVerifyState {
    BattleVerifyStateNone = 0,
    BattleVerifyStateInProgress = 1,
    BattleVerifyStateSuccess = 3,
    BattleVerifyStateError = 4,
}
impl DefineBattleVerifyState {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::BattleVerifyStateNone => "BATTLE_VERIFY_STATE_NONE",
            Self::BattleVerifyStateInProgress => "BATTLE_VERIFY_STATE_IN_PROGRESS",
            Self::BattleVerifyStateSuccess => "BATTLE_VERIFY_STATE_SUCCESS",
            Self::BattleVerifyStateError => "BATTLE_VERIFY_STATE_ERROR",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "BATTLE_VERIFY_STATE_NONE" => Some(Self::BattleVerifyStateNone),
            "BATTLE_VERIFY_STATE_IN_PROGRESS" => Some(Self::BattleVerifyStateInProgress),
            "BATTLE_VERIFY_STATE_SUCCESS" => Some(Self::BattleVerifyStateSuccess),
            "BATTLE_VERIFY_STATE_ERROR" => Some(Self::BattleVerifyStateError),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineRandomBoxDropType {
    RbdOpen = 0,
    RbdDirect = 1,
}
impl DefineRandomBoxDropType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::RbdOpen => "RBD_OPEN",
            Self::RbdDirect => "RBD_DIRECT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "RBD_OPEN" => Some(Self::RbdOpen),
            "RBD_DIRECT" => Some(Self::RbdDirect),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineGachaBuyType {
    GbFree = 0,
    GbNormal = 1,
    GbCash = 2,
}
impl DefineGachaBuyType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GbFree => "GB_FREE",
            Self::GbNormal => "GB_NORMAL",
            Self::GbCash => "GB_CASH",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GB_FREE" => Some(Self::GbFree),
            "GB_NORMAL" => Some(Self::GbNormal),
            "GB_CASH" => Some(Self::GbCash),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineGachaLogType {
    GachaLogCostumePickUp = 0,
    GachaLogCostume = 1,
    GachaLogEquipPickUp = 2,
    GachaLogEquip = 3,
}
impl DefineGachaLogType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GachaLogCostumePickUp => "GACHA_LOG_COSTUME_PICK_UP",
            Self::GachaLogCostume => "GACHA_LOG_COSTUME",
            Self::GachaLogEquipPickUp => "GACHA_LOG_EQUIP_PICK_UP",
            Self::GachaLogEquip => "GACHA_LOG_EQUIP",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GACHA_LOG_COSTUME_PICK_UP" => Some(Self::GachaLogCostumePickUp),
            "GACHA_LOG_COSTUME" => Some(Self::GachaLogCostume),
            "GACHA_LOG_EQUIP_PICK_UP" => Some(Self::GachaLogEquipPickUp),
            "GACHA_LOG_EQUIP" => Some(Self::GachaLogEquip),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineTalentSkillTargetType {
    TstSelf = 0,
    TstNpc = 1,
}
impl DefineTalentSkillTargetType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::TstSelf => "TST_SELF",
            Self::TstNpc => "TST_NPC",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TST_SELF" => Some(Self::TstSelf),
            "TST_NPC" => Some(Self::TstNpc),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineNoticeType {
    NtNotice = 0,
    NtEvent = 1,
    NtUpdate = 2,
    NtSurvey = 3,
    NtEmergency = 4,
    NtDeveloperNote = 5,
    NtPopupEvent = 6,
}
impl DefineNoticeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::NtNotice => "NT_NOTICE",
            Self::NtEvent => "NT_EVENT",
            Self::NtUpdate => "NT_UPDATE",
            Self::NtSurvey => "NT_SURVEY",
            Self::NtEmergency => "NT_EMERGENCY",
            Self::NtDeveloperNote => "NT_DEVELOPER_NOTE",
            Self::NtPopupEvent => "NT_POPUP_EVENT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NT_NOTICE" => Some(Self::NtNotice),
            "NT_EVENT" => Some(Self::NtEvent),
            "NT_UPDATE" => Some(Self::NtUpdate),
            "NT_SURVEY" => Some(Self::NtSurvey),
            "NT_EMERGENCY" => Some(Self::NtEmergency),
            "NT_DEVELOPER_NOTE" => Some(Self::NtDeveloperNote),
            "NT_POPUP_EVENT" => Some(Self::NtPopupEvent),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineNoticeContentsType {
    NctText = 0,
    NctImage = 1,
}
impl DefineNoticeContentsType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::NctText => "NCT_TEXT",
            Self::NctImage => "NCT_IMAGE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NCT_TEXT" => Some(Self::NctText),
            "NCT_IMAGE" => Some(Self::NctImage),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEventType {
    EventAlwaysAttendance = 0,
    EventLimitAttendance = 1,
    EventWorldBuff = 3,
    EventMission = 4,
    EventPass = 5,
    EventDropItem = 6,
    EventExchange = 7,
    EventPack = 8,
    EventBattle = 9,
    EventStory = 10,
    EventMiniGame = 11,
    EventMiniGameBoard = 12,
    EventMiniGameBingo = 13,
    EventLostCoin = 14,
    EventShop = 15,
    EventGachaStepUp = 16,
    EventPuzzle = 17,
    EventChargeCost = 18,
    EventMiniGameRoulette = 19,
}
impl DefineEventType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::EventAlwaysAttendance => "EVENT_ALWAYS_ATTENDANCE",
            Self::EventLimitAttendance => "EVENT_LIMIT_ATTENDANCE",
            Self::EventWorldBuff => "EVENT_WORLD_BUFF",
            Self::EventMission => "EVENT_MISSION",
            Self::EventPass => "EVENT_PASS",
            Self::EventDropItem => "EVENT_DROP_ITEM",
            Self::EventExchange => "EVENT_EXCHANGE",
            Self::EventPack => "EVENT_PACK",
            Self::EventBattle => "EVENT_BATTLE",
            Self::EventStory => "EVENT_STORY",
            Self::EventMiniGame => "EVENT_MINI_GAME",
            Self::EventMiniGameBoard => "EVENT_MINI_GAME_BOARD",
            Self::EventMiniGameBingo => "EVENT_MINI_GAME_BINGO",
            Self::EventLostCoin => "EVENT_LOST_COIN",
            Self::EventShop => "EVENT_SHOP",
            Self::EventGachaStepUp => "EVENT_GACHA_STEP_UP",
            Self::EventPuzzle => "EVENT_PUZZLE",
            Self::EventChargeCost => "EVENT_CHARGE_COST",
            Self::EventMiniGameRoulette => "EVENT_MINI_GAME_ROULETTE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "EVENT_ALWAYS_ATTENDANCE" => Some(Self::EventAlwaysAttendance),
            "EVENT_LIMIT_ATTENDANCE" => Some(Self::EventLimitAttendance),
            "EVENT_WORLD_BUFF" => Some(Self::EventWorldBuff),
            "EVENT_MISSION" => Some(Self::EventMission),
            "EVENT_PASS" => Some(Self::EventPass),
            "EVENT_DROP_ITEM" => Some(Self::EventDropItem),
            "EVENT_EXCHANGE" => Some(Self::EventExchange),
            "EVENT_PACK" => Some(Self::EventPack),
            "EVENT_BATTLE" => Some(Self::EventBattle),
            "EVENT_STORY" => Some(Self::EventStory),
            "EVENT_MINI_GAME" => Some(Self::EventMiniGame),
            "EVENT_MINI_GAME_BOARD" => Some(Self::EventMiniGameBoard),
            "EVENT_MINI_GAME_BINGO" => Some(Self::EventMiniGameBingo),
            "EVENT_LOST_COIN" => Some(Self::EventLostCoin),
            "EVENT_SHOP" => Some(Self::EventShop),
            "EVENT_GACHA_STEP_UP" => Some(Self::EventGachaStepUp),
            "EVENT_PUZZLE" => Some(Self::EventPuzzle),
            "EVENT_CHARGE_COST" => Some(Self::EventChargeCost),
            "EVENT_MINI_GAME_ROULETTE" => Some(Self::EventMiniGameRoulette),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineScoutType {
    ScoutNormal = 0,
    ScoutSpecial = 1,
}
impl DefineScoutType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ScoutNormal => "SCOUT_NORMAL",
            Self::ScoutSpecial => "SCOUT_SPECIAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SCOUT_NORMAL" => Some(Self::ScoutNormal),
            "SCOUT_SPECIAL" => Some(Self::ScoutSpecial),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineElementType {
    TypeNone = 0,
    TypeCash = 1,
    TypeJewelry = 2,
    TypeFreeJewelry = 3,
    TypeGold = 4,
    TypeFood = 5,
    TypeChar = 6,
    TypeCookingRecipe = 7,
    TypeResource = 8,
    TypeRandomBox = 9,
    TypeEquip = 10,
    TypeCostume = 11,
    TypeCatalyst = 12,
    TypeQuest = 13,
    TypeUseItem = 14,
    TypePvpTicket = 15,
    TypeMedal = 16,
    TypeCollection = 17,
    TypeEvilCastleCoin = 18,
    TypeContentTicket = 19,
    TypeMileage = 20,
    TypeHuntingGroundAp = 21,
    TypeHopePowder = 22,
    TypeBonusHuntingAp = 23,
    TypePvpTicketStack = 24,
    TypeLobbySettingItem = 25,
    TypeTitle = 26,
    TypeMyRoomItem = 27,
    TypeMyRoomTrophy = 28,
    TypeInstantUseItem = 29,
    TypeEventApFree = 30,
    TypeEventApStack = 31,
    TypeFreeTorchLightAp = 32,
    TypeTorchLightAp = 33,
    TypeRogueLikeRelic = 34,
    TypeRogueLikeAp = 35,
    TypeRogueLikeObsidian = 36,
    TypeRogueLikeGold = 37,
    TypeRogueLikeApStack = 38,
    TypeGuildCoin = 39,
    TypeDatingApFree = 41,
    TypeDatingApStack = 42,
    TypeMiniGameCoin = 43,
    TypeMiniGameRhythmChar = 44,
    TypePrestigeSkin = 45,
    TypeDirectRandomBox = 99,
}
impl DefineElementType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::TypeNone => "_TYPE_NONE",
            Self::TypeCash => "_TYPE_CASH",
            Self::TypeJewelry => "_TYPE_JEWELRY",
            Self::TypeFreeJewelry => "_TYPE_FREE_JEWELRY",
            Self::TypeGold => "_TYPE_GOLD",
            Self::TypeFood => "_TYPE_FOOD",
            Self::TypeChar => "_TYPE_CHAR",
            Self::TypeCookingRecipe => "_TYPE_COOKING_RECIPE",
            Self::TypeResource => "_TYPE_RESOURCE",
            Self::TypeRandomBox => "_TYPE_RANDOM_BOX",
            Self::TypeEquip => "_TYPE_EQUIP",
            Self::TypeCostume => "_TYPE_COSTUME",
            Self::TypeCatalyst => "_TYPE_CATALYST",
            Self::TypeQuest => "_TYPE_QUEST",
            Self::TypeUseItem => "_TYPE_USE_ITEM",
            Self::TypePvpTicket => "_TYPE_PVP_TICKET",
            Self::TypeMedal => "_TYPE_MEDAL",
            Self::TypeCollection => "_TYPE_COLLECTION",
            Self::TypeEvilCastleCoin => "_TYPE_EVIL_CASTLE_COIN",
            Self::TypeContentTicket => "_TYPE_CONTENT_TICKET",
            Self::TypeMileage => "_TYPE_MILEAGE",
            Self::TypeHuntingGroundAp => "_TYPE_HUNTING_GROUND_AP",
            Self::TypeHopePowder => "_TYPE_HOPE_POWDER",
            Self::TypeBonusHuntingAp => "_TYPE_BONUS_HUNTING_AP",
            Self::TypePvpTicketStack => "_TYPE_PVP_TICKET_STACK",
            Self::TypeLobbySettingItem => "_TYPE_LOBBY_SETTING_ITEM",
            Self::TypeTitle => "_TYPE_TITLE",
            Self::TypeMyRoomItem => "_TYPE_MY_ROOM_ITEM",
            Self::TypeMyRoomTrophy => "_TYPE_MY_ROOM_TROPHY",
            Self::TypeInstantUseItem => "_TYPE_INSTANT_USE_ITEM",
            Self::TypeEventApFree => "_TYPE_EVENT_AP_FREE",
            Self::TypeEventApStack => "_TYPE_EVENT_AP_STACK",
            Self::TypeFreeTorchLightAp => "_TYPE_FREE_TORCH_LIGHT_AP",
            Self::TypeTorchLightAp => "_TYPE_TORCH_LIGHT_AP",
            Self::TypeRogueLikeRelic => "_TYPE_ROGUE_LIKE_RELIC",
            Self::TypeRogueLikeAp => "_TYPE_ROGUE_LIKE_AP",
            Self::TypeRogueLikeObsidian => "_TYPE_ROGUE_LIKE_OBSIDIAN",
            Self::TypeRogueLikeGold => "_TYPE_ROGUE_LIKE_GOLD",
            Self::TypeRogueLikeApStack => "_TYPE_ROGUE_LIKE_AP_STACK",
            Self::TypeGuildCoin => "_TYPE_GUILD_COIN",
            Self::TypeDatingApFree => "_TYPE_DATING_AP_FREE",
            Self::TypeDatingApStack => "_TYPE_DATING_AP_STACK",
            Self::TypeMiniGameCoin => "_TYPE_MINI_GAME_COIN",
            Self::TypeMiniGameRhythmChar => "_TYPE_MINI_GAME_RHYTHM_CHAR",
            Self::TypePrestigeSkin => "_TYPE_PRESTIGE_SKIN",
            Self::TypeDirectRandomBox => "_TYPE_DIRECT_RANDOM_BOX",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "_TYPE_NONE" => Some(Self::TypeNone),
            "_TYPE_CASH" => Some(Self::TypeCash),
            "_TYPE_JEWELRY" => Some(Self::TypeJewelry),
            "_TYPE_FREE_JEWELRY" => Some(Self::TypeFreeJewelry),
            "_TYPE_GOLD" => Some(Self::TypeGold),
            "_TYPE_FOOD" => Some(Self::TypeFood),
            "_TYPE_CHAR" => Some(Self::TypeChar),
            "_TYPE_COOKING_RECIPE" => Some(Self::TypeCookingRecipe),
            "_TYPE_RESOURCE" => Some(Self::TypeResource),
            "_TYPE_RANDOM_BOX" => Some(Self::TypeRandomBox),
            "_TYPE_EQUIP" => Some(Self::TypeEquip),
            "_TYPE_COSTUME" => Some(Self::TypeCostume),
            "_TYPE_CATALYST" => Some(Self::TypeCatalyst),
            "_TYPE_QUEST" => Some(Self::TypeQuest),
            "_TYPE_USE_ITEM" => Some(Self::TypeUseItem),
            "_TYPE_PVP_TICKET" => Some(Self::TypePvpTicket),
            "_TYPE_MEDAL" => Some(Self::TypeMedal),
            "_TYPE_COLLECTION" => Some(Self::TypeCollection),
            "_TYPE_EVIL_CASTLE_COIN" => Some(Self::TypeEvilCastleCoin),
            "_TYPE_CONTENT_TICKET" => Some(Self::TypeContentTicket),
            "_TYPE_MILEAGE" => Some(Self::TypeMileage),
            "_TYPE_HUNTING_GROUND_AP" => Some(Self::TypeHuntingGroundAp),
            "_TYPE_HOPE_POWDER" => Some(Self::TypeHopePowder),
            "_TYPE_BONUS_HUNTING_AP" => Some(Self::TypeBonusHuntingAp),
            "_TYPE_PVP_TICKET_STACK" => Some(Self::TypePvpTicketStack),
            "_TYPE_LOBBY_SETTING_ITEM" => Some(Self::TypeLobbySettingItem),
            "_TYPE_TITLE" => Some(Self::TypeTitle),
            "_TYPE_MY_ROOM_ITEM" => Some(Self::TypeMyRoomItem),
            "_TYPE_MY_ROOM_TROPHY" => Some(Self::TypeMyRoomTrophy),
            "_TYPE_INSTANT_USE_ITEM" => Some(Self::TypeInstantUseItem),
            "_TYPE_EVENT_AP_FREE" => Some(Self::TypeEventApFree),
            "_TYPE_EVENT_AP_STACK" => Some(Self::TypeEventApStack),
            "_TYPE_FREE_TORCH_LIGHT_AP" => Some(Self::TypeFreeTorchLightAp),
            "_TYPE_TORCH_LIGHT_AP" => Some(Self::TypeTorchLightAp),
            "_TYPE_ROGUE_LIKE_RELIC" => Some(Self::TypeRogueLikeRelic),
            "_TYPE_ROGUE_LIKE_AP" => Some(Self::TypeRogueLikeAp),
            "_TYPE_ROGUE_LIKE_OBSIDIAN" => Some(Self::TypeRogueLikeObsidian),
            "_TYPE_ROGUE_LIKE_GOLD" => Some(Self::TypeRogueLikeGold),
            "_TYPE_ROGUE_LIKE_AP_STACK" => Some(Self::TypeRogueLikeApStack),
            "_TYPE_GUILD_COIN" => Some(Self::TypeGuildCoin),
            "_TYPE_DATING_AP_FREE" => Some(Self::TypeDatingApFree),
            "_TYPE_DATING_AP_STACK" => Some(Self::TypeDatingApStack),
            "_TYPE_MINI_GAME_COIN" => Some(Self::TypeMiniGameCoin),
            "_TYPE_MINI_GAME_RHYTHM_CHAR" => Some(Self::TypeMiniGameRhythmChar),
            "_TYPE_PRESTIGE_SKIN" => Some(Self::TypePrestigeSkin),
            "_TYPE_DIRECT_RANDOM_BOX" => Some(Self::TypeDirectRandomBox),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePurchaseLimitType {
    PlUnlimited = 0,
    PlDaily = 1,
    PlWeekly = 2,
    PlMonthly = 3,
    PlAccount = 4,
}
impl DefinePurchaseLimitType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PlUnlimited => "PL_UNLIMITED",
            Self::PlDaily => "PL_DAILY",
            Self::PlWeekly => "PL_WEEKLY",
            Self::PlMonthly => "PL_MONTHLY",
            Self::PlAccount => "PL_ACCOUNT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PL_UNLIMITED" => Some(Self::PlUnlimited),
            "PL_DAILY" => Some(Self::PlDaily),
            "PL_WEEKLY" => Some(Self::PlWeekly),
            "PL_MONTHLY" => Some(Self::PlMonthly),
            "PL_ACCOUNT" => Some(Self::PlAccount),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineProductTimeLimitType {
    PtlUnlimited = 0,
    PtlLimited = 1,
    PtlLimitedPurchaseCountReset = 2,
    PtlLimitedUserCustomActive = 3,
}
impl DefineProductTimeLimitType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PtlUnlimited => "PTL_UNLIMITED",
            Self::PtlLimited => "PTL_LIMITED",
            Self::PtlLimitedPurchaseCountReset => "PTL_LIMITED_PURCHASE_COUNT_RESET",
            Self::PtlLimitedUserCustomActive => "PTL_LIMITED_USER_CUSTOM_ACTIVE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PTL_UNLIMITED" => Some(Self::PtlUnlimited),
            "PTL_LIMITED" => Some(Self::PtlLimited),
            "PTL_LIMITED_PURCHASE_COUNT_RESET" => {
                Some(Self::PtlLimitedPurchaseCountReset)
            }
            "PTL_LIMITED_USER_CUSTOM_ACTIVE" => Some(Self::PtlLimitedUserCustomActive),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMonsterType {
    MonsterSymbolNormal = 0,
    MonsterSymbolBoss = 1,
    MonsterFieldReward = 2,
    MonsterFieldRush = 3,
    MonsterFieldChase = 4,
    MonsterSymbolStory = 5,
    MonsterFieldGuard = 6,
    Monster3dSymbolNormal = 101,
    Monster3dSymbolBoss = 102,
}
impl DefineMonsterType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MonsterSymbolNormal => "MONSTER_SYMBOL_NORMAL",
            Self::MonsterSymbolBoss => "MONSTER_SYMBOL_BOSS",
            Self::MonsterFieldReward => "MONSTER_FIELD_REWARD",
            Self::MonsterFieldRush => "MONSTER_FIELD_RUSH",
            Self::MonsterFieldChase => "MONSTER_FIELD_CHASE",
            Self::MonsterSymbolStory => "MONSTER_SYMBOL_STORY",
            Self::MonsterFieldGuard => "MONSTER_FIELD_GUARD",
            Self::Monster3dSymbolNormal => "MONSTER_3D_SYMBOL_NORMAL",
            Self::Monster3dSymbolBoss => "MONSTER_3D_SYMBOL_BOSS",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MONSTER_SYMBOL_NORMAL" => Some(Self::MonsterSymbolNormal),
            "MONSTER_SYMBOL_BOSS" => Some(Self::MonsterSymbolBoss),
            "MONSTER_FIELD_REWARD" => Some(Self::MonsterFieldReward),
            "MONSTER_FIELD_RUSH" => Some(Self::MonsterFieldRush),
            "MONSTER_FIELD_CHASE" => Some(Self::MonsterFieldChase),
            "MONSTER_SYMBOL_STORY" => Some(Self::MonsterSymbolStory),
            "MONSTER_FIELD_GUARD" => Some(Self::MonsterFieldGuard),
            "MONSTER_3D_SYMBOL_NORMAL" => Some(Self::Monster3dSymbolNormal),
            "MONSTER_3D_SYMBOL_BOSS" => Some(Self::Monster3dSymbolBoss),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineSkyWayDungeonType {
    SwdNone = 0,
    SwdGoblin = 1,
    SwdSlime = 2,
    SwdCrystalFire = 3,
    SwdCrystalWater = 4,
    SwdCrystalWind = 5,
    SwdCrystalLight = 6,
    SwdCrystalDark = 7,
    SwdMax = 8,
}
impl DefineSkyWayDungeonType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::SwdNone => "SWD_NONE",
            Self::SwdGoblin => "SWD_GOBLIN",
            Self::SwdSlime => "SWD_SLIME",
            Self::SwdCrystalFire => "SWD_CRYSTAL_FIRE",
            Self::SwdCrystalWater => "SWD_CRYSTAL_WATER",
            Self::SwdCrystalWind => "SWD_CRYSTAL_WIND",
            Self::SwdCrystalLight => "SWD_CRYSTAL_LIGHT",
            Self::SwdCrystalDark => "SWD_CRYSTAL_DARK",
            Self::SwdMax => "SWD_MAX",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SWD_NONE" => Some(Self::SwdNone),
            "SWD_GOBLIN" => Some(Self::SwdGoblin),
            "SWD_SLIME" => Some(Self::SwdSlime),
            "SWD_CRYSTAL_FIRE" => Some(Self::SwdCrystalFire),
            "SWD_CRYSTAL_WATER" => Some(Self::SwdCrystalWater),
            "SWD_CRYSTAL_WIND" => Some(Self::SwdCrystalWind),
            "SWD_CRYSTAL_LIGHT" => Some(Self::SwdCrystalLight),
            "SWD_CRYSTAL_DARK" => Some(Self::SwdCrystalDark),
            "SWD_MAX" => Some(Self::SwdMax),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineSkyWayDungeonLevelType {
    SkdlNormal = 0,
    SkdlDifficult = 1,
    SkdlVeryDifficult = 2,
}
impl DefineSkyWayDungeonLevelType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::SkdlNormal => "SKDL_NORMAL",
            Self::SkdlDifficult => "SKDL_DIFFICULT",
            Self::SkdlVeryDifficult => "SKDL_VERY_DIFFICULT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SKDL_NORMAL" => Some(Self::SkdlNormal),
            "SKDL_DIFFICULT" => Some(Self::SkdlDifficult),
            "SKDL_VERY_DIFFICULT" => Some(Self::SkdlVeryDifficult),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePlatformLinkType {
    PlatformLinkTypeLink = 0,
    PlatformLinkTypeSwap = 1,
    PlatformLinkTypeConflictLink = 2,
}
impl DefinePlatformLinkType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PlatformLinkTypeLink => "PLATFORM_LINK_TYPE_LINK",
            Self::PlatformLinkTypeSwap => "PLATFORM_LINK_TYPE_SWAP",
            Self::PlatformLinkTypeConflictLink => "PLATFORM_LINK_TYPE_CONFLICT_LINK",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PLATFORM_LINK_TYPE_LINK" => Some(Self::PlatformLinkTypeLink),
            "PLATFORM_LINK_TYPE_SWAP" => Some(Self::PlatformLinkTypeSwap),
            "PLATFORM_LINK_TYPE_CONFLICT_LINK" => {
                Some(Self::PlatformLinkTypeConflictLink)
            }
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineLanguageType {
    LangNone = 0,
    Korea = 1,
    English = 2,
    Japan = 3,
    Taiwan = 4,
    China = 5,
}
impl DefineLanguageType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::LangNone => "LANG_NONE",
            Self::Korea => "KOREA",
            Self::English => "ENGLISH",
            Self::Japan => "JAPAN",
            Self::Taiwan => "TAIWAN",
            Self::China => "CHINA",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "LANG_NONE" => Some(Self::LangNone),
            "KOREA" => Some(Self::Korea),
            "ENGLISH" => Some(Self::English),
            "JAPAN" => Some(Self::Japan),
            "TAIWAN" => Some(Self::Taiwan),
            "CHINA" => Some(Self::China),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMissionGroupType {
    MgtDaily = 0,
    MgtWeekly = 1,
    MgtEvent = 2,
}
impl DefineMissionGroupType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgtDaily => "MGT_DAILY",
            Self::MgtWeekly => "MGT_WEEKLY",
            Self::MgtEvent => "MGT_EVENT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGT_DAILY" => Some(Self::MgtDaily),
            "MGT_WEEKLY" => Some(Self::MgtWeekly),
            "MGT_EVENT" => Some(Self::MgtEvent),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineAchievementConditionType {
    AchieveNone = 0,
    AchieveItemTypeGet = 1,
    AchieveItemTypeUse = 2,
    AchieveResourceGet = 3,
    AchieveResourceUse = 4,
    AchieveCollectionQuestItemGet = 5,
    AchieveRecipeGet = 6,
    AchieveEquipmentGet = 7,
    AchieveEquipmentBreak = 8,
    AchieveEquipmentUpgradeSuccess = 9,
    AchieveEquipmentUpgradeFail = 10,
    AchieveEquipmentSmeltingSuccess = 11,
    AchieveEquipmentSmeltingFail = 12,
    AchieveCooking = 13,
    AchieveMainQuestAllClearLevel0 = 14,
    AchieveMainQuestAllClearLevel1 = 15,
    AchieveMainQuestAllClearLevel2 = 16,
    AchieveQuestClearDaily = 17,
    AchieveQuestClearSub = 18,
    AchieveCharGet = 19,
    AchieveCharGradeGet = 20,
    AchieveCharClassUp = 21,
    AchieveCharLevelUp = 22,
    AchieveTalentSkillUse = 23,
    AchieveTalentUpgrade = 24,
    AchieveTalentGradeGoal = 25,
    AchieveCostumeGet = 26,
    AchieveCostumeUpgrade = 27,
    AchieveFiledObjectRewardType1Get = 28,
    AchieveFiledObjectResearchRewardGet = 29,
    AchieveFiledObjectRewardType5Get = 30,
    AchieveFiledObjectRewardType2Get = 31,
    AchieveWayPointActive = 32,
    AchieveMapRewardAll = 33,
    AchieveMapRewardAllInPack = 34,
    AchieveNpcShopBuy = 35,
    AchieveNpcShopSell = 36,
    AchievePvpBattleWin = 37,
    AchievePvpBattleLose = 38,
    AchievePvpRankGoal = 39,
    AchieveCashShopBuy = 40,
    AchieveEvilCastleRankGoalFloor1 = 41,
    AchieveEvilCastleClearId = 42,
    AchieveFieldMonsterBattleWin = 43,
    AchieveFieldMonsterBattleLose = 44,
    AchieveFieldMonsterKill = 45,
    AchieveFiledObjectRewardType6Get = 46,
    AchieveHuntingGroundClearLevel0 = 47,
    AchieveHuntingGroundClearLevel1 = 48,
    AchieveHuntingGroundClearLevel2 = 49,
    AchieveLogin = 50,
    AchieveUserIdChange = 51,
    AchievePlatformAccountLink = 52,
    AchieveMissionClear = 53,
    AchieveGachaBuy = 54,
    AchieveFoodEat = 55,
    AchieveBuffFoodEat = 56,
    AchieveItemInvenSlotAdd = 57,
    AchieveEquipmentSlotAdd = 58,
    AchieveItemStoragePut = 59,
    AchieveEquipmentStoragePut = 60,
    AchieveItemStorageInvenSlotAdd = 61,
    AchieveEquipmentStorageSlotAdd = 62,
    AchieveFiledMonsterDamage = 63,
    AchieveFiledMonsterReward = 64,
    AchieveFiledMonsterCrashMove = 65,
    AchieveNpcTalk = 66,
    AchieveInnUse = 67,
    AchieveReputationGoodGoal = 68,
    AchieveReputationBadGoal = 69,
    AchieveAchievementLevelGoal = 70,
    AchievePortraitCostumeChange = 71,
    AchieveMainQuestAllClearLevel3 = 72,
    AchieveMainQuestAllClearLevel4 = 73,
    AchieveEvilCastleRankGoalFloor2 = 74,
    AchieveEvilCastleRankGoalFloor3 = 75,
    AchieveEvilCastleRankGoalFloor4 = 76,
    AchieveEvilCastleRankGoalFloor5 = 77,
    AchieveEvilCastleRankGoalFloor6 = 78,
    AchieveJewelryGet = 79,
    AchieveJewelryUse = 80,
    AchievePvpApUse = 81,
    AchieveHuntingApUse = 82,
    AchieveCostumeUpgradeTargetCharGrade = 83,
    AchieveMonsterHuntBattleEndCount = 84,
    AchieveMonsterHuntBattleEndLevel = 85,
    AchieveEquipmentPrivateGet = 86,
    AchieveEquipmentPrivateUpgradeSuccess = 87,
    AchieveEvilCastleGreedTowerClear = 88,
    AchieveEvilCastleGreedTowerAllClearBattleChallenge = 89,
    AchieveEvilCastleRankGoal = 90,
    AchieveMonsterHuntRankGoal = 91,
    AchieveHaveRankTitle = 92,
    AchieveGachaCostumeGrade5Get3 = 93,
    AchieveGachaPrivateUniqueGrade4Get5 = 94,
    AchieveTotalWarDamage = 95,
    AchieveTorchLightApUse = 96,
    AchieveTotalWarBattleEndCount = 97,
    AchieveCostumePotentialActivationSkillNode = 98,
    AchieveEventStoryClearTargetGroupId = 99,
    AchieveGuildAttendance = 100,
    AchieveGuildSupporterChar = 101,
    AchieveEvilCastleRogueLikeClearCount = 102,
    AchieveEvilCastleRogueLikeScore = 103,
    AchieveEvilCastleRogueLikeRankGoal = 104,
    AchieveDatingPointMax = 105,
    AchieveGuildRaidNormalBattleClearLevel = 106,
    AchieveGuildRaidBossBattleClearLevel = 107,
    AchieveGuildRaidTopPercent = 108,
    AchieveGuildSupporterCharBorrow = 109,
    AchieveCharGrowthRelatedComplex = 111,
    AchieveCharAnyCostumePotentialAll = 112,
    AchieveCharAwakeActive = 113,
    AchieveCharAnyCostumeMaxLevel = 114,
    AchieveCharHaveUrPrivateWeaponEquip = 115,
    AchieveMiniGameSichuanStageClear = 116,
    AchieveMissionClearCountInTargetGroupId = 117,
    AchieveMiniGameActionMissionClear = 118,
    AchieveMyRoomLikeCount = 119,
    AchieveMyRoomInMonthlyTopLike = 120,
    AchieveCafeteriaLevel = 121,
    AchieveMiniGameSurvivalChallengeSurviveTime = 122,
    AchieveMiniGameDefenseWaveClear = 123,
    AchieveMiniGameActionHuntDifficultyClear = 124,
    AchieveMiniGameRhythmClearModeType = 125,
    AchieveEvilCastleScoreFloor1 = 126,
    AchieveEvilCastleScoreFloor2 = 127,
    AchieveEvilCastleScoreFloor3 = 128,
    AchieveEvilCastleScoreFloor4 = 129,
    AchieveEvilCastleScoreFloor5 = 130,
    AchieveEvilCastleScoreFloor6 = 131,
    AchieveEvilCastleTotalScore = 132,
    AchieveEvilCastleRageTowerClear = 133,
    AchieveEvilCastleEnvyTowerClear = 134,
    AchieveEvilCastleRogueLikeClear = 135,
    AchieveReserveCostumeBattleWin = 136,
    AchievePrestigeSkinGet = 137,
}
impl DefineAchievementConditionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::AchieveNone => "ACHIEVE_NONE",
            Self::AchieveItemTypeGet => "ACHIEVE_ITEM_TYPE_GET",
            Self::AchieveItemTypeUse => "ACHIEVE_ITEM_TYPE_USE",
            Self::AchieveResourceGet => "ACHIEVE_RESOURCE_GET",
            Self::AchieveResourceUse => "ACHIEVE_RESOURCE_USE",
            Self::AchieveCollectionQuestItemGet => "ACHIEVE_COLLECTION_QUEST_ITEM_GET",
            Self::AchieveRecipeGet => "ACHIEVE_RECIPE_GET",
            Self::AchieveEquipmentGet => "ACHIEVE_EQUIPMENT_GET",
            Self::AchieveEquipmentBreak => "ACHIEVE_EQUIPMENT_BREAK",
            Self::AchieveEquipmentUpgradeSuccess => "ACHIEVE_EQUIPMENT_UPGRADE_SUCCESS",
            Self::AchieveEquipmentUpgradeFail => "ACHIEVE_EQUIPMENT_UPGRADE_FAIL",
            Self::AchieveEquipmentSmeltingSuccess => "ACHIEVE_EQUIPMENT_SMELTING_SUCCESS",
            Self::AchieveEquipmentSmeltingFail => "ACHIEVE_EQUIPMENT_SMELTING_FAIL",
            Self::AchieveCooking => "ACHIEVE_COOKING",
            Self::AchieveMainQuestAllClearLevel0 => {
                "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_0"
            }
            Self::AchieveMainQuestAllClearLevel1 => {
                "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_1"
            }
            Self::AchieveMainQuestAllClearLevel2 => {
                "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_2"
            }
            Self::AchieveQuestClearDaily => "ACHIEVE_QUEST_CLEAR_DAILY",
            Self::AchieveQuestClearSub => "ACHIEVE_QUEST_CLEAR_SUB",
            Self::AchieveCharGet => "ACHIEVE_CHAR_GET",
            Self::AchieveCharGradeGet => "ACHIEVE_CHAR_GRADE_GET",
            Self::AchieveCharClassUp => "ACHIEVE_CHAR_CLASS_UP",
            Self::AchieveCharLevelUp => "ACHIEVE_CHAR_LEVEL_UP",
            Self::AchieveTalentSkillUse => "ACHIEVE_TALENT_SKILL_USE",
            Self::AchieveTalentUpgrade => "ACHIEVE_TALENT_UPGRADE",
            Self::AchieveTalentGradeGoal => "ACHIEVE_TALENT_GRADE_GOAL",
            Self::AchieveCostumeGet => "ACHIEVE_COSTUME_GET",
            Self::AchieveCostumeUpgrade => "ACHIEVE_COSTUME_UPGRADE",
            Self::AchieveFiledObjectRewardType1Get => {
                "ACHIEVE_FILED_OBJECT_REWARD_TYPE_1_GET"
            }
            Self::AchieveFiledObjectResearchRewardGet => {
                "ACHIEVE_FILED_OBJECT_RESEARCH_REWARD_GET"
            }
            Self::AchieveFiledObjectRewardType5Get => {
                "ACHIEVE_FILED_OBJECT_REWARD_TYPE_5_GET"
            }
            Self::AchieveFiledObjectRewardType2Get => {
                "ACHIEVE_FILED_OBJECT_REWARD_TYPE_2_GET"
            }
            Self::AchieveWayPointActive => "ACHIEVE_WAY_POINT_ACTIVE",
            Self::AchieveMapRewardAll => "ACHIEVE_MAP_REWARD_ALL",
            Self::AchieveMapRewardAllInPack => "ACHIEVE_MAP_REWARD_ALL_IN_PACK",
            Self::AchieveNpcShopBuy => "ACHIEVE_NPC_SHOP_BUY",
            Self::AchieveNpcShopSell => "ACHIEVE_NPC_SHOP_SELL",
            Self::AchievePvpBattleWin => "ACHIEVE_PVP_BATTLE_WIN",
            Self::AchievePvpBattleLose => "ACHIEVE_PVP_BATTLE_LOSE",
            Self::AchievePvpRankGoal => "ACHIEVE_PVP_RANK_GOAL",
            Self::AchieveCashShopBuy => "ACHIEVE_CASH_SHOP_BUY",
            Self::AchieveEvilCastleRankGoalFloor1 => {
                "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_1"
            }
            Self::AchieveEvilCastleClearId => "ACHIEVE_EVIL_CASTLE_CLEAR_ID",
            Self::AchieveFieldMonsterBattleWin => "ACHIEVE_FIELD_MONSTER_BATTLE_WIN",
            Self::AchieveFieldMonsterBattleLose => "ACHIEVE_FIELD_MONSTER_BATTLE_LOSE",
            Self::AchieveFieldMonsterKill => "ACHIEVE_FIELD_MONSTER_KILL",
            Self::AchieveFiledObjectRewardType6Get => {
                "ACHIEVE_FILED_OBJECT_REWARD_TYPE_6_GET"
            }
            Self::AchieveHuntingGroundClearLevel0 => {
                "ACHIEVE_HUNTING_GROUND_CLEAR_LEVEL_0"
            }
            Self::AchieveHuntingGroundClearLevel1 => {
                "ACHIEVE_HUNTING_GROUND_CLEAR_LEVEL_1"
            }
            Self::AchieveHuntingGroundClearLevel2 => {
                "ACHIEVE_HUNTING_GROUND_CLEAR_LEVEL_2"
            }
            Self::AchieveLogin => "ACHIEVE_LOGIN",
            Self::AchieveUserIdChange => "ACHIEVE_USER_ID_CHANGE",
            Self::AchievePlatformAccountLink => "ACHIEVE_PLATFORM_ACCOUNT_LINK",
            Self::AchieveMissionClear => "ACHIEVE_MISSION_CLEAR",
            Self::AchieveGachaBuy => "ACHIEVE_GACHA_BUY",
            Self::AchieveFoodEat => "ACHIEVE_FOOD_EAT",
            Self::AchieveBuffFoodEat => "ACHIEVE_BUFF_FOOD_EAT",
            Self::AchieveItemInvenSlotAdd => "ACHIEVE_ITEM_INVEN_SLOT_ADD",
            Self::AchieveEquipmentSlotAdd => "ACHIEVE_EQUIPMENT_SLOT_ADD",
            Self::AchieveItemStoragePut => "ACHIEVE_ITEM_STORAGE_PUT",
            Self::AchieveEquipmentStoragePut => "ACHIEVE_EQUIPMENT_STORAGE_PUT",
            Self::AchieveItemStorageInvenSlotAdd => "ACHIEVE_ITEM_STORAGE_INVEN_SLOT_ADD",
            Self::AchieveEquipmentStorageSlotAdd => "ACHIEVE_EQUIPMENT_STORAGE_SLOT_ADD",
            Self::AchieveFiledMonsterDamage => "ACHIEVE_FILED_MONSTER_DAMAGE",
            Self::AchieveFiledMonsterReward => "ACHIEVE_FILED_MONSTER_REWARD",
            Self::AchieveFiledMonsterCrashMove => "ACHIEVE_FILED_MONSTER_CRASH_MOVE",
            Self::AchieveNpcTalk => "ACHIEVE_NPC_TALK",
            Self::AchieveInnUse => "ACHIEVE_INN_USE",
            Self::AchieveReputationGoodGoal => "ACHIEVE_REPUTATION_GOOD_GOAL",
            Self::AchieveReputationBadGoal => "ACHIEVE_REPUTATION_BAD_GOAL",
            Self::AchieveAchievementLevelGoal => "ACHIEVE_ACHIEVEMENT_LEVEL_GOAL",
            Self::AchievePortraitCostumeChange => "ACHIEVE_PORTRAIT_COSTUME_CHANGE",
            Self::AchieveMainQuestAllClearLevel3 => {
                "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_3"
            }
            Self::AchieveMainQuestAllClearLevel4 => {
                "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_4"
            }
            Self::AchieveEvilCastleRankGoalFloor2 => {
                "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_2"
            }
            Self::AchieveEvilCastleRankGoalFloor3 => {
                "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_3"
            }
            Self::AchieveEvilCastleRankGoalFloor4 => {
                "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_4"
            }
            Self::AchieveEvilCastleRankGoalFloor5 => {
                "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_5"
            }
            Self::AchieveEvilCastleRankGoalFloor6 => {
                "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_6"
            }
            Self::AchieveJewelryGet => "ACHIEVE_JEWELRY_GET",
            Self::AchieveJewelryUse => "ACHIEVE_JEWELRY_USE",
            Self::AchievePvpApUse => "ACHIEVE_PVP_AP_USE",
            Self::AchieveHuntingApUse => "ACHIEVE_HUNTING_AP_USE",
            Self::AchieveCostumeUpgradeTargetCharGrade => {
                "ACHIEVE_COSTUME_UPGRADE_TARGET_CHAR_GRADE"
            }
            Self::AchieveMonsterHuntBattleEndCount => {
                "ACHIEVE_MONSTER_HUNT_BATTLE_END_COUNT"
            }
            Self::AchieveMonsterHuntBattleEndLevel => {
                "ACHIEVE_MONSTER_HUNT_BATTLE_END_LEVEL"
            }
            Self::AchieveEquipmentPrivateGet => "ACHIEVE_EQUIPMENT_PRIVATE_GET",
            Self::AchieveEquipmentPrivateUpgradeSuccess => {
                "ACHIEVE_EQUIPMENT_PRIVATE_UPGRADE_SUCCESS"
            }
            Self::AchieveEvilCastleGreedTowerClear => {
                "ACHIEVE_EVIL_CASTLE_GREED_TOWER_CLEAR"
            }
            Self::AchieveEvilCastleGreedTowerAllClearBattleChallenge => {
                "ACHIEVE_EVIL_CASTLE_GREED_TOWER_ALL_CLEAR_BATTLE_CHALLENGE"
            }
            Self::AchieveEvilCastleRankGoal => "ACHIEVE_EVIL_CASTLE_RANK_GOAL",
            Self::AchieveMonsterHuntRankGoal => "ACHIEVE_MONSTER_HUNT_RANK_GOAL",
            Self::AchieveHaveRankTitle => "ACHIEVE_HAVE_RANK_TITLE",
            Self::AchieveGachaCostumeGrade5Get3 => "ACHIEVE_GACHA_COSTUME_GRADE_5_GET_3",
            Self::AchieveGachaPrivateUniqueGrade4Get5 => {
                "ACHIEVE_GACHA_PRIVATE_UNIQUE_GRADE_4_GET_5"
            }
            Self::AchieveTotalWarDamage => "ACHIEVE_TOTAL_WAR_DAMAGE",
            Self::AchieveTorchLightApUse => "ACHIEVE_TORCH_LIGHT_AP_USE",
            Self::AchieveTotalWarBattleEndCount => "ACHIEVE_TOTAL_WAR_BATTLE_END_COUNT",
            Self::AchieveCostumePotentialActivationSkillNode => {
                "ACHIEVE_COSTUME_POTENTIAL_ACTIVATION_SKILL_NODE"
            }
            Self::AchieveEventStoryClearTargetGroupId => {
                "ACHIEVE_EVENT_STORY_CLEAR_TARGET_GROUP_ID"
            }
            Self::AchieveGuildAttendance => "ACHIEVE_GUILD_ATTENDANCE",
            Self::AchieveGuildSupporterChar => "ACHIEVE_GUILD_SUPPORTER_CHAR",
            Self::AchieveEvilCastleRogueLikeClearCount => {
                "ACHIEVE_EVIL_CASTLE_ROGUE_LIKE_CLEAR_COUNT"
            }
            Self::AchieveEvilCastleRogueLikeScore => {
                "ACHIEVE_EVIL_CASTLE_ROGUE_LIKE_SCORE"
            }
            Self::AchieveEvilCastleRogueLikeRankGoal => {
                "ACHIEVE_EVIL_CASTLE_ROGUE_LIKE_RANK_GOAL"
            }
            Self::AchieveDatingPointMax => "ACHIEVE_DATING_POINT_MAX",
            Self::AchieveGuildRaidNormalBattleClearLevel => {
                "ACHIEVE_GUILD_RAID_NORMAL_BATTLE_CLEAR_LEVEL"
            }
            Self::AchieveGuildRaidBossBattleClearLevel => {
                "ACHIEVE_GUILD_RAID_BOSS_BATTLE_CLEAR_LEVEL"
            }
            Self::AchieveGuildRaidTopPercent => "ACHIEVE_GUILD_RAID_TOP_PERCENT",
            Self::AchieveGuildSupporterCharBorrow => {
                "ACHIEVE_GUILD_SUPPORTER_CHAR_BORROW"
            }
            Self::AchieveCharGrowthRelatedComplex => {
                "ACHIEVE_CHAR_GROWTH_RELATED_COMPLEX"
            }
            Self::AchieveCharAnyCostumePotentialAll => {
                "ACHIEVE_CHAR_ANY_COSTUME_POTENTIAL_ALL"
            }
            Self::AchieveCharAwakeActive => "ACHIEVE_CHAR_AWAKE_ACTIVE",
            Self::AchieveCharAnyCostumeMaxLevel => "ACHIEVE_CHAR_ANY_COSTUME_MAX_LEVEL",
            Self::AchieveCharHaveUrPrivateWeaponEquip => {
                "ACHIEVE_CHAR_HAVE_UR_PRIVATE_WEAPON_EQUIP"
            }
            Self::AchieveMiniGameSichuanStageClear => {
                "ACHIEVE_MINI_GAME_SICHUAN_STAGE_CLEAR"
            }
            Self::AchieveMissionClearCountInTargetGroupId => {
                "ACHIEVE_MISSION_CLEAR_COUNT_IN_TARGET_GROUP_ID"
            }
            Self::AchieveMiniGameActionMissionClear => {
                "ACHIEVE_MINI_GAME_ACTION_MISSION_CLEAR"
            }
            Self::AchieveMyRoomLikeCount => "ACHIEVE_MY_ROOM_LIKE_COUNT",
            Self::AchieveMyRoomInMonthlyTopLike => "ACHIEVE_MY_ROOM_IN_MONTHLY_TOP_LIKE",
            Self::AchieveCafeteriaLevel => "ACHIEVE_CAFETERIA_LEVEL",
            Self::AchieveMiniGameSurvivalChallengeSurviveTime => {
                "ACHIEVE_MINI_GAME_SURVIVAL_CHALLENGE_SURVIVE_TIME"
            }
            Self::AchieveMiniGameDefenseWaveClear => {
                "ACHIEVE_MINI_GAME_DEFENSE_WAVE_CLEAR"
            }
            Self::AchieveMiniGameActionHuntDifficultyClear => {
                "ACHIEVE_MINI_GAME_ACTION_HUNT_DIFFICULTY_CLEAR"
            }
            Self::AchieveMiniGameRhythmClearModeType => {
                "ACHIEVE_MINI_GAME_RHYTHM_CLEAR_MODE_TYPE"
            }
            Self::AchieveEvilCastleScoreFloor1 => "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_1",
            Self::AchieveEvilCastleScoreFloor2 => "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_2",
            Self::AchieveEvilCastleScoreFloor3 => "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_3",
            Self::AchieveEvilCastleScoreFloor4 => "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_4",
            Self::AchieveEvilCastleScoreFloor5 => "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_5",
            Self::AchieveEvilCastleScoreFloor6 => "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_6",
            Self::AchieveEvilCastleTotalScore => "ACHIEVE_EVIL_CASTLE_TOTAL_SCORE",
            Self::AchieveEvilCastleRageTowerClear => {
                "ACHIEVE_EVIL_CASTLE_RAGE_TOWER_CLEAR"
            }
            Self::AchieveEvilCastleEnvyTowerClear => {
                "ACHIEVE_EVIL_CASTLE_ENVY_TOWER_CLEAR"
            }
            Self::AchieveEvilCastleRogueLikeClear => {
                "ACHIEVE_EVIL_CASTLE_ROGUE_LIKE_CLEAR"
            }
            Self::AchieveReserveCostumeBattleWin => "ACHIEVE_RESERVE_COSTUME_BATTLE_WIN",
            Self::AchievePrestigeSkinGet => "ACHIEVE_PRESTIGE_SKIN_GET",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "ACHIEVE_NONE" => Some(Self::AchieveNone),
            "ACHIEVE_ITEM_TYPE_GET" => Some(Self::AchieveItemTypeGet),
            "ACHIEVE_ITEM_TYPE_USE" => Some(Self::AchieveItemTypeUse),
            "ACHIEVE_RESOURCE_GET" => Some(Self::AchieveResourceGet),
            "ACHIEVE_RESOURCE_USE" => Some(Self::AchieveResourceUse),
            "ACHIEVE_COLLECTION_QUEST_ITEM_GET" => {
                Some(Self::AchieveCollectionQuestItemGet)
            }
            "ACHIEVE_RECIPE_GET" => Some(Self::AchieveRecipeGet),
            "ACHIEVE_EQUIPMENT_GET" => Some(Self::AchieveEquipmentGet),
            "ACHIEVE_EQUIPMENT_BREAK" => Some(Self::AchieveEquipmentBreak),
            "ACHIEVE_EQUIPMENT_UPGRADE_SUCCESS" => {
                Some(Self::AchieveEquipmentUpgradeSuccess)
            }
            "ACHIEVE_EQUIPMENT_UPGRADE_FAIL" => Some(Self::AchieveEquipmentUpgradeFail),
            "ACHIEVE_EQUIPMENT_SMELTING_SUCCESS" => {
                Some(Self::AchieveEquipmentSmeltingSuccess)
            }
            "ACHIEVE_EQUIPMENT_SMELTING_FAIL" => Some(Self::AchieveEquipmentSmeltingFail),
            "ACHIEVE_COOKING" => Some(Self::AchieveCooking),
            "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_0" => {
                Some(Self::AchieveMainQuestAllClearLevel0)
            }
            "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_1" => {
                Some(Self::AchieveMainQuestAllClearLevel1)
            }
            "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_2" => {
                Some(Self::AchieveMainQuestAllClearLevel2)
            }
            "ACHIEVE_QUEST_CLEAR_DAILY" => Some(Self::AchieveQuestClearDaily),
            "ACHIEVE_QUEST_CLEAR_SUB" => Some(Self::AchieveQuestClearSub),
            "ACHIEVE_CHAR_GET" => Some(Self::AchieveCharGet),
            "ACHIEVE_CHAR_GRADE_GET" => Some(Self::AchieveCharGradeGet),
            "ACHIEVE_CHAR_CLASS_UP" => Some(Self::AchieveCharClassUp),
            "ACHIEVE_CHAR_LEVEL_UP" => Some(Self::AchieveCharLevelUp),
            "ACHIEVE_TALENT_SKILL_USE" => Some(Self::AchieveTalentSkillUse),
            "ACHIEVE_TALENT_UPGRADE" => Some(Self::AchieveTalentUpgrade),
            "ACHIEVE_TALENT_GRADE_GOAL" => Some(Self::AchieveTalentGradeGoal),
            "ACHIEVE_COSTUME_GET" => Some(Self::AchieveCostumeGet),
            "ACHIEVE_COSTUME_UPGRADE" => Some(Self::AchieveCostumeUpgrade),
            "ACHIEVE_FILED_OBJECT_REWARD_TYPE_1_GET" => {
                Some(Self::AchieveFiledObjectRewardType1Get)
            }
            "ACHIEVE_FILED_OBJECT_RESEARCH_REWARD_GET" => {
                Some(Self::AchieveFiledObjectResearchRewardGet)
            }
            "ACHIEVE_FILED_OBJECT_REWARD_TYPE_5_GET" => {
                Some(Self::AchieveFiledObjectRewardType5Get)
            }
            "ACHIEVE_FILED_OBJECT_REWARD_TYPE_2_GET" => {
                Some(Self::AchieveFiledObjectRewardType2Get)
            }
            "ACHIEVE_WAY_POINT_ACTIVE" => Some(Self::AchieveWayPointActive),
            "ACHIEVE_MAP_REWARD_ALL" => Some(Self::AchieveMapRewardAll),
            "ACHIEVE_MAP_REWARD_ALL_IN_PACK" => Some(Self::AchieveMapRewardAllInPack),
            "ACHIEVE_NPC_SHOP_BUY" => Some(Self::AchieveNpcShopBuy),
            "ACHIEVE_NPC_SHOP_SELL" => Some(Self::AchieveNpcShopSell),
            "ACHIEVE_PVP_BATTLE_WIN" => Some(Self::AchievePvpBattleWin),
            "ACHIEVE_PVP_BATTLE_LOSE" => Some(Self::AchievePvpBattleLose),
            "ACHIEVE_PVP_RANK_GOAL" => Some(Self::AchievePvpRankGoal),
            "ACHIEVE_CASH_SHOP_BUY" => Some(Self::AchieveCashShopBuy),
            "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_1" => {
                Some(Self::AchieveEvilCastleRankGoalFloor1)
            }
            "ACHIEVE_EVIL_CASTLE_CLEAR_ID" => Some(Self::AchieveEvilCastleClearId),
            "ACHIEVE_FIELD_MONSTER_BATTLE_WIN" => {
                Some(Self::AchieveFieldMonsterBattleWin)
            }
            "ACHIEVE_FIELD_MONSTER_BATTLE_LOSE" => {
                Some(Self::AchieveFieldMonsterBattleLose)
            }
            "ACHIEVE_FIELD_MONSTER_KILL" => Some(Self::AchieveFieldMonsterKill),
            "ACHIEVE_FILED_OBJECT_REWARD_TYPE_6_GET" => {
                Some(Self::AchieveFiledObjectRewardType6Get)
            }
            "ACHIEVE_HUNTING_GROUND_CLEAR_LEVEL_0" => {
                Some(Self::AchieveHuntingGroundClearLevel0)
            }
            "ACHIEVE_HUNTING_GROUND_CLEAR_LEVEL_1" => {
                Some(Self::AchieveHuntingGroundClearLevel1)
            }
            "ACHIEVE_HUNTING_GROUND_CLEAR_LEVEL_2" => {
                Some(Self::AchieveHuntingGroundClearLevel2)
            }
            "ACHIEVE_LOGIN" => Some(Self::AchieveLogin),
            "ACHIEVE_USER_ID_CHANGE" => Some(Self::AchieveUserIdChange),
            "ACHIEVE_PLATFORM_ACCOUNT_LINK" => Some(Self::AchievePlatformAccountLink),
            "ACHIEVE_MISSION_CLEAR" => Some(Self::AchieveMissionClear),
            "ACHIEVE_GACHA_BUY" => Some(Self::AchieveGachaBuy),
            "ACHIEVE_FOOD_EAT" => Some(Self::AchieveFoodEat),
            "ACHIEVE_BUFF_FOOD_EAT" => Some(Self::AchieveBuffFoodEat),
            "ACHIEVE_ITEM_INVEN_SLOT_ADD" => Some(Self::AchieveItemInvenSlotAdd),
            "ACHIEVE_EQUIPMENT_SLOT_ADD" => Some(Self::AchieveEquipmentSlotAdd),
            "ACHIEVE_ITEM_STORAGE_PUT" => Some(Self::AchieveItemStoragePut),
            "ACHIEVE_EQUIPMENT_STORAGE_PUT" => Some(Self::AchieveEquipmentStoragePut),
            "ACHIEVE_ITEM_STORAGE_INVEN_SLOT_ADD" => {
                Some(Self::AchieveItemStorageInvenSlotAdd)
            }
            "ACHIEVE_EQUIPMENT_STORAGE_SLOT_ADD" => {
                Some(Self::AchieveEquipmentStorageSlotAdd)
            }
            "ACHIEVE_FILED_MONSTER_DAMAGE" => Some(Self::AchieveFiledMonsterDamage),
            "ACHIEVE_FILED_MONSTER_REWARD" => Some(Self::AchieveFiledMonsterReward),
            "ACHIEVE_FILED_MONSTER_CRASH_MOVE" => {
                Some(Self::AchieveFiledMonsterCrashMove)
            }
            "ACHIEVE_NPC_TALK" => Some(Self::AchieveNpcTalk),
            "ACHIEVE_INN_USE" => Some(Self::AchieveInnUse),
            "ACHIEVE_REPUTATION_GOOD_GOAL" => Some(Self::AchieveReputationGoodGoal),
            "ACHIEVE_REPUTATION_BAD_GOAL" => Some(Self::AchieveReputationBadGoal),
            "ACHIEVE_ACHIEVEMENT_LEVEL_GOAL" => Some(Self::AchieveAchievementLevelGoal),
            "ACHIEVE_PORTRAIT_COSTUME_CHANGE" => Some(Self::AchievePortraitCostumeChange),
            "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_3" => {
                Some(Self::AchieveMainQuestAllClearLevel3)
            }
            "ACHIEVE_MAIN_QUEST_ALL_CLEAR_LEVEL_4" => {
                Some(Self::AchieveMainQuestAllClearLevel4)
            }
            "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_2" => {
                Some(Self::AchieveEvilCastleRankGoalFloor2)
            }
            "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_3" => {
                Some(Self::AchieveEvilCastleRankGoalFloor3)
            }
            "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_4" => {
                Some(Self::AchieveEvilCastleRankGoalFloor4)
            }
            "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_5" => {
                Some(Self::AchieveEvilCastleRankGoalFloor5)
            }
            "ACHIEVE_EVIL_CASTLE_RANK_GOAL_FLOOR_6" => {
                Some(Self::AchieveEvilCastleRankGoalFloor6)
            }
            "ACHIEVE_JEWELRY_GET" => Some(Self::AchieveJewelryGet),
            "ACHIEVE_JEWELRY_USE" => Some(Self::AchieveJewelryUse),
            "ACHIEVE_PVP_AP_USE" => Some(Self::AchievePvpApUse),
            "ACHIEVE_HUNTING_AP_USE" => Some(Self::AchieveHuntingApUse),
            "ACHIEVE_COSTUME_UPGRADE_TARGET_CHAR_GRADE" => {
                Some(Self::AchieveCostumeUpgradeTargetCharGrade)
            }
            "ACHIEVE_MONSTER_HUNT_BATTLE_END_COUNT" => {
                Some(Self::AchieveMonsterHuntBattleEndCount)
            }
            "ACHIEVE_MONSTER_HUNT_BATTLE_END_LEVEL" => {
                Some(Self::AchieveMonsterHuntBattleEndLevel)
            }
            "ACHIEVE_EQUIPMENT_PRIVATE_GET" => Some(Self::AchieveEquipmentPrivateGet),
            "ACHIEVE_EQUIPMENT_PRIVATE_UPGRADE_SUCCESS" => {
                Some(Self::AchieveEquipmentPrivateUpgradeSuccess)
            }
            "ACHIEVE_EVIL_CASTLE_GREED_TOWER_CLEAR" => {
                Some(Self::AchieveEvilCastleGreedTowerClear)
            }
            "ACHIEVE_EVIL_CASTLE_GREED_TOWER_ALL_CLEAR_BATTLE_CHALLENGE" => {
                Some(Self::AchieveEvilCastleGreedTowerAllClearBattleChallenge)
            }
            "ACHIEVE_EVIL_CASTLE_RANK_GOAL" => Some(Self::AchieveEvilCastleRankGoal),
            "ACHIEVE_MONSTER_HUNT_RANK_GOAL" => Some(Self::AchieveMonsterHuntRankGoal),
            "ACHIEVE_HAVE_RANK_TITLE" => Some(Self::AchieveHaveRankTitle),
            "ACHIEVE_GACHA_COSTUME_GRADE_5_GET_3" => {
                Some(Self::AchieveGachaCostumeGrade5Get3)
            }
            "ACHIEVE_GACHA_PRIVATE_UNIQUE_GRADE_4_GET_5" => {
                Some(Self::AchieveGachaPrivateUniqueGrade4Get5)
            }
            "ACHIEVE_TOTAL_WAR_DAMAGE" => Some(Self::AchieveTotalWarDamage),
            "ACHIEVE_TORCH_LIGHT_AP_USE" => Some(Self::AchieveTorchLightApUse),
            "ACHIEVE_TOTAL_WAR_BATTLE_END_COUNT" => {
                Some(Self::AchieveTotalWarBattleEndCount)
            }
            "ACHIEVE_COSTUME_POTENTIAL_ACTIVATION_SKILL_NODE" => {
                Some(Self::AchieveCostumePotentialActivationSkillNode)
            }
            "ACHIEVE_EVENT_STORY_CLEAR_TARGET_GROUP_ID" => {
                Some(Self::AchieveEventStoryClearTargetGroupId)
            }
            "ACHIEVE_GUILD_ATTENDANCE" => Some(Self::AchieveGuildAttendance),
            "ACHIEVE_GUILD_SUPPORTER_CHAR" => Some(Self::AchieveGuildSupporterChar),
            "ACHIEVE_EVIL_CASTLE_ROGUE_LIKE_CLEAR_COUNT" => {
                Some(Self::AchieveEvilCastleRogueLikeClearCount)
            }
            "ACHIEVE_EVIL_CASTLE_ROGUE_LIKE_SCORE" => {
                Some(Self::AchieveEvilCastleRogueLikeScore)
            }
            "ACHIEVE_EVIL_CASTLE_ROGUE_LIKE_RANK_GOAL" => {
                Some(Self::AchieveEvilCastleRogueLikeRankGoal)
            }
            "ACHIEVE_DATING_POINT_MAX" => Some(Self::AchieveDatingPointMax),
            "ACHIEVE_GUILD_RAID_NORMAL_BATTLE_CLEAR_LEVEL" => {
                Some(Self::AchieveGuildRaidNormalBattleClearLevel)
            }
            "ACHIEVE_GUILD_RAID_BOSS_BATTLE_CLEAR_LEVEL" => {
                Some(Self::AchieveGuildRaidBossBattleClearLevel)
            }
            "ACHIEVE_GUILD_RAID_TOP_PERCENT" => Some(Self::AchieveGuildRaidTopPercent),
            "ACHIEVE_GUILD_SUPPORTER_CHAR_BORROW" => {
                Some(Self::AchieveGuildSupporterCharBorrow)
            }
            "ACHIEVE_CHAR_GROWTH_RELATED_COMPLEX" => {
                Some(Self::AchieveCharGrowthRelatedComplex)
            }
            "ACHIEVE_CHAR_ANY_COSTUME_POTENTIAL_ALL" => {
                Some(Self::AchieveCharAnyCostumePotentialAll)
            }
            "ACHIEVE_CHAR_AWAKE_ACTIVE" => Some(Self::AchieveCharAwakeActive),
            "ACHIEVE_CHAR_ANY_COSTUME_MAX_LEVEL" => {
                Some(Self::AchieveCharAnyCostumeMaxLevel)
            }
            "ACHIEVE_CHAR_HAVE_UR_PRIVATE_WEAPON_EQUIP" => {
                Some(Self::AchieveCharHaveUrPrivateWeaponEquip)
            }
            "ACHIEVE_MINI_GAME_SICHUAN_STAGE_CLEAR" => {
                Some(Self::AchieveMiniGameSichuanStageClear)
            }
            "ACHIEVE_MISSION_CLEAR_COUNT_IN_TARGET_GROUP_ID" => {
                Some(Self::AchieveMissionClearCountInTargetGroupId)
            }
            "ACHIEVE_MINI_GAME_ACTION_MISSION_CLEAR" => {
                Some(Self::AchieveMiniGameActionMissionClear)
            }
            "ACHIEVE_MY_ROOM_LIKE_COUNT" => Some(Self::AchieveMyRoomLikeCount),
            "ACHIEVE_MY_ROOM_IN_MONTHLY_TOP_LIKE" => {
                Some(Self::AchieveMyRoomInMonthlyTopLike)
            }
            "ACHIEVE_CAFETERIA_LEVEL" => Some(Self::AchieveCafeteriaLevel),
            "ACHIEVE_MINI_GAME_SURVIVAL_CHALLENGE_SURVIVE_TIME" => {
                Some(Self::AchieveMiniGameSurvivalChallengeSurviveTime)
            }
            "ACHIEVE_MINI_GAME_DEFENSE_WAVE_CLEAR" => {
                Some(Self::AchieveMiniGameDefenseWaveClear)
            }
            "ACHIEVE_MINI_GAME_ACTION_HUNT_DIFFICULTY_CLEAR" => {
                Some(Self::AchieveMiniGameActionHuntDifficultyClear)
            }
            "ACHIEVE_MINI_GAME_RHYTHM_CLEAR_MODE_TYPE" => {
                Some(Self::AchieveMiniGameRhythmClearModeType)
            }
            "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_1" => {
                Some(Self::AchieveEvilCastleScoreFloor1)
            }
            "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_2" => {
                Some(Self::AchieveEvilCastleScoreFloor2)
            }
            "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_3" => {
                Some(Self::AchieveEvilCastleScoreFloor3)
            }
            "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_4" => {
                Some(Self::AchieveEvilCastleScoreFloor4)
            }
            "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_5" => {
                Some(Self::AchieveEvilCastleScoreFloor5)
            }
            "ACHIEVE_EVIL_CASTLE_SCORE_FLOOR_6" => {
                Some(Self::AchieveEvilCastleScoreFloor6)
            }
            "ACHIEVE_EVIL_CASTLE_TOTAL_SCORE" => Some(Self::AchieveEvilCastleTotalScore),
            "ACHIEVE_EVIL_CASTLE_RAGE_TOWER_CLEAR" => {
                Some(Self::AchieveEvilCastleRageTowerClear)
            }
            "ACHIEVE_EVIL_CASTLE_ENVY_TOWER_CLEAR" => {
                Some(Self::AchieveEvilCastleEnvyTowerClear)
            }
            "ACHIEVE_EVIL_CASTLE_ROGUE_LIKE_CLEAR" => {
                Some(Self::AchieveEvilCastleRogueLikeClear)
            }
            "ACHIEVE_RESERVE_COSTUME_BATTLE_WIN" => {
                Some(Self::AchieveReserveCostumeBattleWin)
            }
            "ACHIEVE_PRESTIGE_SKIN_GET" => Some(Self::AchievePrestigeSkinGet),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineCharPictorialType {
    CharPictorialNone = 0,
    CharPictorialSingle = 1,
    CharPictorialGroup = 2,
}
impl DefineCharPictorialType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::CharPictorialNone => "CHAR_PICTORIAL_NONE",
            Self::CharPictorialSingle => "CHAR_PICTORIAL_SINGLE",
            Self::CharPictorialGroup => "CHAR_PICTORIAL_GROUP",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CHAR_PICTORIAL_NONE" => Some(Self::CharPictorialNone),
            "CHAR_PICTORIAL_SINGLE" => Some(Self::CharPictorialSingle),
            "CHAR_PICTORIAL_GROUP" => Some(Self::CharPictorialGroup),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineGachaType {
    GtUnion = 0,
    GtCostume = 1,
    GtEquip = 2,
}
impl DefineGachaType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GtUnion => "GT_UNION",
            Self::GtCostume => "GT_COSTUME",
            Self::GtEquip => "GT_EQUIP",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GT_UNION" => Some(Self::GtUnion),
            "GT_COSTUME" => Some(Self::GtCostume),
            "GT_EQUIP" => Some(Self::GtEquip),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineGachaSubType {
    GstNone = 0,
    GstSelection = 1,
    GstElement = 2,
    GstInfinite = 3,
    GstStepUp = 4,
    GstResemara = 5,
}
impl DefineGachaSubType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GstNone => "GST_NONE",
            Self::GstSelection => "GST_SELECTION",
            Self::GstElement => "GST_ELEMENT",
            Self::GstInfinite => "GST_INFINITE",
            Self::GstStepUp => "GST_STEP_UP",
            Self::GstResemara => "GST_RESEMARA",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GST_NONE" => Some(Self::GstNone),
            "GST_SELECTION" => Some(Self::GstSelection),
            "GST_ELEMENT" => Some(Self::GstElement),
            "GST_INFINITE" => Some(Self::GstInfinite),
            "GST_STEP_UP" => Some(Self::GstStepUp),
            "GST_RESEMARA" => Some(Self::GstResemara),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineCreateWaypointMapType {
    CreateWaypointSafe = 0,
    CreateWaypointAll = 1,
}
impl DefineCreateWaypointMapType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::CreateWaypointSafe => "CREATE_WAYPOINT_SAFE",
            Self::CreateWaypointAll => "CREATE_WAYPOINT_ALL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CREATE_WAYPOINT_SAFE" => Some(Self::CreateWaypointSafe),
            "CREATE_WAYPOINT_ALL" => Some(Self::CreateWaypointAll),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEventMissionType {
    EmrFixedOpen = 0,
    EmrDailyReset = 1,
    EmrWeeklyReset = 2,
    EmrDailyOpen = 3,
}
impl DefineEventMissionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::EmrFixedOpen => "EMR_FIXED_OPEN",
            Self::EmrDailyReset => "EMR_DAILY_RESET",
            Self::EmrWeeklyReset => "EMR_WEEKLY_RESET",
            Self::EmrDailyOpen => "EMR_DAILY_OPEN",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "EMR_FIXED_OPEN" => Some(Self::EmrFixedOpen),
            "EMR_DAILY_RESET" => Some(Self::EmrDailyReset),
            "EMR_WEEKLY_RESET" => Some(Self::EmrWeeklyReset),
            "EMR_DAILY_OPEN" => Some(Self::EmrDailyOpen),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePassBuyType {
    PbLevel = 0,
    PbPremium1 = 1,
    PbMain = 2,
    PbPremium2 = 3,
}
impl DefinePassBuyType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PbLevel => "PB_LEVEL",
            Self::PbPremium1 => "PB_PREMIUM_1",
            Self::PbMain => "PB_MAIN",
            Self::PbPremium2 => "PB_PREMIUM_2",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PB_LEVEL" => Some(Self::PbLevel),
            "PB_PREMIUM_1" => Some(Self::PbPremium1),
            "PB_MAIN" => Some(Self::PbMain),
            "PB_PREMIUM_2" => Some(Self::PbPremium2),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineAttendanceLimitType {
    LimitAlreadyReward = 0,
    LimitEnableReward = 1,
    LimitDisableReward = 2,
}
impl DefineAttendanceLimitType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::LimitAlreadyReward => "LIMIT_ALREADY_REWARD",
            Self::LimitEnableReward => "LIMIT_ENABLE_REWARD",
            Self::LimitDisableReward => "LIMIT_DISABLE_REWARD",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "LIMIT_ALREADY_REWARD" => Some(Self::LimitAlreadyReward),
            "LIMIT_ENABLE_REWARD" => Some(Self::LimitEnableReward),
            "LIMIT_DISABLE_REWARD" => Some(Self::LimitDisableReward),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEquipUpgradeResultType {
    UpgradeSuccess = 0,
    UpgradeFail = 1,
    UpgradeStopMaxLevel = 2,
    UpgradeStopSuccess = 3,
    UpgradeStopNotEnough = 4,
    UpgradeStopGoldLimit = 5,
    UpgradeStopTargetLevel = 6,
    UpgradeStopMaxTryCount = 7,
}
impl DefineEquipUpgradeResultType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::UpgradeSuccess => "UPGRADE_SUCCESS",
            Self::UpgradeFail => "UPGRADE_FAIL",
            Self::UpgradeStopMaxLevel => "UPGRADE_STOP_MAX_LEVEL",
            Self::UpgradeStopSuccess => "UPGRADE_STOP_SUCCESS",
            Self::UpgradeStopNotEnough => "UPGRADE_STOP_NOT_ENOUGH",
            Self::UpgradeStopGoldLimit => "UPGRADE_STOP_GOLD_LIMIT",
            Self::UpgradeStopTargetLevel => "UPGRADE_STOP_TARGET_LEVEL",
            Self::UpgradeStopMaxTryCount => "UPGRADE_STOP_MAX_TRY_COUNT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "UPGRADE_SUCCESS" => Some(Self::UpgradeSuccess),
            "UPGRADE_FAIL" => Some(Self::UpgradeFail),
            "UPGRADE_STOP_MAX_LEVEL" => Some(Self::UpgradeStopMaxLevel),
            "UPGRADE_STOP_SUCCESS" => Some(Self::UpgradeStopSuccess),
            "UPGRADE_STOP_NOT_ENOUGH" => Some(Self::UpgradeStopNotEnough),
            "UPGRADE_STOP_GOLD_LIMIT" => Some(Self::UpgradeStopGoldLimit),
            "UPGRADE_STOP_TARGET_LEVEL" => Some(Self::UpgradeStopTargetLevel),
            "UPGRADE_STOP_MAX_TRY_COUNT" => Some(Self::UpgradeStopMaxTryCount),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePackMemberChangeType {
    MemberChangeNotUse = 0,
    MemberChangeAllUse = 1,
    MemberChangeSafeZoneUse = 2,
}
impl DefinePackMemberChangeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MemberChangeNotUse => "MEMBER_CHANGE_NOT_USE",
            Self::MemberChangeAllUse => "MEMBER_CHANGE_ALL_USE",
            Self::MemberChangeSafeZoneUse => "MEMBER_CHANGE_SAFE_ZONE_USE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MEMBER_CHANGE_NOT_USE" => Some(Self::MemberChangeNotUse),
            "MEMBER_CHANGE_ALL_USE" => Some(Self::MemberChangeAllUse),
            "MEMBER_CHANGE_SAFE_ZONE_USE" => Some(Self::MemberChangeSafeZoneUse),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineHuntDispatchGroupType {
    HdgNone = 0,
    HdgHuntingGround = 1,
    HdgSkyWay = 2,
}
impl DefineHuntDispatchGroupType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::HdgNone => "HDG_NONE",
            Self::HdgHuntingGround => "HDG_HUNTING_GROUND",
            Self::HdgSkyWay => "HDG_SKY_WAY",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "HDG_NONE" => Some(Self::HdgNone),
            "HDG_HUNTING_GROUND" => Some(Self::HdgHuntingGround),
            "HDG_SKY_WAY" => Some(Self::HdgSkyWay),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineGachaFixedType {
    GfCostumeGrade4 = 0,
    GfCostumeGrade5 = 1,
    GfEquipGrade3 = 2,
    GfEquipGrade4 = 3,
}
impl DefineGachaFixedType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GfCostumeGrade4 => "GF_COSTUME_GRADE_4",
            Self::GfCostumeGrade5 => "GF_COSTUME_GRADE_5",
            Self::GfEquipGrade3 => "GF_EQUIP_GRADE_3",
            Self::GfEquipGrade4 => "GF_EQUIP_GRADE_4",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GF_COSTUME_GRADE_4" => Some(Self::GfCostumeGrade4),
            "GF_COSTUME_GRADE_5" => Some(Self::GfCostumeGrade5),
            "GF_EQUIP_GRADE_3" => Some(Self::GfEquipGrade3),
            "GF_EQUIP_GRADE_4" => Some(Self::GfEquipGrade4),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMonsterHuntPartsType {
    MonsterHuntPartsBody = 0,
    MonsterHuntPartsEtc = 1,
    MonsterHuntPartsNone = -1,
}
impl DefineMonsterHuntPartsType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MonsterHuntPartsBody => "MONSTER_HUNT_PARTS_BODY",
            Self::MonsterHuntPartsEtc => "MONSTER_HUNT_PARTS_ETC",
            Self::MonsterHuntPartsNone => "MONSTER_HUNT_PARTS_NONE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MONSTER_HUNT_PARTS_BODY" => Some(Self::MonsterHuntPartsBody),
            "MONSTER_HUNT_PARTS_ETC" => Some(Self::MonsterHuntPartsEtc),
            "MONSTER_HUNT_PARTS_NONE" => Some(Self::MonsterHuntPartsNone),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineUserContentsInfoOptionType {
    OptionNone = 0,
    OptionPvp = 1,
    OptionEvilcastle = 2,
    OptionMonsterHunt = 3,
    OptionTotalWar = 4,
    OptionTotalBattlePower = 5,
    OptionGuildRaid = 6,
    OptionEvilCastleGreedTower = 7,
    OptionEvilCastleRageTower = 8,
    OptionEvilCastleEnvyTower = 9,
    OptionEvilCastleRogueLike = 10,
    OptionAchievementLevel = 11,
}
impl DefineUserContentsInfoOptionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::OptionNone => "OPTION_NONE",
            Self::OptionPvp => "OPTION_PVP",
            Self::OptionEvilcastle => "OPTION_EVILCASTLE",
            Self::OptionMonsterHunt => "OPTION_MONSTER_HUNT",
            Self::OptionTotalWar => "OPTION_TOTAL_WAR",
            Self::OptionTotalBattlePower => "OPTION_TOTAL_BATTLE_POWER",
            Self::OptionGuildRaid => "OPTION_GUILD_RAID",
            Self::OptionEvilCastleGreedTower => "OPTION_EVIL_CASTLE_GREED_TOWER",
            Self::OptionEvilCastleRageTower => "OPTION_EVIL_CASTLE_RAGE_TOWER",
            Self::OptionEvilCastleEnvyTower => "OPTION_EVIL_CASTLE_ENVY_TOWER",
            Self::OptionEvilCastleRogueLike => "OPTION_EVIL_CASTLE_ROGUE_LIKE",
            Self::OptionAchievementLevel => "OPTION_ACHIEVEMENT_LEVEL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "OPTION_NONE" => Some(Self::OptionNone),
            "OPTION_PVP" => Some(Self::OptionPvp),
            "OPTION_EVILCASTLE" => Some(Self::OptionEvilcastle),
            "OPTION_MONSTER_HUNT" => Some(Self::OptionMonsterHunt),
            "OPTION_TOTAL_WAR" => Some(Self::OptionTotalWar),
            "OPTION_TOTAL_BATTLE_POWER" => Some(Self::OptionTotalBattlePower),
            "OPTION_GUILD_RAID" => Some(Self::OptionGuildRaid),
            "OPTION_EVIL_CASTLE_GREED_TOWER" => Some(Self::OptionEvilCastleGreedTower),
            "OPTION_EVIL_CASTLE_RAGE_TOWER" => Some(Self::OptionEvilCastleRageTower),
            "OPTION_EVIL_CASTLE_ENVY_TOWER" => Some(Self::OptionEvilCastleEnvyTower),
            "OPTION_EVIL_CASTLE_ROGUE_LIKE" => Some(Self::OptionEvilCastleRogueLike),
            "OPTION_ACHIEVEMENT_LEVEL" => Some(Self::OptionAchievementLevel),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineStatueType {
    RsNone = 0,
    RsPvp = 1,
    RsMonsterHunt = 3,
    RsGuildRaid = 4,
    RsMax = 5,
}
impl DefineStatueType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::RsNone => "RS_NONE",
            Self::RsPvp => "RS_PVP",
            Self::RsMonsterHunt => "RS_MONSTER_HUNT",
            Self::RsGuildRaid => "RS_GUILD_RAID",
            Self::RsMax => "RS_MAX",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "RS_NONE" => Some(Self::RsNone),
            "RS_PVP" => Some(Self::RsPvp),
            "RS_MONSTER_HUNT" => Some(Self::RsMonsterHunt),
            "RS_GUILD_RAID" => Some(Self::RsGuildRaid),
            "RS_MAX" => Some(Self::RsMax),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineBattleChallengeConditionType {
    BcctNone = 0,
    BcctCharUse = 1,
    BcctTurnLimit = 2,
    BcctSpecificSurvival = 3,
    BcctElementCharUse = 4,
    BcctElementCharLimit = 5,
    BcctSkillUse = 6,
    BcctCharDieLimit = 7,
    BcctWin = 8,
}
impl DefineBattleChallengeConditionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::BcctNone => "BCCT_NONE",
            Self::BcctCharUse => "BCCT_CHAR_USE",
            Self::BcctTurnLimit => "BCCT_TURN_LIMIT",
            Self::BcctSpecificSurvival => "BCCT_SPECIFIC_SURVIVAL",
            Self::BcctElementCharUse => "BCCT_ELEMENT_CHAR_USE",
            Self::BcctElementCharLimit => "BCCT_ELEMENT_CHAR_LIMIT",
            Self::BcctSkillUse => "BCCT_SKILL_USE",
            Self::BcctCharDieLimit => "BCCT_CHAR_DIE_LIMIT",
            Self::BcctWin => "BCCT_WIN",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "BCCT_NONE" => Some(Self::BcctNone),
            "BCCT_CHAR_USE" => Some(Self::BcctCharUse),
            "BCCT_TURN_LIMIT" => Some(Self::BcctTurnLimit),
            "BCCT_SPECIFIC_SURVIVAL" => Some(Self::BcctSpecificSurvival),
            "BCCT_ELEMENT_CHAR_USE" => Some(Self::BcctElementCharUse),
            "BCCT_ELEMENT_CHAR_LIMIT" => Some(Self::BcctElementCharLimit),
            "BCCT_SKILL_USE" => Some(Self::BcctSkillUse),
            "BCCT_CHAR_DIE_LIMIT" => Some(Self::BcctCharDieLimit),
            "BCCT_WIN" => Some(Self::BcctWin),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineClientResourceDownloadType {
    CrdNone = 0,
    CrdFull = 1,
    CrdPartial = 2,
}
impl DefineClientResourceDownloadType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::CrdNone => "CRD_NONE",
            Self::CrdFull => "CRD_FULL",
            Self::CrdPartial => "CRD_PARTIAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CRD_NONE" => Some(Self::CrdNone),
            "CRD_FULL" => Some(Self::CrdFull),
            "CRD_PARTIAL" => Some(Self::CrdPartial),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEventHubContentType {
    EhcNone = 0,
    EhcStory = 1,
    EhcBattle = 2,
    EhcMonsterHunt = 3,
    EhcExchange = 4,
    EhcMarble = 5,
    EhcMiniGame = 6,
    EhcBingo = 7,
    EhcEventMission = 8,
    EhcEventShop = 9,
    EhcEventPack = 10,
}
impl DefineEventHubContentType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::EhcNone => "EHC_NONE",
            Self::EhcStory => "EHC_STORY",
            Self::EhcBattle => "EHC_BATTLE",
            Self::EhcMonsterHunt => "EHC_MONSTER_HUNT",
            Self::EhcExchange => "EHC_EXCHANGE",
            Self::EhcMarble => "EHC_MARBLE",
            Self::EhcMiniGame => "EHC_MINI_GAME",
            Self::EhcBingo => "EHC_BINGO",
            Self::EhcEventMission => "EHC_EVENT_MISSION",
            Self::EhcEventShop => "EHC_EVENT_SHOP",
            Self::EhcEventPack => "EHC_EVENT_PACK",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "EHC_NONE" => Some(Self::EhcNone),
            "EHC_STORY" => Some(Self::EhcStory),
            "EHC_BATTLE" => Some(Self::EhcBattle),
            "EHC_MONSTER_HUNT" => Some(Self::EhcMonsterHunt),
            "EHC_EXCHANGE" => Some(Self::EhcExchange),
            "EHC_MARBLE" => Some(Self::EhcMarble),
            "EHC_MINI_GAME" => Some(Self::EhcMiniGame),
            "EHC_BINGO" => Some(Self::EhcBingo),
            "EHC_EVENT_MISSION" => Some(Self::EhcEventMission),
            "EHC_EVENT_SHOP" => Some(Self::EhcEventShop),
            "EHC_EVENT_PACK" => Some(Self::EhcEventPack),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineTitleType {
    TitleNone = 0,
    TitleRank1 = 1,
    TitleRank10 = 2,
}
impl DefineTitleType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::TitleNone => "TITLE_NONE",
            Self::TitleRank1 => "TITLE_RANK_1",
            Self::TitleRank10 => "TITLE_RANK_10",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TITLE_NONE" => Some(Self::TitleNone),
            "TITLE_RANK_1" => Some(Self::TitleRank1),
            "TITLE_RANK_10" => Some(Self::TitleRank10),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMyRoomItemType {
    MritSkin = 0,
    MritObject = 1,
    MritCarpet = 2,
    MritCostume = 3,
}
impl DefineMyRoomItemType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MritSkin => "MRIT_SKIN",
            Self::MritObject => "MRIT_OBJECT",
            Self::MritCarpet => "MRIT_CARPET",
            Self::MritCostume => "MRIT_COSTUME",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MRIT_SKIN" => Some(Self::MritSkin),
            "MRIT_OBJECT" => Some(Self::MritObject),
            "MRIT_CARPET" => Some(Self::MritCarpet),
            "MRIT_COSTUME" => Some(Self::MritCostume),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePackRewardObjectCountType {
    ProctNone = 0,
    ProctResearch = 1,
    ProctOnce = 2,
    ProctReward = 3,
    ProctEventLostCoin = 4,
}
impl DefinePackRewardObjectCountType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ProctNone => "PROCT_NONE",
            Self::ProctResearch => "PROCT_RESEARCH",
            Self::ProctOnce => "PROCT_ONCE",
            Self::ProctReward => "PROCT_REWARD",
            Self::ProctEventLostCoin => "PROCT_EVENT_LOST_COIN",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PROCT_NONE" => Some(Self::ProctNone),
            "PROCT_RESEARCH" => Some(Self::ProctResearch),
            "PROCT_ONCE" => Some(Self::ProctOnce),
            "PROCT_REWARD" => Some(Self::ProctReward),
            "PROCT_EVENT_LOST_COIN" => Some(Self::ProctEventLostCoin),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMyRoomItemObejctType {
    MriotDefault = 0,
    MriotCostume = 1,
    MriotTrophy = 2,
}
impl DefineMyRoomItemObejctType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MriotDefault => "MRIOT_DEFAULT",
            Self::MriotCostume => "MRIOT_COSTUME",
            Self::MriotTrophy => "MRIOT_TROPHY",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MRIOT_DEFAULT" => Some(Self::MriotDefault),
            "MRIOT_COSTUME" => Some(Self::MriotCostume),
            "MRIOT_TROPHY" => Some(Self::MriotTrophy),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineUserCustomActiveContentType {
    RuacPass = 0,
    RuacEventMission = 1,
    RuacGacha = 2,
    RuacCashShop = 3,
    RuacAll = 9999,
}
impl DefineUserCustomActiveContentType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::RuacPass => "RUAC_PASS",
            Self::RuacEventMission => "RUAC_EVENT_MISSION",
            Self::RuacGacha => "RUAC_GACHA",
            Self::RuacCashShop => "RUAC_CASH_SHOP",
            Self::RuacAll => "RUAC_ALL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "RUAC_PASS" => Some(Self::RuacPass),
            "RUAC_EVENT_MISSION" => Some(Self::RuacEventMission),
            "RUAC_GACHA" => Some(Self::RuacGacha),
            "RUAC_CASH_SHOP" => Some(Self::RuacCashShop),
            "RUAC_ALL" => Some(Self::RuacAll),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineTotalWarPlayType {
    TwpAttack = 0,
    TwpCheer = 1,
}
impl DefineTotalWarPlayType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::TwpAttack => "TWP_ATTACK",
            Self::TwpCheer => "TWP_CHEER",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TWP_ATTACK" => Some(Self::TwpAttack),
            "TWP_CHEER" => Some(Self::TwpCheer),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameBingoLineType {
    BingoLineDiagonal = 0,
    BingoLineRow = 1,
    BingoLineCol = 2,
}
impl DefineMiniGameBingoLineType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::BingoLineDiagonal => "BINGO_LINE_DIAGONAL",
            Self::BingoLineRow => "BINGO_LINE_ROW",
            Self::BingoLineCol => "BINGO_LINE_COL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "BINGO_LINE_DIAGONAL" => Some(Self::BingoLineDiagonal),
            "BINGO_LINE_ROW" => Some(Self::BingoLineRow),
            "BINGO_LINE_COL" => Some(Self::BingoLineCol),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePackEventMiniGameClearType {
    PemgctNone = 0,
    PemgctMiniGame1 = 1,
    PemgctMiniGame2 = 2,
    PemgctMiniGame3 = 3,
    PemgctMiniGame4 = 4,
    PemgctMiniGame5 = 5,
    PemgctMiniGame6 = 6,
    PemgctMiniGame7 = 7,
    PemgctMiniGame8 = 8,
    PemgctMiniGame9 = 9,
}
impl DefinePackEventMiniGameClearType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PemgctNone => "PEMGCT_NONE",
            Self::PemgctMiniGame1 => "PEMGCT_MINI_GAME_1",
            Self::PemgctMiniGame2 => "PEMGCT_MINI_GAME_2",
            Self::PemgctMiniGame3 => "PEMGCT_MINI_GAME_3",
            Self::PemgctMiniGame4 => "PEMGCT_MINI_GAME_4",
            Self::PemgctMiniGame5 => "PEMGCT_MINI_GAME_5",
            Self::PemgctMiniGame6 => "PEMGCT_MINI_GAME_6",
            Self::PemgctMiniGame7 => "PEMGCT_MINI_GAME_7",
            Self::PemgctMiniGame8 => "PEMGCT_MINI_GAME_8",
            Self::PemgctMiniGame9 => "PEMGCT_MINI_GAME_9",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PEMGCT_NONE" => Some(Self::PemgctNone),
            "PEMGCT_MINI_GAME_1" => Some(Self::PemgctMiniGame1),
            "PEMGCT_MINI_GAME_2" => Some(Self::PemgctMiniGame2),
            "PEMGCT_MINI_GAME_3" => Some(Self::PemgctMiniGame3),
            "PEMGCT_MINI_GAME_4" => Some(Self::PemgctMiniGame4),
            "PEMGCT_MINI_GAME_5" => Some(Self::PemgctMiniGame5),
            "PEMGCT_MINI_GAME_6" => Some(Self::PemgctMiniGame6),
            "PEMGCT_MINI_GAME_7" => Some(Self::PemgctMiniGame7),
            "PEMGCT_MINI_GAME_8" => Some(Self::PemgctMiniGame8),
            "PEMGCT_MINI_GAME_9" => Some(Self::PemgctMiniGame9),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineInstantItemType {
    InstantItemCostumeUpgrade = 0,
}
impl DefineInstantItemType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::InstantItemCostumeUpgrade => "INSTANT_ITEM_COSTUME_UPGRADE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "INSTANT_ITEM_COSTUME_UPGRADE" => Some(Self::InstantItemCostumeUpgrade),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineApType {
    ApTypeNone = 0,
    ApTypeHunting = 1,
    ApTypeTorchLight = 2,
}
impl DefineApType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ApTypeNone => "AP_TYPE_NONE",
            Self::ApTypeHunting => "AP_TYPE_HUNTING",
            Self::ApTypeTorchLight => "AP_TYPE_TORCH_LIGHT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "AP_TYPE_NONE" => Some(Self::ApTypeNone),
            "AP_TYPE_HUNTING" => Some(Self::ApTypeHunting),
            "AP_TYPE_TORCH_LIGHT" => Some(Self::ApTypeTorchLight),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineDelayedVisibilityType {
    DbtNone = 0,
    CharacterPictorialBookTable = 1,
    CostumePictorialBookTable = 2,
    EquipmentPictorialBookTable = 3,
    TalentPictorialBookTable = 4,
    CostumeDesignTable = 5,
    MercenaryScoutTable = 6,
    CafeteriaCostumeTable = 7,
    CostumeDesignTableSeasonEvent = 8,
    CostumeDesignTableRogueLike = 9,
    IdCardItemTable = 10,
    AchievementTable = 11,
}
impl DefineDelayedVisibilityType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::DbtNone => "DBT_None",
            Self::CharacterPictorialBookTable => "CharacterPictorialBookTable",
            Self::CostumePictorialBookTable => "CostumePictorialBookTable",
            Self::EquipmentPictorialBookTable => "EquipmentPictorialBookTable",
            Self::TalentPictorialBookTable => "TalentPictorialBookTable",
            Self::CostumeDesignTable => "CostumeDesignTable",
            Self::MercenaryScoutTable => "MercenaryScoutTable",
            Self::CafeteriaCostumeTable => "CafeteriaCostumeTable",
            Self::CostumeDesignTableSeasonEvent => "CostumeDesignTable_SeasonEvent",
            Self::CostumeDesignTableRogueLike => "CostumeDesignTable_RogueLike",
            Self::IdCardItemTable => "IdCardItemTable",
            Self::AchievementTable => "AchievementTable",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "DBT_None" => Some(Self::DbtNone),
            "CharacterPictorialBookTable" => Some(Self::CharacterPictorialBookTable),
            "CostumePictorialBookTable" => Some(Self::CostumePictorialBookTable),
            "EquipmentPictorialBookTable" => Some(Self::EquipmentPictorialBookTable),
            "TalentPictorialBookTable" => Some(Self::TalentPictorialBookTable),
            "CostumeDesignTable" => Some(Self::CostumeDesignTable),
            "MercenaryScoutTable" => Some(Self::MercenaryScoutTable),
            "CafeteriaCostumeTable" => Some(Self::CafeteriaCostumeTable),
            "CostumeDesignTable_SeasonEvent" => Some(Self::CostumeDesignTableSeasonEvent),
            "CostumeDesignTable_RogueLike" => Some(Self::CostumeDesignTableRogueLike),
            "IdCardItemTable" => Some(Self::IdCardItemTable),
            "AchievementTable" => Some(Self::AchievementTable),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineCharElementType {
    CetWater = 0,
    CetFire = 1,
    CetWind = 2,
    CetLight = 3,
    CetDark = 4,
}
impl DefineCharElementType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::CetWater => "CET_WATER",
            Self::CetFire => "CET_FIRE",
            Self::CetWind => "CET_WIND",
            Self::CetLight => "CET_LIGHT",
            Self::CetDark => "CET_DARK",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CET_WATER" => Some(Self::CetWater),
            "CET_FIRE" => Some(Self::CetFire),
            "CET_WIND" => Some(Self::CetWind),
            "CET_LIGHT" => Some(Self::CetLight),
            "CET_DARK" => Some(Self::CetDark),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineClientCustomLogType {
    CclPurchasedFail = 0,
}
impl DefineClientCustomLogType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::CclPurchasedFail => "CCL_PURCHASED_FAIL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CCL_PURCHASED_FAIL" => Some(Self::CclPurchasedFail),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefinePopularCostumeContentType {
    PccPvp = 0,
    PccEvilCastle = 1,
    PccEvilCastleGreedTower = 2,
    PccTotalWar = 3,
    PccEvilCastleRageTower = 4,
    PccEvilCastleEnvyTower = 5,
}
impl DefinePopularCostumeContentType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PccPvp => "PCC_PVP",
            Self::PccEvilCastle => "PCC_EVIL_CASTLE",
            Self::PccEvilCastleGreedTower => "PCC_EVIL_CASTLE_GREED_TOWER",
            Self::PccTotalWar => "PCC_TOTAL_WAR",
            Self::PccEvilCastleRageTower => "PCC_EVIL_CASTLE_RAGE_TOWER",
            Self::PccEvilCastleEnvyTower => "PCC_EVIL_CASTLE_ENVY_TOWER",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PCC_PVP" => Some(Self::PccPvp),
            "PCC_EVIL_CASTLE" => Some(Self::PccEvilCastle),
            "PCC_EVIL_CASTLE_GREED_TOWER" => Some(Self::PccEvilCastleGreedTower),
            "PCC_TOTAL_WAR" => Some(Self::PccTotalWar),
            "PCC_EVIL_CASTLE_RAGE_TOWER" => Some(Self::PccEvilCastleRageTower),
            "PCC_EVIL_CASTLE_ENVY_TOWER" => Some(Self::PccEvilCastleEnvyTower),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineCommonBattleDeckType {
    PbdAttack = 0,
    PbdDefense = 1,
}
impl DefineCommonBattleDeckType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::PbdAttack => "PBD_ATTACK",
            Self::PbdDefense => "PBD_DEFENSE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PBD_ATTACK" => Some(Self::PbdAttack),
            "PBD_DEFENSE" => Some(Self::PbdDefense),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEvilCastleRogueLikeChoiceType {
    EcrlcNone = 0,
    EcrlcCostume = 1,
    EcrlcRelic = 2,
    EcrlcHeal = 3,
}
impl DefineEvilCastleRogueLikeChoiceType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::EcrlcNone => "ECRLC_NONE",
            Self::EcrlcCostume => "ECRLC_COSTUME",
            Self::EcrlcRelic => "ECRLC_RELIC",
            Self::EcrlcHeal => "ECRLC_HEAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "ECRLC_NONE" => Some(Self::EcrlcNone),
            "ECRLC_COSTUME" => Some(Self::EcrlcCostume),
            "ECRLC_RELIC" => Some(Self::EcrlcRelic),
            "ECRLC_HEAL" => Some(Self::EcrlcHeal),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEvilCastleRogueLikeRoomType {
    EcrlrtNone = 0,
    EcrlrtNormal = 1,
    EcrlrtElite = 2,
    EcrlrtBoss = 3,
    EcrlrtRelic = 4,
    EcrlrtEvent = 5,
    EcrlrtShop = 6,
    EcrlrtCrystalRoom = 7,
}
impl DefineEvilCastleRogueLikeRoomType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::EcrlrtNone => "ECRLRT_NONE",
            Self::EcrlrtNormal => "ECRLRT_NORMAL",
            Self::EcrlrtElite => "ECRLRT_ELITE",
            Self::EcrlrtBoss => "ECRLRT_BOSS",
            Self::EcrlrtRelic => "ECRLRT_RELIC",
            Self::EcrlrtEvent => "ECRLRT_EVENT",
            Self::EcrlrtShop => "ECRLRT_SHOP",
            Self::EcrlrtCrystalRoom => "ECRLRT_CRYSTAL_ROOM",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "ECRLRT_NONE" => Some(Self::EcrlrtNone),
            "ECRLRT_NORMAL" => Some(Self::EcrlrtNormal),
            "ECRLRT_ELITE" => Some(Self::EcrlrtElite),
            "ECRLRT_BOSS" => Some(Self::EcrlrtBoss),
            "ECRLRT_RELIC" => Some(Self::EcrlrtRelic),
            "ECRLRT_EVENT" => Some(Self::EcrlrtEvent),
            "ECRLRT_SHOP" => Some(Self::EcrlrtShop),
            "ECRLRT_CRYSTAL_ROOM" => Some(Self::EcrlrtCrystalRoom),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEvilCastleRogueLikeStateType {
    EcrlstNone = 0,
    EcrlstChoiceCostume = 1,
    EcrlstChoiceRelic = 2,
    EcrlstBattle = 3,
    EcrlstShop = 4,
    EcrlstEvent = 5,
    EcrlstSelectChangeRelic = 6,
    EcrlstSelectRemoveRelic = 7,
    EcrlstChoiceCostumeWild = 8,
    EcrlstCrystalBattle = 9,
}
impl DefineEvilCastleRogueLikeStateType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::EcrlstNone => "ECRLST_NONE",
            Self::EcrlstChoiceCostume => "ECRLST_CHOICE_COSTUME",
            Self::EcrlstChoiceRelic => "ECRLST_CHOICE_RELIC",
            Self::EcrlstBattle => "ECRLST_BATTLE",
            Self::EcrlstShop => "ECRLST_SHOP",
            Self::EcrlstEvent => "ECRLST_EVENT",
            Self::EcrlstSelectChangeRelic => "ECRLST_SELECT_CHANGE_RELIC",
            Self::EcrlstSelectRemoveRelic => "ECRLST_SELECT_REMOVE_RELIC",
            Self::EcrlstChoiceCostumeWild => "ECRLST_CHOICE_COSTUME_WILD",
            Self::EcrlstCrystalBattle => "ECRLST_CRYSTAL_BATTLE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "ECRLST_NONE" => Some(Self::EcrlstNone),
            "ECRLST_CHOICE_COSTUME" => Some(Self::EcrlstChoiceCostume),
            "ECRLST_CHOICE_RELIC" => Some(Self::EcrlstChoiceRelic),
            "ECRLST_BATTLE" => Some(Self::EcrlstBattle),
            "ECRLST_SHOP" => Some(Self::EcrlstShop),
            "ECRLST_EVENT" => Some(Self::EcrlstEvent),
            "ECRLST_SELECT_CHANGE_RELIC" => Some(Self::EcrlstSelectChangeRelic),
            "ECRLST_SELECT_REMOVE_RELIC" => Some(Self::EcrlstSelectRemoveRelic),
            "ECRLST_CHOICE_COSTUME_WILD" => Some(Self::EcrlstChoiceCostumeWild),
            "ECRLST_CRYSTAL_BATTLE" => Some(Self::EcrlstCrystalBattle),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineColor {
    ColorWhite = 0,
    ColorRed = 1,
    ColorBlue = 2,
    ColorGreen = 3,
    ColorYellow = 4,
    ColorPurple = 5,
}
impl DefineColor {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ColorWhite => "COLOR_WHITE",
            Self::ColorRed => "COLOR_RED",
            Self::ColorBlue => "COLOR_BLUE",
            Self::ColorGreen => "COLOR_GREEN",
            Self::ColorYellow => "COLOR_YELLOW",
            Self::ColorPurple => "COLOR_PURPLE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "COLOR_WHITE" => Some(Self::ColorWhite),
            "COLOR_RED" => Some(Self::ColorRed),
            "COLOR_BLUE" => Some(Self::ColorBlue),
            "COLOR_GREEN" => Some(Self::ColorGreen),
            "COLOR_YELLOW" => Some(Self::ColorYellow),
            "COLOR_PURPLE" => Some(Self::ColorPurple),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineUserCustomActiveStatusType {
    UcasReturn = 0,
    UcasNormal = 1,
}
impl DefineUserCustomActiveStatusType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::UcasReturn => "UCAS_RETURN",
            Self::UcasNormal => "UCAS_NORMAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "UCAS_RETURN" => Some(Self::UcasReturn),
            "UCAS_NORMAL" => Some(Self::UcasNormal),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMyRoomLocationType {
    MrlFloor = 0,
    MrlWall = 1,
}
impl DefineMyRoomLocationType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MrlFloor => "MRL_FLOOR",
            Self::MrlWall => "MRL_WALL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MRL_FLOOR" => Some(Self::MrlFloor),
            "MRL_WALL" => Some(Self::MrlWall),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMyRoomInvenType {
    MrivAll = 0,
    MrivObjectFloor = 1,
    MrivObjectWall = 2,
    MrivCarpet = 3,
    MrivCostume = 4,
    MrivSkinWall = 5,
    MrivSkinFloor = 6,
}
impl DefineMyRoomInvenType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MrivAll => "MRIV_ALL",
            Self::MrivObjectFloor => "MRIV_OBJECT_FLOOR",
            Self::MrivObjectWall => "MRIV_OBJECT_WALL",
            Self::MrivCarpet => "MRIV_CARPET",
            Self::MrivCostume => "MRIV_COSTUME",
            Self::MrivSkinWall => "MRIV_SKIN_WALL",
            Self::MrivSkinFloor => "MRIV_SKIN_FLOOR",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MRIV_ALL" => Some(Self::MrivAll),
            "MRIV_OBJECT_FLOOR" => Some(Self::MrivObjectFloor),
            "MRIV_OBJECT_WALL" => Some(Self::MrivObjectWall),
            "MRIV_CARPET" => Some(Self::MrivCarpet),
            "MRIV_COSTUME" => Some(Self::MrivCostume),
            "MRIV_SKIN_WALL" => Some(Self::MrivSkinWall),
            "MRIV_SKIN_FLOOR" => Some(Self::MrivSkinFloor),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMyRoomCharInteractType {
    MrciStand = 0,
    MrciLieDown = 1,
    MrciSit = 2,
    MrciRun = 3,
}
impl DefineMyRoomCharInteractType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MrciStand => "MRCI_STAND",
            Self::MrciLieDown => "MRCI_LIE_DOWN",
            Self::MrciSit => "MRCI_SIT",
            Self::MrciRun => "MRCI_RUN",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MRCI_STAND" => Some(Self::MrciStand),
            "MRCI_LIE_DOWN" => Some(Self::MrciLieDown),
            "MRCI_SIT" => Some(Self::MrciSit),
            "MRCI_RUN" => Some(Self::MrciRun),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineCostumePotentialNodeType {
    CpntNone = 0,
    CpntConnectionPotentialStat = 1,
    CpntPublicPotentialStat = 2,
    CpntBuffAddNode = 3,
    CpntBuffModifyNode = 4,
    CpntSpDecreaseNode = 5,
    CpntCoolDownDecreaseNode = 6,
    CpntAttackRangeNode = 7,
}
impl DefineCostumePotentialNodeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::CpntNone => "CPNT_NONE",
            Self::CpntConnectionPotentialStat => "CPNT_CONNECTION_POTENTIAL_STAT",
            Self::CpntPublicPotentialStat => "CPNT_PUBLIC_POTENTIAL_STAT",
            Self::CpntBuffAddNode => "CPNT_BUFF_ADD_NODE",
            Self::CpntBuffModifyNode => "CPNT_BUFF_MODIFY_NODE",
            Self::CpntSpDecreaseNode => "CPNT_SP_DECREASE_NODE",
            Self::CpntCoolDownDecreaseNode => "CPNT_COOL_DOWN_DECREASE_NODE",
            Self::CpntAttackRangeNode => "CPNT_ATTACK_RANGE_NODE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CPNT_NONE" => Some(Self::CpntNone),
            "CPNT_CONNECTION_POTENTIAL_STAT" => Some(Self::CpntConnectionPotentialStat),
            "CPNT_PUBLIC_POTENTIAL_STAT" => Some(Self::CpntPublicPotentialStat),
            "CPNT_BUFF_ADD_NODE" => Some(Self::CpntBuffAddNode),
            "CPNT_BUFF_MODIFY_NODE" => Some(Self::CpntBuffModifyNode),
            "CPNT_SP_DECREASE_NODE" => Some(Self::CpntSpDecreaseNode),
            "CPNT_COOL_DOWN_DECREASE_NODE" => Some(Self::CpntCoolDownDecreaseNode),
            "CPNT_ATTACK_RANGE_NODE" => Some(Self::CpntAttackRangeNode),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineCommunityType {
    CtSurvey = 0,
    CtCommunity = 1,
    CtSns = 2,
    CtYoutube = 3,
    CtInstagram = 4,
    CtTiktok = 5,
}
impl DefineCommunityType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::CtSurvey => "CT_SURVEY",
            Self::CtCommunity => "CT_COMMUNITY",
            Self::CtSns => "CT_SNS",
            Self::CtYoutube => "CT_YOUTUBE",
            Self::CtInstagram => "CT_INSTAGRAM",
            Self::CtTiktok => "CT_TIKTOK",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CT_SURVEY" => Some(Self::CtSurvey),
            "CT_COMMUNITY" => Some(Self::CtCommunity),
            "CT_SNS" => Some(Self::CtSns),
            "CT_YOUTUBE" => Some(Self::CtYoutube),
            "CT_INSTAGRAM" => Some(Self::CtInstagram),
            "CT_TIKTOK" => Some(Self::CtTiktok),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineFieldCharControllDeckType {
    FccdBattle = 0,
    FccdField = 1,
}
impl DefineFieldCharControllDeckType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::FccdBattle => "FCCD_BATTLE",
            Self::FccdField => "FCCD_FIELD",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "FCCD_BATTLE" => Some(Self::FccdBattle),
            "FCCD_FIELD" => Some(Self::FccdField),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineGuildJoinType {
    GuildTypeNone = 0,
    GuildTypeAny = 1,
    GuildTypePrivate = 2,
    GuildTypeNotAllowed = 3,
    GuildTypeDelete = 4,
    GuildTypeDeleteSubmitted = 5,
}
impl DefineGuildJoinType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GuildTypeNone => "GUILD_TYPE_NONE",
            Self::GuildTypeAny => "GUILD_TYPE_ANY",
            Self::GuildTypePrivate => "GUILD_TYPE_PRIVATE",
            Self::GuildTypeNotAllowed => "GUILD_TYPE_NOT_ALLOWED",
            Self::GuildTypeDelete => "GUILD_TYPE_DELETE",
            Self::GuildTypeDeleteSubmitted => "GUILD_TYPE_DELETE_SUBMITTED",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GUILD_TYPE_NONE" => Some(Self::GuildTypeNone),
            "GUILD_TYPE_ANY" => Some(Self::GuildTypeAny),
            "GUILD_TYPE_PRIVATE" => Some(Self::GuildTypePrivate),
            "GUILD_TYPE_NOT_ALLOWED" => Some(Self::GuildTypeNotAllowed),
            "GUILD_TYPE_DELETE" => Some(Self::GuildTypeDelete),
            "GUILD_TYPE_DELETE_SUBMITTED" => Some(Self::GuildTypeDeleteSubmitted),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineGuildMemberRole {
    GuildRoleNone = 0,
    GuildRoleAdmin = 1,
    GuildRoleSubAdmin = 2,
    GuildRoleMember = 3,
}
impl DefineGuildMemberRole {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GuildRoleNone => "GUILD_ROLE_NONE",
            Self::GuildRoleAdmin => "GUILD_ROLE_ADMIN",
            Self::GuildRoleSubAdmin => "GUILD_ROLE_SUB_ADMIN",
            Self::GuildRoleMember => "GUILD_ROLE_MEMBER",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GUILD_ROLE_NONE" => Some(Self::GuildRoleNone),
            "GUILD_ROLE_ADMIN" => Some(Self::GuildRoleAdmin),
            "GUILD_ROLE_SUB_ADMIN" => Some(Self::GuildRoleSubAdmin),
            "GUILD_ROLE_MEMBER" => Some(Self::GuildRoleMember),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineGuildAction {
    GuildActionNone = 0,
    GuildActionCreate = 1,
    GuildActionJoin = 2,
    GuildActionLeave = 3,
    GuildActionBan = 4,
    GuildActionAccept = 5,
    GuildActionRefuse = 6,
    GuildActionInfoEdit = 7,
    GuildActionRoleChange = 8,
    GuildActionAdminInactive = 9,
}
impl DefineGuildAction {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GuildActionNone => "GUILD_ACTION_NONE",
            Self::GuildActionCreate => "GUILD_ACTION_CREATE",
            Self::GuildActionJoin => "GUILD_ACTION_JOIN",
            Self::GuildActionLeave => "GUILD_ACTION_LEAVE",
            Self::GuildActionBan => "GUILD_ACTION_BAN",
            Self::GuildActionAccept => "GUILD_ACTION_ACCEPT",
            Self::GuildActionRefuse => "GUILD_ACTION_REFUSE",
            Self::GuildActionInfoEdit => "GUILD_ACTION_INFO_EDIT",
            Self::GuildActionRoleChange => "GUILD_ACTION_ROLE_CHANGE",
            Self::GuildActionAdminInactive => "GUILD_ACTION_ADMIN_INACTIVE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GUILD_ACTION_NONE" => Some(Self::GuildActionNone),
            "GUILD_ACTION_CREATE" => Some(Self::GuildActionCreate),
            "GUILD_ACTION_JOIN" => Some(Self::GuildActionJoin),
            "GUILD_ACTION_LEAVE" => Some(Self::GuildActionLeave),
            "GUILD_ACTION_BAN" => Some(Self::GuildActionBan),
            "GUILD_ACTION_ACCEPT" => Some(Self::GuildActionAccept),
            "GUILD_ACTION_REFUSE" => Some(Self::GuildActionRefuse),
            "GUILD_ACTION_INFO_EDIT" => Some(Self::GuildActionInfoEdit),
            "GUILD_ACTION_ROLE_CHANGE" => Some(Self::GuildActionRoleChange),
            "GUILD_ACTION_ADMIN_INACTIVE" => Some(Self::GuildActionAdminInactive),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineUserBlockReason {
    UserBlockReasonNone = 0,
    UserBlockReasonPolicyViolation = 1,
    UserBlockReasonIllegalProgramUse = 2,
    UserBlockReasonDataTampering = 3,
    UserBlockReasonSystemExploitation = 4,
    UserBlockReasonAbnormalPayment = 5,
    UserBlockReasonAbusing = 6,
}
impl DefineUserBlockReason {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::UserBlockReasonNone => "USER_BLOCK_REASON_NONE",
            Self::UserBlockReasonPolicyViolation => "USER_BLOCK_REASON_POLICY_VIOLATION",
            Self::UserBlockReasonIllegalProgramUse => {
                "USER_BLOCK_REASON_ILLEGAL_PROGRAM_USE"
            }
            Self::UserBlockReasonDataTampering => "USER_BLOCK_REASON_DATA_TAMPERING",
            Self::UserBlockReasonSystemExploitation => {
                "USER_BLOCK_REASON_SYSTEM_EXPLOITATION"
            }
            Self::UserBlockReasonAbnormalPayment => "USER_BLOCK_REASON_ABNORMAL_PAYMENT",
            Self::UserBlockReasonAbusing => "USER_BLOCK_REASON_ABUSING",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "USER_BLOCK_REASON_NONE" => Some(Self::UserBlockReasonNone),
            "USER_BLOCK_REASON_POLICY_VIOLATION" => {
                Some(Self::UserBlockReasonPolicyViolation)
            }
            "USER_BLOCK_REASON_ILLEGAL_PROGRAM_USE" => {
                Some(Self::UserBlockReasonIllegalProgramUse)
            }
            "USER_BLOCK_REASON_DATA_TAMPERING" => {
                Some(Self::UserBlockReasonDataTampering)
            }
            "USER_BLOCK_REASON_SYSTEM_EXPLOITATION" => {
                Some(Self::UserBlockReasonSystemExploitation)
            }
            "USER_BLOCK_REASON_ABNORMAL_PAYMENT" => {
                Some(Self::UserBlockReasonAbnormalPayment)
            }
            "USER_BLOCK_REASON_ABUSING" => Some(Self::UserBlockReasonAbusing),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineBundleOptionType {
    BundleOptionTypeNone = 0,
    BundleOptionTypeFhd = 1,
    BundleOptionTypeHd = 2,
    BundleOptionTypeSd = 3,
}
impl DefineBundleOptionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::BundleOptionTypeNone => "BUNDLE_OPTION_TYPE_NONE",
            Self::BundleOptionTypeFhd => "BUNDLE_OPTION_TYPE_FHD",
            Self::BundleOptionTypeHd => "BUNDLE_OPTION_TYPE_HD",
            Self::BundleOptionTypeSd => "BUNDLE_OPTION_TYPE_SD",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "BUNDLE_OPTION_TYPE_NONE" => Some(Self::BundleOptionTypeNone),
            "BUNDLE_OPTION_TYPE_FHD" => Some(Self::BundleOptionTypeFhd),
            "BUNDLE_OPTION_TYPE_HD" => Some(Self::BundleOptionTypeHd),
            "BUNDLE_OPTION_TYPE_SD" => Some(Self::BundleOptionTypeSd),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineFieldMiniGamePointType {
    FmgpNone = 0,
    FmgpScore = 1,
    FmgpHp = 2,
    FmgpBoost = 3,
}
impl DefineFieldMiniGamePointType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::FmgpNone => "FMGP_NONE",
            Self::FmgpScore => "FMGP_SCORE",
            Self::FmgpHp => "FMGP_HP",
            Self::FmgpBoost => "FMGP_BOOST",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "FMGP_NONE" => Some(Self::FmgpNone),
            "FMGP_SCORE" => Some(Self::FmgpScore),
            "FMGP_HP" => Some(Self::FmgpHp),
            "FMGP_BOOST" => Some(Self::FmgpBoost),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineJoinResultType {
    GuildJoinSuccess = 0,
    GuildJoinFailCooldown = 1,
}
impl DefineJoinResultType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::GuildJoinSuccess => "GUILD_JOIN_SUCCESS",
            Self::GuildJoinFailCooldown => "GUILD_JOIN_FAIL_COOLDOWN",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GUILD_JOIN_SUCCESS" => Some(Self::GuildJoinSuccess),
            "GUILD_JOIN_FAIL_COOLDOWN" => Some(Self::GuildJoinFailCooldown),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineBannerSortType {
    BannerSortPickUp = 0,
    BannerSortEvent = 1,
    BannerSortPass = 2,
}
impl DefineBannerSortType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::BannerSortPickUp => "BANNER_SORT_PICK_UP",
            Self::BannerSortEvent => "BANNER_SORT_EVENT",
            Self::BannerSortPass => "BANNER_SORT_PASS",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "BANNER_SORT_PICK_UP" => Some(Self::BannerSortPickUp),
            "BANNER_SORT_EVENT" => Some(Self::BannerSortEvent),
            "BANNER_SORT_PASS" => Some(Self::BannerSortPass),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineDatingEpisodeType {
    DatingEpFirstMeet = 0,
    DatingEpNormal = 1,
}
impl DefineDatingEpisodeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::DatingEpFirstMeet => "DATING_EP_FIRST_MEET",
            Self::DatingEpNormal => "DATING_EP_NORMAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "DATING_EP_FIRST_MEET" => Some(Self::DatingEpFirstMeet),
            "DATING_EP_NORMAL" => Some(Self::DatingEpNormal),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineQuestLevelBattleIndex {
    Normal = 0,
    Difficult = 100000,
    VeryDifficult = 200000,
    Hell = 300000,
    Legend = 400000,
    Immortal = 500000,
}
impl DefineQuestLevelBattleIndex {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Normal => "NORMAL",
            Self::Difficult => "DIFFICULT",
            Self::VeryDifficult => "VERY_DIFFICULT",
            Self::Hell => "HELL",
            Self::Legend => "LEGEND",
            Self::Immortal => "IMMORTAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NORMAL" => Some(Self::Normal),
            "DIFFICULT" => Some(Self::Difficult),
            "VERY_DIFFICULT" => Some(Self::VeryDifficult),
            "HELL" => Some(Self::Hell),
            "LEGEND" => Some(Self::Legend),
            "IMMORTAL" => Some(Self::Immortal),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineAutoReviveCharType {
    NoneChar = 0,
    Revive = 1,
    Change = 2,
    Exhaustion = 3,
}
impl DefineAutoReviveCharType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::NoneChar => "NONE_CHAR",
            Self::Revive => "REVIVE",
            Self::Change => "CHANGE",
            Self::Exhaustion => "EXHAUSTION",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NONE_CHAR" => Some(Self::NoneChar),
            "REVIVE" => Some(Self::Revive),
            "CHANGE" => Some(Self::Change),
            "EXHAUSTION" => Some(Self::Exhaustion),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineAutoReviveDisabledType {
    NotDisabled = 0,
    AllCastingCharExhausted = 1,
    CatalystNotEnough = 2,
}
impl DefineAutoReviveDisabledType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::NotDisabled => "NOT_DISABLED",
            Self::AllCastingCharExhausted => "ALL_CASTING_CHAR_EXHAUSTED",
            Self::CatalystNotEnough => "CATALYST_NOT_ENOUGH",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "NOT_DISABLED" => Some(Self::NotDisabled),
            "ALL_CASTING_CHAR_EXHAUSTED" => Some(Self::AllCastingCharExhausted),
            "CATALYST_NOT_ENOUGH" => Some(Self::CatalystNotEnough),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineClearPackageType {
    ClearPackagePack = 0,
    ClearPackageEvilCastle = 1,
}
impl DefineClearPackageType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::ClearPackagePack => "CLEAR_PACKAGE_PACK",
            Self::ClearPackageEvilCastle => "CLEAR_PACKAGE_EVIL_CASTLE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CLEAR_PACKAGE_PACK" => Some(Self::ClearPackagePack),
            "CLEAR_PACKAGE_EVIL_CASTLE" => Some(Self::ClearPackageEvilCastle),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineClearPackageEvilCastleTowerType {
    TowerTypeNone = 0,
    TowerTypeEvilCastle = 1,
    TowerTypeGreed = 2,
    TowerTypeRage = 3,
    TowerTypeEnvy = 4,
}
impl DefineClearPackageEvilCastleTowerType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::TowerTypeNone => "TOWER_TYPE_NONE",
            Self::TowerTypeEvilCastle => "TOWER_TYPE_EVIL_CASTLE",
            Self::TowerTypeGreed => "TOWER_TYPE_GREED",
            Self::TowerTypeRage => "TOWER_TYPE_RAGE",
            Self::TowerTypeEnvy => "TOWER_TYPE_ENVY",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TOWER_TYPE_NONE" => Some(Self::TowerTypeNone),
            "TOWER_TYPE_EVIL_CASTLE" => Some(Self::TowerTypeEvilCastle),
            "TOWER_TYPE_GREED" => Some(Self::TowerTypeGreed),
            "TOWER_TYPE_RAGE" => Some(Self::TowerTypeRage),
            "TOWER_TYPE_ENVY" => Some(Self::TowerTypeEnvy),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineBattleEngineType {
    BattleEngineV1 = 0,
    BattleEngineV2 = 1,
}
impl DefineBattleEngineType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::BattleEngineV1 => "BATTLE_ENGINE_V1",
            Self::BattleEngineV2 => "BATTLE_ENGINE_V2",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "BATTLE_ENGINE_V1" => Some(Self::BattleEngineV1),
            "BATTLE_ENGINE_V2" => Some(Self::BattleEngineV2),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameStageType {
    MgssSurvive = 0,
    MgssChallenge = 1,
}
impl DefineMiniGameStageType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgssSurvive => "MGSS_SURVIVE",
            Self::MgssChallenge => "MGSS_CHALLENGE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGSS_SURVIVE" => Some(Self::MgssSurvive),
            "MGSS_CHALLENGE" => Some(Self::MgssChallenge),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameSurvivalItemType {
    MgsiHp = 0,
    MgsiMagnet = 1,
    MgsiBomb = 2,
    MgsiExp = 3,
    MgsiCoin = 4,
    MgsiSkill = 5,
    MgsiEmp = 6,
}
impl DefineMiniGameSurvivalItemType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgsiHp => "MGSI_HP",
            Self::MgsiMagnet => "MGSI_MAGNET",
            Self::MgsiBomb => "MGSI_BOMB",
            Self::MgsiExp => "MGSI_EXP",
            Self::MgsiCoin => "MGSI_COIN",
            Self::MgsiSkill => "MGSI_SKILL",
            Self::MgsiEmp => "MGSI_EMP",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGSI_HP" => Some(Self::MgsiHp),
            "MGSI_MAGNET" => Some(Self::MgsiMagnet),
            "MGSI_BOMB" => Some(Self::MgsiBomb),
            "MGSI_EXP" => Some(Self::MgsiExp),
            "MGSI_COIN" => Some(Self::MgsiCoin),
            "MGSI_SKILL" => Some(Self::MgsiSkill),
            "MGSI_EMP" => Some(Self::MgsiEmp),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameStageLevelType {
    MgsslNone = 0,
    MgsslNormal = 1,
    MgsslHard = 2,
    MgsslVeryHard = 3,
}
impl DefineMiniGameStageLevelType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgsslNone => "MGSSL_NONE",
            Self::MgsslNormal => "MGSSL_NORMAL",
            Self::MgsslHard => "MGSSL_HARD",
            Self::MgsslVeryHard => "MGSSL_VERY_HARD",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGSSL_NONE" => Some(Self::MgsslNone),
            "MGSSL_NORMAL" => Some(Self::MgsslNormal),
            "MGSSL_HARD" => Some(Self::MgsslHard),
            "MGSSL_VERY_HARD" => Some(Self::MgsslVeryHard),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameUpgradeStatType {
    MgusNone = 0,
    MgusMaxHpAdd = 1,
    MgusHpRecoveryAdd = 2,
    MgusMoveSpeedMultiply = 3,
    MgusAttackPowerMultiply = 4,
    MgusObtainRangeMultiply = 5,
    MgusCoolTimeMultiply = 6,
    MgusDefensePowerMultiply = 7,
    MgusObtainExpMultiply = 8,
    MgusObtainCoinMultiply = 9,
    MgusSkillDurationMultiply = 10,
    MgusMissileCountAdd = 11,
    MgusSkillSelectRerollCountAdd = 12,
}
impl DefineMiniGameUpgradeStatType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgusNone => "MGUS_NONE",
            Self::MgusMaxHpAdd => "MGUS_MAX_HP_ADD",
            Self::MgusHpRecoveryAdd => "MGUS_HP_RECOVERY_ADD",
            Self::MgusMoveSpeedMultiply => "MGUS_MOVE_SPEED_MULTIPLY",
            Self::MgusAttackPowerMultiply => "MGUS_ATTACK_POWER_MULTIPLY",
            Self::MgusObtainRangeMultiply => "MGUS_OBTAIN_RANGE_MULTIPLY",
            Self::MgusCoolTimeMultiply => "MGUS_COOL_TIME_MULTIPLY",
            Self::MgusDefensePowerMultiply => "MGUS_DEFENSE_POWER_MULTIPLY",
            Self::MgusObtainExpMultiply => "MGUS_OBTAIN_EXP_MULTIPLY",
            Self::MgusObtainCoinMultiply => "MGUS_OBTAIN_COIN_MULTIPLY",
            Self::MgusSkillDurationMultiply => "MGUS_SKILL_DURATION_MULTIPLY",
            Self::MgusMissileCountAdd => "MGUS_MISSILE_COUNT_ADD",
            Self::MgusSkillSelectRerollCountAdd => "MGUS_SKILL_SELECT_REROLL_COUNT_ADD",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGUS_NONE" => Some(Self::MgusNone),
            "MGUS_MAX_HP_ADD" => Some(Self::MgusMaxHpAdd),
            "MGUS_HP_RECOVERY_ADD" => Some(Self::MgusHpRecoveryAdd),
            "MGUS_MOVE_SPEED_MULTIPLY" => Some(Self::MgusMoveSpeedMultiply),
            "MGUS_ATTACK_POWER_MULTIPLY" => Some(Self::MgusAttackPowerMultiply),
            "MGUS_OBTAIN_RANGE_MULTIPLY" => Some(Self::MgusObtainRangeMultiply),
            "MGUS_COOL_TIME_MULTIPLY" => Some(Self::MgusCoolTimeMultiply),
            "MGUS_DEFENSE_POWER_MULTIPLY" => Some(Self::MgusDefensePowerMultiply),
            "MGUS_OBTAIN_EXP_MULTIPLY" => Some(Self::MgusObtainExpMultiply),
            "MGUS_OBTAIN_COIN_MULTIPLY" => Some(Self::MgusObtainCoinMultiply),
            "MGUS_SKILL_DURATION_MULTIPLY" => Some(Self::MgusSkillDurationMultiply),
            "MGUS_MISSILE_COUNT_ADD" => Some(Self::MgusMissileCountAdd),
            "MGUS_SKILL_SELECT_REROLL_COUNT_ADD" => {
                Some(Self::MgusSkillSelectRerollCountAdd)
            }
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameSkillStatType {
    MgsstNone = 0,
    MgsstMaxHpMultiply = 1,
    MgsstMoveSpeedMultiply = 2,
    MgsstAttackPowerMultiply = 3,
    MgsstObtainRangeMultiply = 4,
    MgsstSkillDurationMultiply = 5,
    MgsstCoolTimeMultiply = 6,
    MgsstObtainExpMultiply = 7,
    MgsstObtainCoinMultiply = 8,
    MgsstMissileSpeedMultiply = 9,
    MgsstHpRecoveryAdd = 10,
    MgsstDefensePowerMultiply = 11,
}
impl DefineMiniGameSkillStatType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgsstNone => "MGSST_NONE",
            Self::MgsstMaxHpMultiply => "MGSST_MAX_HP_MULTIPLY",
            Self::MgsstMoveSpeedMultiply => "MGSST_MOVE_SPEED_MULTIPLY",
            Self::MgsstAttackPowerMultiply => "MGSST_ATTACK_POWER_MULTIPLY",
            Self::MgsstObtainRangeMultiply => "MGSST_OBTAIN_RANGE_MULTIPLY",
            Self::MgsstSkillDurationMultiply => "MGSST_SKILL_DURATION_MULTIPLY",
            Self::MgsstCoolTimeMultiply => "MGSST_COOL_TIME_MULTIPLY",
            Self::MgsstObtainExpMultiply => "MGSST_OBTAIN_EXP_MULTIPLY",
            Self::MgsstObtainCoinMultiply => "MGSST_OBTAIN_COIN_MULTIPLY",
            Self::MgsstMissileSpeedMultiply => "MGSST_MISSILE_SPEED_MULTIPLY",
            Self::MgsstHpRecoveryAdd => "MGSST_HP_RECOVERY_ADD",
            Self::MgsstDefensePowerMultiply => "MGSST_DEFENSE_POWER_MULTIPLY",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGSST_NONE" => Some(Self::MgsstNone),
            "MGSST_MAX_HP_MULTIPLY" => Some(Self::MgsstMaxHpMultiply),
            "MGSST_MOVE_SPEED_MULTIPLY" => Some(Self::MgsstMoveSpeedMultiply),
            "MGSST_ATTACK_POWER_MULTIPLY" => Some(Self::MgsstAttackPowerMultiply),
            "MGSST_OBTAIN_RANGE_MULTIPLY" => Some(Self::MgsstObtainRangeMultiply),
            "MGSST_SKILL_DURATION_MULTIPLY" => Some(Self::MgsstSkillDurationMultiply),
            "MGSST_COOL_TIME_MULTIPLY" => Some(Self::MgsstCoolTimeMultiply),
            "MGSST_OBTAIN_EXP_MULTIPLY" => Some(Self::MgsstObtainExpMultiply),
            "MGSST_OBTAIN_COIN_MULTIPLY" => Some(Self::MgsstObtainCoinMultiply),
            "MGSST_MISSILE_SPEED_MULTIPLY" => Some(Self::MgsstMissileSpeedMultiply),
            "MGSST_HP_RECOVERY_ADD" => Some(Self::MgsstHpRecoveryAdd),
            "MGSST_DEFENSE_POWER_MULTIPLY" => Some(Self::MgsstDefensePowerMultiply),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameSkillType {
    MgSkillAfterMaxLevel = 0,
    MgSkillWeapon = 1,
    MgSkillAbility = 2,
    MgSkillUltimate = 3,
}
impl DefineMiniGameSkillType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgSkillAfterMaxLevel => "MG_SKILL_AFTER_MAX_LEVEL",
            Self::MgSkillWeapon => "MG_SKILL_WEAPON",
            Self::MgSkillAbility => "MG_SKILL_ABILITY",
            Self::MgSkillUltimate => "MG_SKILL_ULTIMATE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MG_SKILL_AFTER_MAX_LEVEL" => Some(Self::MgSkillAfterMaxLevel),
            "MG_SKILL_WEAPON" => Some(Self::MgSkillWeapon),
            "MG_SKILL_ABILITY" => Some(Self::MgSkillAbility),
            "MG_SKILL_ULTIMATE" => Some(Self::MgSkillUltimate),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameSkillSubType {
    MgSkillSubNone = 0,
    MgSkillSubAbility = 1,
    MgSkillSubStraightShot = 2,
    MgSkillSubCircularRotation = 3,
    MgSkillSubRangedAttack = 4,
    MgSkillSubLaser = 5,
    MgSkillSubLongBoardAttack = 6,
    MgSkillSubBoomerang = 7,
    MgSkillSubWhip = 8,
    MgSkillSubFirebomb = 9,
    MgSkillSubSword = 10,
    MgSkillSub8WaySpray = 11,
    MgSkillSubHpAdd = 2001,
    MgSkillSubCoinAdd = 2002,
}
impl DefineMiniGameSkillSubType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgSkillSubNone => "MG_SKILL_SUB_NONE",
            Self::MgSkillSubAbility => "MG_SKILL_SUB_ABILITY",
            Self::MgSkillSubStraightShot => "mg_skill_sub_straight_shot",
            Self::MgSkillSubCircularRotation => "MG_SKILL_SUB_CIRCULAR_ROTATION",
            Self::MgSkillSubRangedAttack => "MG_SKILL_SUB_RANGED_ATTACK",
            Self::MgSkillSubLaser => "MG_SKILL_SUB_LASER",
            Self::MgSkillSubLongBoardAttack => "MG_SKILL_SUB_LONG_BOARD_ATTACK",
            Self::MgSkillSubBoomerang => "MG_SKILL_SUB_BOOMERANG",
            Self::MgSkillSubWhip => "MG_SKILL_SUB_WHIP",
            Self::MgSkillSubFirebomb => "MG_SKILL_SUB_FIREBOMB",
            Self::MgSkillSubSword => "MG_SKILL_SUB_SWORD",
            Self::MgSkillSub8WaySpray => "MG_SKILL_SUB_8_WAY_SPRAY",
            Self::MgSkillSubHpAdd => "MG_SKILL_SUB_HP_ADD",
            Self::MgSkillSubCoinAdd => "MG_SKILL_SUB_COIN_ADD",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MG_SKILL_SUB_NONE" => Some(Self::MgSkillSubNone),
            "MG_SKILL_SUB_ABILITY" => Some(Self::MgSkillSubAbility),
            "mg_skill_sub_straight_shot" => Some(Self::MgSkillSubStraightShot),
            "MG_SKILL_SUB_CIRCULAR_ROTATION" => Some(Self::MgSkillSubCircularRotation),
            "MG_SKILL_SUB_RANGED_ATTACK" => Some(Self::MgSkillSubRangedAttack),
            "MG_SKILL_SUB_LASER" => Some(Self::MgSkillSubLaser),
            "MG_SKILL_SUB_LONG_BOARD_ATTACK" => Some(Self::MgSkillSubLongBoardAttack),
            "MG_SKILL_SUB_BOOMERANG" => Some(Self::MgSkillSubBoomerang),
            "MG_SKILL_SUB_WHIP" => Some(Self::MgSkillSubWhip),
            "MG_SKILL_SUB_FIREBOMB" => Some(Self::MgSkillSubFirebomb),
            "MG_SKILL_SUB_SWORD" => Some(Self::MgSkillSubSword),
            "MG_SKILL_SUB_8_WAY_SPRAY" => Some(Self::MgSkillSub8WaySpray),
            "MG_SKILL_SUB_HP_ADD" => Some(Self::MgSkillSubHpAdd),
            "MG_SKILL_SUB_COIN_ADD" => Some(Self::MgSkillSubCoinAdd),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameCollectionType {
    MgcSkillWeapon = 0,
    MgcSkillAbility = 1,
    MgcItem = 2,
}
impl DefineMiniGameCollectionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgcSkillWeapon => "MGC_SKILL_WEAPON",
            Self::MgcSkillAbility => "MGC_SKILL_ABILITY",
            Self::MgcItem => "MGC_ITEM",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGC_SKILL_WEAPON" => Some(Self::MgcSkillWeapon),
            "MGC_SKILL_ABILITY" => Some(Self::MgcSkillAbility),
            "MGC_ITEM" => Some(Self::MgcItem),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameMonsterType {
    MgmNormal = 0,
    MgmElite = 1,
    MgmBoss = 2,
    MgmSubBoss = 3,
}
impl DefineMiniGameMonsterType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgmNormal => "MGM_NORMAL",
            Self::MgmElite => "MGM_ELITE",
            Self::MgmBoss => "MGM_BOSS",
            Self::MgmSubBoss => "MGM_SUB_BOSS",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGM_NORMAL" => Some(Self::MgmNormal),
            "MGM_ELITE" => Some(Self::MgmElite),
            "MGM_BOSS" => Some(Self::MgmBoss),
            "MGM_SUB_BOSS" => Some(Self::MgmSubBoss),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameSichuanType {
    SichuanTypeNone = 0,
    SichuanTypeNormal = 1,
    SichuanTypeChallenge = 2,
}
impl DefineMiniGameSichuanType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::SichuanTypeNone => "SICHUAN_TYPE_NONE",
            Self::SichuanTypeNormal => "SICHUAN_TYPE_NORMAL",
            Self::SichuanTypeChallenge => "SICHUAN_TYPE_CHALLENGE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SICHUAN_TYPE_NONE" => Some(Self::SichuanTypeNone),
            "SICHUAN_TYPE_NORMAL" => Some(Self::SichuanTypeNormal),
            "SICHUAN_TYPE_CHALLENGE" => Some(Self::SichuanTypeChallenge),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameSichuanBlockType {
    SichuanBlockTypeEmpty = 0,
    SichuanBlockTypeNormalCostume = 1,
    SichuanBlockTypeNormalFood = 2,
    SichuanBlockTypeRock = 10,
    SichuanBlockTypeKey = 11,
    SichuanBlockTypeLock = 12,
    SichuanBlockTypeTimer = 13,
}
impl DefineMiniGameSichuanBlockType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::SichuanBlockTypeEmpty => "SICHUAN_BLOCK_TYPE_EMPTY",
            Self::SichuanBlockTypeNormalCostume => "SICHUAN_BLOCK_TYPE_NORMAL_COSTUME",
            Self::SichuanBlockTypeNormalFood => "SICHUAN_BLOCK_TYPE_NORMAL_FOOD",
            Self::SichuanBlockTypeRock => "SICHUAN_BLOCK_TYPE_ROCK",
            Self::SichuanBlockTypeKey => "SICHUAN_BLOCK_TYPE_KEY",
            Self::SichuanBlockTypeLock => "SICHUAN_BLOCK_TYPE_LOCK",
            Self::SichuanBlockTypeTimer => "SICHUAN_BLOCK_TYPE_TIMER",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SICHUAN_BLOCK_TYPE_EMPTY" => Some(Self::SichuanBlockTypeEmpty),
            "SICHUAN_BLOCK_TYPE_NORMAL_COSTUME" => {
                Some(Self::SichuanBlockTypeNormalCostume)
            }
            "SICHUAN_BLOCK_TYPE_NORMAL_FOOD" => Some(Self::SichuanBlockTypeNormalFood),
            "SICHUAN_BLOCK_TYPE_ROCK" => Some(Self::SichuanBlockTypeRock),
            "SICHUAN_BLOCK_TYPE_KEY" => Some(Self::SichuanBlockTypeKey),
            "SICHUAN_BLOCK_TYPE_LOCK" => Some(Self::SichuanBlockTypeLock),
            "SICHUAN_BLOCK_TYPE_TIMER" => Some(Self::SichuanBlockTypeTimer),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineAchievementContentsGroupType {
    AcgAchievement = 0,
    AcgTitle = 1,
}
impl DefineAchievementContentsGroupType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::AcgAchievement => "ACG_ACHIEVEMENT",
            Self::AcgTitle => "ACG_TITLE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "ACG_ACHIEVEMENT" => Some(Self::AcgAchievement),
            "ACG_TITLE" => Some(Self::AcgTitle),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameHubProgressType {
    MghpNone = 0,
    MghpNew = 1,
    MghpReturn = 2,
}
impl DefineMiniGameHubProgressType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MghpNone => "MGHP_NONE",
            Self::MghpNew => "MGHP_NEW",
            Self::MghpReturn => "MGHP_RETURN",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGHP_NONE" => Some(Self::MghpNone),
            "MGHP_NEW" => Some(Self::MghpNew),
            "MGHP_RETURN" => Some(Self::MghpReturn),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameRouletteDrawType {
    MgrbFree = 0,
    MgrbNormal = 1,
}
impl DefineMiniGameRouletteDrawType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgrbFree => "MGRB_FREE",
            Self::MgrbNormal => "MGRB_NORMAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGRB_FREE" => Some(Self::MgrbFree),
            "MGRB_NORMAL" => Some(Self::MgrbNormal),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineRecommendDeckListOrderType {
    RdoNone = 0,
    RdoDeckPowerDesc = 1,
    RdoDeckPowerAsc = 2,
}
impl DefineRecommendDeckListOrderType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::RdoNone => "RDO_NONE",
            Self::RdoDeckPowerDesc => "RDO_DECK_POWER_DESC",
            Self::RdoDeckPowerAsc => "RDO_DECK_POWER_ASC",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "RDO_NONE" => Some(Self::RdoNone),
            "RDO_DECK_POWER_DESC" => Some(Self::RdoDeckPowerDesc),
            "RDO_DECK_POWER_ASC" => Some(Self::RdoDeckPowerAsc),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineTeamCountType {
    Tc0 = 0,
    Tc1 = 1,
    Tc2 = 2,
}
impl DefineTeamCountType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Tc0 => "TC_0",
            Self::Tc1 => "TC_1",
            Self::Tc2 => "TC_2",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TC_0" => Some(Self::Tc0),
            "TC_1" => Some(Self::Tc1),
            "TC_2" => Some(Self::Tc2),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMyRoomPositionType {
    MrptWallNone = 0,
    MrptFloor = 1,
    MrptWallL = 2,
    MrptWallR = 3,
}
impl DefineMyRoomPositionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MrptWallNone => "MRPT_WALL_NONE",
            Self::MrptFloor => "MRPT_FLOOR",
            Self::MrptWallL => "MRPT_WALL_L",
            Self::MrptWallR => "MRPT_WALL_R",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MRPT_WALL_NONE" => Some(Self::MrptWallNone),
            "MRPT_FLOOR" => Some(Self::MrptFloor),
            "MRPT_WALL_L" => Some(Self::MrptWallL),
            "MRPT_WALL_R" => Some(Self::MrptWallR),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMyRoomRecommendType {
    MrrtRandom = 0,
    MrrtRecommended = 1,
}
impl DefineMyRoomRecommendType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MrrtRandom => "MRRT_RANDOM",
            Self::MrrtRecommended => "MRRT_RECOMMENDED",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MRRT_RANDOM" => Some(Self::MrrtRandom),
            "MRRT_RECOMMENDED" => Some(Self::MrrtRecommended),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameActionMissionConditionType {
    MgamctNone = 0,
    MgamctMonster = 1,
    MgamctTimeMonster = 2,
    MgamctUnderHitCount = 3,
    MgamctPartBreakCount = 4,
    MgamctGroggyCount = 5,
    MgamctJustGuardAfterSpecialSkill = 6,
    MgamctGroggyAfterDamage = 7,
    MgamctDebuffAfterSpecialSkill = 8,
    MgamctJustMissCount = 9,
    MgamctJustGuardCount = 10,
    MgamctHealCount = 11,
    MgamctAngerAfterGroggyCount = 12,
}
impl DefineMiniGameActionMissionConditionType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgamctNone => "MGAMCT_NONE",
            Self::MgamctMonster => "MGAMCT_MONSTER",
            Self::MgamctTimeMonster => "MGAMCT_TIME_MONSTER",
            Self::MgamctUnderHitCount => "MGAMCT_UNDER_HIT_COUNT",
            Self::MgamctPartBreakCount => "MGAMCT_PART_BREAK_COUNT",
            Self::MgamctGroggyCount => "MGAMCT_GROGGY_COUNT",
            Self::MgamctJustGuardAfterSpecialSkill => {
                "MGAMCT_JUST_GUARD_AFTER_SPECIAL_SKILL"
            }
            Self::MgamctGroggyAfterDamage => "MGAMCT_GROGGY_AFTER_DAMAGE",
            Self::MgamctDebuffAfterSpecialSkill => "MGAMCT_DEBUFF_AFTER_SPECIAL_SKILL",
            Self::MgamctJustMissCount => "MGAMCT_JUST_MISS_COUNT",
            Self::MgamctJustGuardCount => "MGAMCT_JUST_GUARD_COUNT",
            Self::MgamctHealCount => "MGAMCT_HEAL_COUNT",
            Self::MgamctAngerAfterGroggyCount => "MGAMCT_ANGER_AFTER_GROGGY_COUNT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGAMCT_NONE" => Some(Self::MgamctNone),
            "MGAMCT_MONSTER" => Some(Self::MgamctMonster),
            "MGAMCT_TIME_MONSTER" => Some(Self::MgamctTimeMonster),
            "MGAMCT_UNDER_HIT_COUNT" => Some(Self::MgamctUnderHitCount),
            "MGAMCT_PART_BREAK_COUNT" => Some(Self::MgamctPartBreakCount),
            "MGAMCT_GROGGY_COUNT" => Some(Self::MgamctGroggyCount),
            "MGAMCT_JUST_GUARD_AFTER_SPECIAL_SKILL" => {
                Some(Self::MgamctJustGuardAfterSpecialSkill)
            }
            "MGAMCT_GROGGY_AFTER_DAMAGE" => Some(Self::MgamctGroggyAfterDamage),
            "MGAMCT_DEBUFF_AFTER_SPECIAL_SKILL" => {
                Some(Self::MgamctDebuffAfterSpecialSkill)
            }
            "MGAMCT_JUST_MISS_COUNT" => Some(Self::MgamctJustMissCount),
            "MGAMCT_JUST_GUARD_COUNT" => Some(Self::MgamctJustGuardCount),
            "MGAMCT_HEAL_COUNT" => Some(Self::MgamctHealCount),
            "MGAMCT_ANGER_AFTER_GROGGY_COUNT" => Some(Self::MgamctAngerAfterGroggyCount),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineSupporterBorrowType {
    SupporterBorrowRecommend = 0,
    SupporterBorrowFriend = 1,
    SupporterBorrowGuildRaid = 2,
}
impl DefineSupporterBorrowType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::SupporterBorrowRecommend => "SUPPORTER_BORROW_RECOMMEND",
            Self::SupporterBorrowFriend => "SUPPORTER_BORROW_FRIEND",
            Self::SupporterBorrowGuildRaid => "SUPPORTER_BORROW_GUILD_RAID",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SUPPORTER_BORROW_RECOMMEND" => Some(Self::SupporterBorrowRecommend),
            "SUPPORTER_BORROW_FRIEND" => Some(Self::SupporterBorrowFriend),
            "SUPPORTER_BORROW_GUILD_RAID" => Some(Self::SupporterBorrowGuildRaid),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameRhythmModeType {
    MgrmNormal = 0,
    MgrmHard = 1,
    MgrmChallenge = 2,
}
impl DefineMiniGameRhythmModeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgrmNormal => "MGRM_NORMAL",
            Self::MgrmHard => "MGRM_HARD",
            Self::MgrmChallenge => "MGRM_CHALLENGE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGRM_NORMAL" => Some(Self::MgrmNormal),
            "MGRM_HARD" => Some(Self::MgrmHard),
            "MGRM_CHALLENGE" => Some(Self::MgrmChallenge),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameRhythmJudgmentType {
    MgrjNone = 0,
    MgrjPerfect = 1,
    MgrjGreat = 2,
    MgrjGood = 3,
    MgrjMiss = 4,
}
impl DefineMiniGameRhythmJudgmentType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgrjNone => "MGRJ_NONE",
            Self::MgrjPerfect => "MGRJ_PERFECT",
            Self::MgrjGreat => "MGRJ_GREAT",
            Self::MgrjGood => "MGRJ_GOOD",
            Self::MgrjMiss => "MGRJ_MISS",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGRJ_NONE" => Some(Self::MgrjNone),
            "MGRJ_PERFECT" => Some(Self::MgrjPerfect),
            "MGRJ_GREAT" => Some(Self::MgrjGreat),
            "MGRJ_GOOD" => Some(Self::MgrjGood),
            "MGRJ_MISS" => Some(Self::MgrjMiss),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameRhythmGradeType {
    MgrgNone = 0,
    MgrgS = 1,
    MgrgA = 2,
    MgrgB = 3,
    MgrgC = 4,
    MgrgD = 5,
    MgrgE = 6,
}
impl DefineMiniGameRhythmGradeType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgrgNone => "MGRG_NONE",
            Self::MgrgS => "MGRG_S",
            Self::MgrgA => "MGRG_A",
            Self::MgrgB => "MGRG_B",
            Self::MgrgC => "MGRG_C",
            Self::MgrgD => "MGRG_D",
            Self::MgrgE => "MGRG_E",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGRG_NONE" => Some(Self::MgrgNone),
            "MGRG_S" => Some(Self::MgrgS),
            "MGRG_A" => Some(Self::MgrgA),
            "MGRG_B" => Some(Self::MgrgB),
            "MGRG_C" => Some(Self::MgrgC),
            "MGRG_D" => Some(Self::MgrgD),
            "MGRG_E" => Some(Self::MgrgE),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineMiniGameRhythmComboType {
    MgrcNone = 0,
    MgrcFullCombo = 1,
    MgrcAllPerfectCombo = 2,
}
impl DefineMiniGameRhythmComboType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::MgrcNone => "MGRC_NONE",
            Self::MgrcFullCombo => "MGRC_FULL_COMBO",
            Self::MgrcAllPerfectCombo => "MGRC_ALL_PERFECT_COMBO",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MGRC_NONE" => Some(Self::MgrcNone),
            "MGRC_FULL_COMBO" => Some(Self::MgrcFullCombo),
            "MGRC_ALL_PERFECT_COMBO" => Some(Self::MgrcAllPerfectCombo),
            _ => None,
        }
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEvilCastleRogueLikeScoreType {
    EcrlsNone = 0,
    EcrlsFloor = 1,
    EcrlsGold = 2,
    EcrlsRelic = 3,
    EcrlsLessChar = 4,
    EcrlsMoreChar = 5,
    EcrlsEvent = 6,
    EcrlsWinElite = 7,
    EcrlsWinBoss = 8,
    EcrlsCrystalScore = 9,
    EcrlsQuickBattle = 9999,
}
impl DefineEvilCastleRogueLikeScoreType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::EcrlsNone => "ECRLS_NONE",
            Self::EcrlsFloor => "ECRLS_FLOOR",
            Self::EcrlsGold => "ECRLS_GOLD",
            Self::EcrlsRelic => "ECRLS_RELIC",
            Self::EcrlsLessChar => "ECRLS_LESS_CHAR",
            Self::EcrlsMoreChar => "ECRLS_MORE_CHAR",
            Self::EcrlsEvent => "ECRLS_EVENT",
            Self::EcrlsWinElite => "ECRLS_WIN_ELITE",
            Self::EcrlsWinBoss => "ECRLS_WIN_BOSS",
            Self::EcrlsCrystalScore => "ECRLS_CRYSTAL_SCORE",
            Self::EcrlsQuickBattle => "ECRLS_QUICK_BATTLE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "ECRLS_NONE" => Some(Self::EcrlsNone),
            "ECRLS_FLOOR" => Some(Self::EcrlsFloor),
            "ECRLS_GOLD" => Some(Self::EcrlsGold),
            "ECRLS_RELIC" => Some(Self::EcrlsRelic),
            "ECRLS_LESS_CHAR" => Some(Self::EcrlsLessChar),
            "ECRLS_MORE_CHAR" => Some(Self::EcrlsMoreChar),
            "ECRLS_EVENT" => Some(Self::EcrlsEvent),
            "ECRLS_WIN_ELITE" => Some(Self::EcrlsWinElite),
            "ECRLS_WIN_BOSS" => Some(Self::EcrlsWinBoss),
            "ECRLS_CRYSTAL_SCORE" => Some(Self::EcrlsCrystalScore),
            "ECRLS_QUICK_BATTLE" => Some(Self::EcrlsQuickBattle),
            _ => None,
        }
    }
}
/// From: Response\BattleRetryPreviousTurnResponse.proto
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DefineEMonsterHuntSkillLimits {
    None = 0,
    Team = 1,
    Battle = 2,
}
impl DefineEMonsterHuntSkillLimits {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::None => "None",
            Self::Team => "Team",
            Self::Battle => "Battle",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "None" => Some(Self::None),
            "Team" => Some(Self::Team),
            "Battle" => Some(Self::Battle),
            _ => None,
        }
    }
}
