// This file is @generated by prost-build.
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VectorBin {
    #[prost(float, tag = "1")]
    pub x: f32,
    #[prost(float, tag = "2")]
    pub y: f32,
    #[prost(float, tag = "3")]
    pub z: f32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Uint32PairBin {
    #[prost(uint32, tag = "1")]
    pub key: u32,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Uint32ToInt32PairBin {
    #[prost(uint32, tag = "1")]
    pub key: u32,
    #[prost(int32, tag = "2")]
    pub value: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FloatPairBin {
    #[prost(float, tag = "1")]
    pub first: f32,
    #[prost(float, tag = "2")]
    pub second: f32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Uint32List {
    #[prost(uint32, repeated, tag = "1")]
    pub uint32_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Int32List {
    #[prost(int32, repeated, tag = "1")]
    pub int32_list: ::prost::alloc::vec::Vec<i32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReliquaryBin {
    #[prost(uint32, tag = "1")]
    pub level: u32,
    #[prost(uint32, tag = "2")]
    pub exp: u32,
    #[prost(uint32, tag = "4")]
    pub main_prop_id: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub append_prop_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WeaponBin {
    #[prost(uint32, tag = "1")]
    pub level: u32,
    #[prost(uint32, tag = "2")]
    pub exp: u32,
    #[prost(uint32, tag = "3")]
    pub promote_level: u32,
    #[prost(map = "uint32, uint32", tag = "4")]
    pub affix_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemParamBin {
    #[prost(uint32, tag = "1")]
    pub item_id: u32,
    #[prost(uint32, tag = "2")]
    pub count: u32,
    #[prost(uint32, tag = "3")]
    pub level: u32,
    #[prost(uint32, tag = "4")]
    pub promote_level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MailBin {
    #[prost(string, tag = "1")]
    pub title: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub content: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub sender: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "4")]
    pub item_param_list: ::prost::alloc::vec::Vec<ItemParamBin>,
    #[prost(fixed32, tag = "5")]
    pub send_time: u32,
    #[prost(fixed32, tag = "6")]
    pub expire_time: u32,
    #[prost(uint32, tag = "7")]
    pub importance: u32,
    #[prost(uint32, tag = "8")]
    pub config_id: u32,
    #[prost(string, repeated, tag = "9")]
    pub argument_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(uint32, tag = "10")]
    pub item_limit_type: u32,
    #[prost(uint32, tag = "11")]
    pub source_type: u32,
    #[prost(string, tag = "12")]
    pub tag: ::prost::alloc::string::String,
    #[prost(uint32, tag = "13")]
    pub reason_type: u32,
    #[prost(uint32, tag = "14")]
    pub collect_state: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelItemOp {
    #[prost(uint32, tag = "1")]
    pub item_id: u32,
    #[prost(uint32, tag = "2")]
    pub item_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelItemNegativeOp {
    #[prost(uint32, tag = "1")]
    pub item_id: u32,
    #[prost(uint32, tag = "2")]
    pub item_num: u32,
    #[prost(uint32, tag = "3")]
    pub remain_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelEquipOp {
    #[prost(uint64, tag = "1")]
    pub guid: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGotoOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(message, optional, tag = "2")]
    pub pos: ::core::option::Option<VectorBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetParentQuestOp {
    #[prost(uint32, tag = "3")]
    pub parent_quest_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RefreshGroupOp {
    #[prost(uint32, tag = "1")]
    pub group_id: u32,
    #[prost(uint32, tag = "2")]
    pub suite_id: u32,
    #[prost(uint32, tag = "3")]
    pub scene_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetScenePointLockStatusOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub point_id: u32,
    #[prost(bool, tag = "3")]
    pub is_locked: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetPlayerNickNameOp {
    #[prost(string, tag = "1")]
    pub nick_name: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RefreshShopOp {}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnlockTalentOp {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "2")]
    pub skill_depot_id: u32,
    #[prost(uint32, tag = "3")]
    pub talent_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TakeOffEquipOp {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "2")]
    pub equip_type: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelMailOp {
    #[prost(uint32, repeated, tag = "1")]
    pub mail_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnlockAreaOp {
    #[prost(uint32, tag = "1")]
    pub area_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FinishDailyTaskOp {
    #[prost(uint32, tag = "1")]
    pub daily_task_id: u32,
    #[prost(uint32, tag = "2")]
    pub daily_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddItemOp {
    #[prost(uint32, tag = "1")]
    pub item_id: u32,
    #[prost(uint32, tag = "2")]
    pub item_count: u32,
    #[prost(oneof = "add_item_op::Detail", tags = "101, 102")]
    pub detail: ::core::option::Option<add_item_op::Detail>,
}
/// Nested message and enum types in `AddItemOp`.
pub mod add_item_op {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "101")]
        Reliquary(super::ReliquaryBin),
        #[prost(message, tag = "102")]
        Weapon(super::WeaponBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ModifyBornPosOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(message, optional, tag = "2")]
    pub pos: ::core::option::Option<VectorBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubCoinNegativeOp {
    #[prost(uint32, tag = "1")]
    pub scoin: u32,
    #[prost(uint32, tag = "2")]
    pub hcoin: u32,
    #[prost(uint32, tag = "3")]
    pub mcoin: u32,
    #[prost(uint32, tag = "4")]
    pub home_coin: u32,
    #[prost(int32, tag = "5")]
    pub platform_type: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetQuestContentProgressOp {
    #[prost(uint32, tag = "1")]
    pub quest_id: u32,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub finish_progress_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "3")]
    pub fail_progress_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FinishOrderOp {
    #[prost(uint32, tag = "1")]
    pub order_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddOrModifyWatcherOp {
    #[prost(uint32, tag = "1")]
    pub watcher_id: u32,
    #[prost(uint32, tag = "2")]
    pub progress: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelWatcherOp {
    #[prost(uint32, tag = "1")]
    pub watcher_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetSignatureOp {
    #[prost(string, tag = "1")]
    pub signature: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddOrSubResinOp {
    #[prost(uint32, tag = "1")]
    pub delta_count: u32,
    #[prost(bool, tag = "2")]
    pub is_sub: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetQuestGlobalVarValueOp {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(int32, tag = "2")]
    pub value: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddMcoinVipPointOp {
    #[prost(uint32, tag = "1")]
    pub mcoin: u32,
    #[prost(uint32, tag = "2")]
    pub vip_point: u32,
    #[prost(int32, tag = "3")]
    pub platform_type: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExchangeMcoinOp {
    #[prost(uint32, tag = "1")]
    pub num: u32,
    #[prost(int32, tag = "2")]
    pub exchange_type: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupBinOp {
    #[prost(enumeration = "GroupBinOperation", tag = "1")]
    pub op_type: i32,
    #[prost(uint32, tag = "2")]
    pub group_id: u32,
    #[prost(uint32, tag = "3")]
    pub config_id: u32,
    #[prost(bool, tag = "4")]
    pub is_add: bool,
    #[prost(uint32, tag = "5")]
    pub state: u32,
    #[prost(bool, tag = "6")]
    pub is_create: bool,
    #[prost(string, tag = "7")]
    pub trigger_name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "8")]
    pub trigger_count: u32,
    #[prost(string, tag = "9")]
    pub variable_name: ::prost::alloc::string::String,
    #[prost(int32, tag = "10")]
    pub variable_value: i32,
    #[prost(uint32, tag = "11")]
    pub target_suite: u32,
    #[prost(uint32, tag = "12")]
    pub scene_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelOneOffOp {
    #[prost(uint32, tag = "1")]
    pub group_id: u32,
    #[prost(uint32, tag = "2")]
    pub config_id: u32,
    #[prost(bool, tag = "3")]
    pub is_monster: bool,
    #[prost(uint32, tag = "4")]
    pub scene_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FinishRoutineOp {
    #[prost(uint32, tag = "1")]
    pub routine_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FinishDailyTaskUnloadGroupOp {
    #[prost(uint32, tag = "1")]
    pub daily_task_id: u32,
    #[prost(uint32, tag = "2")]
    pub daily_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RefreshBlossomCircleCampOp {
    #[prost(uint32, tag = "1")]
    pub refresh_id: u32,
    #[prost(uint32, tag = "2")]
    pub circle_camp_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlessingActivityGivePicOp {
    #[prost(uint32, tag = "1")]
    pub source_uid: u32,
    #[prost(uint32, tag = "2")]
    pub target_uid: u32,
    #[prost(uint32, tag = "3")]
    pub pic_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExpeditionActivityAssistOp {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "2")]
    pub assist_time: u32,
    #[prost(uint32, tag = "3")]
    pub target_uid: u32,
    #[prost(string, tag = "4")]
    pub target_nick_name: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub online_id: ::prost::alloc::string::String,
    #[prost(uint32, tag = "6")]
    pub assist_uid: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RecoverWorldLevelOp {}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddRegionSearchProgressOp {
    #[prost(uint32, tag = "1")]
    pub region_id: u32,
    #[prost(uint32, tag = "2")]
    pub add_recycle: u32,
    #[prost(uint32, tag = "3")]
    pub add_progress: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetMatchPunishTimesOp {
    #[prost(uint32, tag = "1")]
    pub match_id: u32,
    #[prost(uint32, tag = "2")]
    pub punish_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetChannellerSlabCampGroupOp {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(uint32, tag = "2")]
    pub round_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ForceAcceptQuestOp {
    #[prost(uint32, tag = "1")]
    pub quest_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetMainCoopConfidenceOp {
    #[prost(uint32, tag = "1")]
    pub confidence: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddCoopPointSavePointListOp {
    #[prost(uint32, tag = "1")]
    pub coop_point_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub save_point_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetClimateAreaTypeOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub climate_area_id: u32,
    #[prost(uint32, tag = "3")]
    pub climate_type: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcSceneTagOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub scene_tag_id: u32,
    #[prost(enumeration = "SceneTagOpType", tag = "3")]
    pub op_type: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetFinishedParentQuestChildStateOp {
    #[prost(uint32, tag = "1")]
    pub quest_id: u32,
    #[prost(uint32, tag = "2")]
    pub state: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeMapAreaInfoOp {
    #[prost(uint32, tag = "1")]
    pub map_area_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetLevel1AreaExplorePointOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub level1_area_id: u32,
    #[prost(uint32, tag = "3")]
    pub explore_point: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetCodexOpenOrCloseOp {
    #[prost(uint32, tag = "1")]
    pub codex_type: u32,
    #[prost(uint32, tag = "2")]
    pub codex_id: u32,
    #[prost(bool, tag = "3")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupLinkOp {
    #[prost(enumeration = "GroupLinkOpType", tag = "1")]
    pub op_type: i32,
    #[prost(uint32, tag = "2")]
    pub group_bundle_id: u32,
    #[prost(uint32, tag = "3")]
    pub activity_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetWatcherCompRecordValueOp {
    #[prost(
        oneof = "set_watcher_comp_record_value_op::OptionalMaxCriticalDamage",
        tags = "1"
    )]
    pub optional_max_critical_damage: ::core::option::Option<
        set_watcher_comp_record_value_op::OptionalMaxCriticalDamage,
    >,
    #[prost(
        oneof = "set_watcher_comp_record_value_op::OptionalMaxFlyMapDistance",
        tags = "2"
    )]
    pub optional_max_fly_map_distance: ::core::option::Option<
        set_watcher_comp_record_value_op::OptionalMaxFlyMapDistance,
    >,
    #[prost(oneof = "set_watcher_comp_record_value_op::OptionalMaxFlyTime", tags = "3")]
    pub optional_max_fly_time: ::core::option::Option<
        set_watcher_comp_record_value_op::OptionalMaxFlyTime,
    >,
    #[prost(oneof = "set_watcher_comp_record_value_op::OptionalMaxDashTime", tags = "4")]
    pub optional_max_dash_time: ::core::option::Option<
        set_watcher_comp_record_value_op::OptionalMaxDashTime,
    >,
}
/// Nested message and enum types in `SetWatcherCompRecordValueOp`.
pub mod set_watcher_comp_record_value_op {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum OptionalMaxCriticalDamage {
        #[prost(float, tag = "1")]
        MaxCriticalDamage(f32),
    }
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum OptionalMaxFlyMapDistance {
        #[prost(float, tag = "2")]
        MaxFlyMapDistance(f32),
    }
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum OptionalMaxFlyTime {
        #[prost(float, tag = "3")]
        MaxFlyTime(f32),
    }
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum OptionalMaxDashTime {
        #[prost(float, tag = "4")]
        MaxDashTime(f32),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddFriendOp {
    #[prost(uint32, tag = "1")]
    pub target_uid: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelFriendOp {
    #[prost(uint32, tag = "1")]
    pub target_uid: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddFriendAskOp {
    #[prost(uint32, tag = "1")]
    pub target_uid: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelFriendAskOp {
    #[prost(uint32, tag = "1")]
    pub target_uid: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BanCustomDungeonOp {
    #[prost(uint32, tag = "1")]
    pub ban_expire_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RemoveInvalidMapMarksOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(message, optional, tag = "2")]
    pub x_range: ::core::option::Option<FloatPairBin>,
    #[prost(message, optional, tag = "3")]
    pub z_range: ::core::option::Option<FloatPairBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RecalculateAreaExplorePointOp {
    #[prost(uint32, tag = "1")]
    pub area_id: u32,
    #[prost(uint32, tag = "2")]
    pub old_exp: u32,
    #[prost(uint32, tag = "3")]
    pub recalc_exp: u32,
    #[prost(uint32, tag = "4")]
    pub new_exp: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NicknameAuditResultOp {
    #[prost(string, tag = "1")]
    pub nickname: ::prost::alloc::string::String,
    #[prost(bool, tag = "2")]
    pub is_ok: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SignatureAuditResultOp {
    #[prost(string, tag = "1")]
    pub signature: ::prost::alloc::string::String,
    #[prost(bool, tag = "2")]
    pub is_ok: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PassHomeSceneArrangementAuditOp {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(uint32, tag = "2")]
    pub scene_id: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FailHomeSceneArrangementAuditOp {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(uint32, tag = "2")]
    pub scene_id: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FailHomeModulesArrangementAuditOp {
    #[prost(bool, tag = "1")]
    pub is_all_module: bool,
    #[prost(uint32, repeated, tag = "2")]
    pub module_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BanUgcPublishOp {
    #[prost(uint32, tag = "1")]
    pub ban_publish_expire_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetPlayerPersistentDungeonOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetPlayerPosInPersistentDungeonOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LevelTagChangeOp {
    #[prost(uint32, tag = "1")]
    pub level_tag_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetPlayerWayPointInPersistentDungeonOp {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub way_point_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExhibitionSetOp {
    #[prost(uint32, tag = "1")]
    pub exhibition_id: u32,
    #[prost(oneof = "exhibition_set_op::OptionalAccumulableVal", tags = "2")]
    pub optional_accumulable_val: ::core::option::Option<
        exhibition_set_op::OptionalAccumulableVal,
    >,
    #[prost(oneof = "exhibition_set_op::OptionalReplaceableVal", tags = "3")]
    pub optional_replaceable_val: ::core::option::Option<
        exhibition_set_op::OptionalReplaceableVal,
    >,
}
/// Nested message and enum types in `ExhibitionSetOp`.
pub mod exhibition_set_op {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum OptionalAccumulableVal {
        #[prost(uint32, tag = "2")]
        AccumulableVal(u32),
    }
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum OptionalReplaceableVal {
        #[prost(uint32, tag = "3")]
        ReplaceableVal(u32),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetAvatarExtraPropOp {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "2")]
    pub extra_prop_id: u32,
    #[prost(uint32, tag = "3")]
    pub extra_prop_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddItemWithLimitOp {
    #[prost(message, optional, tag = "1")]
    pub add_item_op: ::core::option::Option<AddItemOp>,
    #[prost(uint32, tag = "2")]
    pub max_item_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetGadgetChainLevelOp {
    #[prost(uint32, tag = "1")]
    pub gadgetchain_id: u32,
    #[prost(uint32, tag = "2")]
    pub gadgetchain_level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetDailyTaskVarOp {
    #[prost(uint32, tag = "1")]
    pub task_id: u32,
    #[prost(uint32, tag = "2")]
    pub index: u32,
    #[prost(int32, tag = "3")]
    pub value: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineMsgBin {
    #[prost(fixed32, tag = "1")]
    pub enque_time: u32,
    #[prost(string, tag = "2")]
    pub ticket: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub index: u32,
    #[prost(
        oneof = "offline_msg_bin::Detail",
        tags = "4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28001, 28002, 28003, 28004, 30000, 30001, 30002, 31001, 32001"
    )]
    pub detail: ::core::option::Option<offline_msg_bin::Detail>,
}
/// Nested message and enum types in `OfflineMsgBin`.
pub mod offline_msg_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "4")]
        DelItemOp(super::DelItemOp),
        #[prost(message, tag = "5")]
        GotoOp(super::PlayerGotoOp),
        #[prost(message, tag = "6")]
        ResetParentQuestOp(super::ResetParentQuestOp),
        #[prost(message, tag = "7")]
        RefreshGroupOp(super::RefreshGroupOp),
        #[prost(message, tag = "8")]
        SetScenePointLockStatusOp(super::SetScenePointLockStatusOp),
        #[prost(message, tag = "9")]
        SetNickNameOp(super::SetPlayerNickNameOp),
        #[prost(message, tag = "10")]
        RefreshShopOp(super::RefreshShopOp),
        #[prost(message, tag = "11")]
        UnlockTalentOp(super::UnlockTalentOp),
        #[prost(message, tag = "12")]
        TakeOffEquipOp(super::TakeOffEquipOp),
        #[prost(message, tag = "13")]
        DelMailOp(super::DelMailOp),
        #[prost(message, tag = "14")]
        FinishDailyTaskOp(super::FinishDailyTaskOp),
        #[prost(message, tag = "15")]
        UnlockAreaOp(super::UnlockAreaOp),
        #[prost(message, tag = "16")]
        DelItemNegativeOp(super::DelItemNegativeOp),
        #[prost(message, tag = "17")]
        DelEquipOp(super::DelEquipOp),
        #[prost(message, tag = "18")]
        AddItemOp(super::AddItemOp),
        #[prost(message, tag = "19")]
        ModifyBornPosOp(super::ModifyBornPosOp),
        #[prost(message, tag = "20")]
        SubCoinNegativeOp(super::SubCoinNegativeOp),
        #[prost(message, tag = "21")]
        SetQuestContentProgressOp(super::SetQuestContentProgressOp),
        #[prost(message, tag = "22")]
        FinishOrderOp(super::FinishOrderOp),
        #[prost(message, tag = "23")]
        AddOrModifyWatcherOp(super::AddOrModifyWatcherOp),
        #[prost(message, tag = "24")]
        DelWatcherOp(super::DelWatcherOp),
        #[prost(message, tag = "25")]
        SetSignatureOp(super::SetSignatureOp),
        #[prost(message, tag = "26")]
        AddOrSubResinOp(super::AddOrSubResinOp),
        #[prost(message, tag = "27")]
        SetQuestGlobalVarValueOp(super::SetQuestGlobalVarValueOp),
        #[prost(message, tag = "28")]
        AddMcoinOp(super::AddMcoinVipPointOp),
        #[prost(message, tag = "29")]
        GroupBinOp(super::GroupBinOp),
        #[prost(message, tag = "30")]
        DelOneOffOp(super::DelOneOffOp),
        #[prost(message, tag = "31")]
        FinishRoutineOp(super::FinishRoutineOp),
        #[prost(message, tag = "32")]
        FinishDailyTaskGroupOp(super::FinishDailyTaskUnloadGroupOp),
        #[prost(message, tag = "33")]
        RefreshBlossomCircleCampOp(super::RefreshBlossomCircleCampOp),
        #[prost(message, tag = "34")]
        BlessingGivePicOp(super::BlessingActivityGivePicOp),
        #[prost(message, tag = "35")]
        ExpeditionAssistOp(super::ExpeditionActivityAssistOp),
        #[prost(message, tag = "36")]
        RecoverWorldLevelOp(super::RecoverWorldLevelOp),
        #[prost(message, tag = "37")]
        ForceAcceptQuestOp(super::ForceAcceptQuestOp),
        #[prost(message, tag = "38")]
        SetMainCoopConfidenceOp(super::SetMainCoopConfidenceOp),
        #[prost(message, tag = "39")]
        AddCoopPointSavePointListOp(super::AddCoopPointSavePointListOp),
        #[prost(message, tag = "40")]
        AddRegionSearchProgressOp(super::AddRegionSearchProgressOp),
        #[prost(message, tag = "41")]
        SetMatchPunishTimesOp(super::SetMatchPunishTimesOp),
        #[prost(message, tag = "42")]
        ResetChannellerSlabCampGroupOp(super::ResetChannellerSlabCampGroupOp),
        #[prost(message, tag = "43")]
        ProcSceneTagOp(super::ProcSceneTagOp),
        #[prost(message, tag = "44")]
        SetClimateAreaTypeOp(super::SetClimateAreaTypeOp),
        #[prost(message, tag = "45")]
        ExchangeMcoinOp(super::ExchangeMcoinOp),
        #[prost(message, tag = "46")]
        SetFinishedParentQuestChildStateOp(super::SetFinishedParentQuestChildStateOp),
        #[prost(message, tag = "47")]
        SetLevel1AreaExplorePointOp(super::SetLevel1AreaExplorePointOp),
        #[prost(message, tag = "48")]
        SetCodexOpenOrCloseOp(super::SetCodexOpenOrCloseOp),
        #[prost(message, tag = "49")]
        ChangeMapAreaInfoOp(super::ChangeMapAreaInfoOp),
        #[prost(message, tag = "50")]
        GroupLinkOp(super::GroupLinkOp),
        #[prost(message, tag = "51")]
        SetWatcherCompRecordValueOp(super::SetWatcherCompRecordValueOp),
        #[prost(message, tag = "52")]
        AddFriendOp(super::AddFriendOp),
        #[prost(message, tag = "53")]
        DelFriendOp(super::DelFriendOp),
        #[prost(message, tag = "54")]
        AddFriendAskOp(super::AddFriendAskOp),
        #[prost(message, tag = "55")]
        DelFriendAskOp(super::DelFriendAskOp),
        #[prost(message, tag = "56")]
        BanCustomDungeonOp(super::BanCustomDungeonOp),
        #[prost(message, tag = "57")]
        RemoveInvalidMapMarksOp(super::RemoveInvalidMapMarksOp),
        #[prost(message, tag = "58")]
        RecalculateAreaExplorePointOp(super::RecalculateAreaExplorePointOp),
        #[prost(message, tag = "59")]
        NicknameAuditResultOp(super::NicknameAuditResultOp),
        #[prost(message, tag = "60")]
        SignatureAuditResultOp(super::SignatureAuditResultOp),
        #[prost(message, tag = "61")]
        PassHomeSceneArrangementAuditOp(super::PassHomeSceneArrangementAuditOp),
        #[prost(message, tag = "62")]
        FailHomeSceneArrangementAuditOp(super::FailHomeSceneArrangementAuditOp),
        #[prost(message, tag = "63")]
        FailHomeModulesArrangementAuditOp(super::FailHomeModulesArrangementAuditOp),
        #[prost(message, tag = "64")]
        BanUgcPublishOp(super::BanUgcPublishOp),
        #[prost(message, tag = "28001")]
        ResetPlayerPersistentDungeonOp(super::ResetPlayerPersistentDungeonOp),
        #[prost(message, tag = "28002")]
        ResetPlayerPosInPersistentDungeonOp(super::ResetPlayerPosInPersistentDungeonOp),
        #[prost(message, tag = "28003")]
        LevelTagChangeOp(super::LevelTagChangeOp),
        #[prost(message, tag = "28004")]
        ResetPlayerWayPointInPersistentDungeonOp(
            super::ResetPlayerWayPointInPersistentDungeonOp,
        ),
        #[prost(message, tag = "30000")]
        ExhibitionSetOp(super::ExhibitionSetOp),
        #[prost(message, tag = "30001")]
        SetAvatarExtraPropOp(super::SetAvatarExtraPropOp),
        #[prost(message, tag = "30002")]
        AddItemWithLimitOp(super::AddItemWithLimitOp),
        #[prost(message, tag = "31001")]
        SetGadgetChainLevelOp(super::SetGadgetChainLevelOp),
        #[prost(message, tag = "32001")]
        SetDailyTaskVarOp(super::SetDailyTaskVarOp),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeTestOp {
    #[prost(uint32, tag = "1")]
    pub val: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeRestoreDefaultsArrangementOp {
    #[prost(bool, tag = "1")]
    pub is_all_module: bool,
    #[prost(uint32, repeated, tag = "2")]
    pub module_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeRestoreDefaultsSceneArrangementOp {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(uint32, tag = "2")]
    pub scene_id: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeOfflineMsgBin {
    #[prost(fixed32, tag = "1")]
    pub enque_time: u32,
    #[prost(string, tag = "2")]
    pub ticket: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub index: u32,
    #[prost(oneof = "home_offline_msg_bin::Detail", tags = "101, 102, 103")]
    pub detail: ::core::option::Option<home_offline_msg_bin::Detail>,
}
/// Nested message and enum types in `HomeOfflineMsgBin`.
pub mod home_offline_msg_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "101")]
        TestOp(super::HomeTestOp),
        #[prost(message, tag = "102")]
        RestoreDefaultsArrangementOp(super::HomeRestoreDefaultsArrangementOp),
        #[prost(message, tag = "103")]
        RestoreDefaultsSceneArrangementOp(super::HomeRestoreDefaultsSceneArrangementOp),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupVariableBin {
    #[prost(int32, tag = "2")]
    pub value: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupVariableConfigIdBin {
    #[prost(uint32, tag = "1")]
    pub config_id: u32,
    #[prost(int32, tag = "2")]
    pub value: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InteractGadget {
    #[prost(uint32, tag = "1")]
    pub group_id: u32,
    #[prost(uint32, tag = "2")]
    pub config_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AreaBin {
    #[prost(uint32, tag = "1")]
    pub explore_num: u32,
    #[prost(uint32, tag = "2")]
    pub explore_point: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub unlock_point_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "4")]
    pub interact_gadget_list: ::prost::alloc::vec::Vec<InteractGadget>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CityBin {
    #[prost(uint32, tag = "1")]
    pub level: u32,
    #[prost(uint32, tag = "2")]
    pub crystal_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScenePlayerLocationBin {
    #[prost(message, optional, tag = "1")]
    pub cur_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "2")]
    pub cur_rot: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "3")]
    pub last_valid_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "4")]
    pub last_valid_rot: ::core::option::Option<VectorBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EnvZoneInfoBin {
    #[prost(fixed32, tag = "1")]
    pub last_refresh_time: u32,
    #[prost(uint32, tag = "2")]
    pub animal_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneEnvAnimalCompBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub zone_info_map: ::std::collections::HashMap<u32, EnvZoneInfoBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneWeatherInfoBin {
    #[prost(uint32, tag = "1")]
    pub height_area_id: u32,
    #[prost(uint32, tag = "2")]
    pub climate_type: u32,
    #[prost(uint64, tag = "3")]
    pub next_climate_time: u64,
    #[prost(uint32, repeated, tag = "4")]
    pub forcast_climate_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneClimateAreaInfoBin {
    #[prost(uint32, tag = "1")]
    pub climate_area_id: u32,
    #[prost(uint32, tag = "2")]
    pub json_climate_type: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneAllWeatherInfoBin {
    #[prost(message, repeated, tag = "1")]
    pub weather_info_list: ::prost::alloc::vec::Vec<SceneWeatherInfoBin>,
    #[prost(uint32, repeated, tag = "2")]
    pub closed_weather_area_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub climate_area_info_list: ::prost::alloc::vec::Vec<SceneClimateAreaInfoBin>,
    #[prost(uint32, repeated, tag = "4")]
    pub closed_climate_area_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BackupGroupBin {
    #[prost(uint32, repeated, tag = "1")]
    pub del_monster_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "string, message", tag = "2")]
    pub variable_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        GroupVariableBin,
    >,
    #[prost(uint32, tag = "3")]
    pub revise_level: u32,
    #[prost(fixed32, tag = "4")]
    pub last_refresh_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneBlockGroupCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub dead_group_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, message", tag = "2")]
    pub backup_group_map: ::std::collections::HashMap<u32, BackupGroupBin>,
    #[prost(bool, tag = "3")]
    pub is_scene_group_all_dead: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneAreaCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub unlocked_area_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, message", tag = "2")]
    pub area_map: ::std::collections::HashMap<u32, AreaBin>,
    #[prost(map = "uint32, message", tag = "3")]
    pub city_map: ::std::collections::HashMap<u32, CityBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneEncounterCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub parent_quest_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivitySceneBin {
    #[prost(bool, tag = "1")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneVehicleBin {
    #[prost(uint32, tag = "1")]
    pub config_id: u32,
    #[prost(message, optional, tag = "2")]
    pub cur_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "3")]
    pub cur_rot: ::core::option::Option<VectorBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneTagOp {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(enumeration = "SceneTagOpType", tag = "2")]
    pub op_type: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WayPoint {
    #[prost(uint32, tag = "1")]
    pub point_id: u32,
    #[prost(uint32, tag = "2")]
    pub activate_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DungeonSceneBin {
    #[prost(message, repeated, tag = "1")]
    pub activated_way_point_list: ::prost::alloc::vec::Vec<WayPoint>,
    #[prost(message, repeated, tag = "2")]
    pub activated_slip_revive_list: ::prost::alloc::vec::Vec<WayPoint>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneBin {
    #[prost(uint32, repeated, tag = "1")]
    pub unlocked_point_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "2")]
    pub unlocked_force_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "3")]
    pub locked_point_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "4")]
    pub all_weather_info: ::core::option::Option<SceneAllWeatherInfoBin>,
    #[prost(message, optional, tag = "5")]
    pub owner_player_location: ::core::option::Option<ScenePlayerLocationBin>,
    #[prost(message, optional, tag = "6")]
    pub block_group_bin: ::core::option::Option<SceneBlockGroupCompBin>,
    #[prost(message, optional, tag = "7")]
    pub env_animal_bin: ::core::option::Option<SceneEnvAnimalCompBin>,
    #[prost(message, optional, tag = "8")]
    pub area_comp_bin: ::core::option::Option<SceneAreaCompBin>,
    #[prost(message, optional, tag = "9")]
    pub encounter_comp_bin: ::core::option::Option<SceneEncounterCompBin>,
    #[prost(uint64, tag = "10")]
    pub last_spring_recover_time_ms: u64,
    #[prost(uint32, repeated, tag = "11")]
    pub group_unlimit_point_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "12")]
    pub interacted_to_be_explored_point_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(float, tag = "13")]
    pub cur_spring_volume: f32,
    #[prost(bool, tag = "14")]
    pub is_locked: bool,
    #[prost(message, repeated, tag = "15")]
    pub vehicle_list: ::prost::alloc::vec::Vec<SceneVehicleBin>,
    #[prost(message, repeated, tag = "16")]
    pub scene_tag_op_list: ::prost::alloc::vec::Vec<SceneTagOp>,
    #[prost(uint32, repeated, tag = "17")]
    pub hide_point_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "18")]
    pub unhide_point_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(oneof = "scene_bin::Detail", tags = "101, 102")]
    pub detail: ::core::option::Option<scene_bin::Detail>,
}
/// Nested message and enum types in `SceneBin`.
pub mod scene_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "101")]
        ActivitySceneBin(super::ActivitySceneBin),
        #[prost(message, tag = "102")]
        DungeonSceneBin(super::DungeonSceneBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineOpTestOp {
    #[prost(string, tag = "1")]
    pub msg: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineOpFurnitureMakeHelp {
    #[prost(string, tag = "1")]
    pub player_name: ::prost::alloc::string::String,
    #[prost(fixed32, tag = "2")]
    pub time: u32,
    #[prost(uint32, tag = "3")]
    pub uid: u32,
    #[prost(uint32, tag = "4")]
    pub icon: u32,
    #[prost(message, optional, tag = "5")]
    pub profile_picture_bin: ::core::option::Option<ProfilePictureBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineOpPlantFlowerActivityGiveFlower {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub flower_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, tag = "3")]
    pub schedule_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineOpWinterCampActivityGiveItem {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(message, repeated, tag = "2")]
    pub item_bin_list: ::prost::alloc::vec::Vec<ItemParamBin>,
    #[prost(uint32, tag = "3")]
    pub schedule_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineOpActivityGiveGift {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub gift_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, tag = "3")]
    pub schedule_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineOpVintageActivityDividend {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(uint32, tag = "2")]
    pub schedule_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineOpBin {
    #[prost(oneof = "offline_op_bin::Detail", tags = "1, 2, 3, 4, 5, 6")]
    pub detail: ::core::option::Option<offline_op_bin::Detail>,
}
/// Nested message and enum types in `OfflineOpBin`.
pub mod offline_op_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "1")]
        TestOp(super::OfflineOpTestOp),
        #[prost(message, tag = "2")]
        FurnitureMakeHelpOp(super::OfflineOpFurnitureMakeHelp),
        #[prost(message, tag = "3")]
        PlantFlowerGiveFlowerOp(super::OfflineOpPlantFlowerActivityGiveFlower),
        #[prost(message, tag = "4")]
        WinterCampGiveItemOp(super::OfflineOpWinterCampActivityGiveItem),
        #[prost(message, tag = "5")]
        ActivityGiveGiftOp(super::OfflineOpActivityGiveGift),
        #[prost(message, tag = "6")]
        VintageDividendOp(super::OfflineOpVintageActivityDividend),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FurnitureMakeSlotsBin {
    #[prost(uint32, tag = "1")]
    pub make_id: u32,
    #[prost(fixed32, tag = "2")]
    pub begin_time: u32,
    #[prost(uint32, tag = "3")]
    pub dur_time: u32,
    #[prost(fixed32, tag = "4")]
    pub accelerate_time: u32,
    #[prost(uint32, tag = "6")]
    pub accelerate_count: u32,
    #[prost(uint32, tag = "7")]
    pub avatar_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProfilePictureBin {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "2")]
    pub costume_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomDungeonSettingBin {
    #[prost(bool, tag = "1")]
    pub is_arrive_finish: bool,
    #[prost(uint32, tag = "2")]
    pub coin_limit: u32,
    #[prost(uint32, tag = "3")]
    pub time_limit: u32,
    #[prost(bool, tag = "4")]
    pub is_forbid_skill: bool,
    #[prost(uint32, repeated, tag = "5")]
    pub open_room_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "6")]
    pub start_room_id: u32,
    #[prost(uint32, tag = "7")]
    pub life_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomDungeonAbstractBin {
    #[prost(uint32, tag = "1")]
    pub finish_room_id: u32,
    #[prost(uint32, tag = "2")]
    pub total_coin_num: u32,
    #[prost(uint32, tag = "3")]
    pub first_publish_time: u32,
    #[prost(uint32, tag = "4")]
    pub last_publish_time: u32,
    #[prost(map = "uint32, uint32", tag = "5")]
    pub brick_statistics_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeBasicCompBin {
    #[prost(uint64, tag = "1")]
    pub trans_no_count: u64,
    #[prost(uint64, tag = "4")]
    pub exp: u64,
    #[prost(uint32, tag = "5")]
    pub level: u32,
    #[prost(string, tag = "6")]
    pub owner_nick_name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "7")]
    pub total_home_time: u32,
    #[prost(uint64, tag = "8")]
    pub home_time_ms: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeFurnitureBin {
    #[prost(uint32, tag = "1")]
    pub furniture_id: u32,
    #[prost(message, optional, tag = "3")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "4")]
    pub spawn_rot: ::core::option::Option<VectorBin>,
    #[prost(int32, tag = "7")]
    pub parent_furniture_index: i32,
    #[prost(uint32, tag = "8")]
    pub guid: u32,
    #[prost(uint32, tag = "9")]
    pub version: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeFurnitureSuiteBin {
    #[prost(uint32, tag = "1")]
    pub suite_id: u32,
    #[prost(message, optional, tag = "2")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(int32, repeated, tag = "3")]
    pub included_furniture_index_list: ::prost::alloc::vec::Vec<i32>,
    #[prost(uint32, tag = "4")]
    pub guid: u32,
    #[prost(bool, tag = "5")]
    pub is_allow_summon: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeNpcBin {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(message, optional, tag = "2")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "3")]
    pub spawn_rot: ::core::option::Option<VectorBin>,
    #[prost(uint32, tag = "4")]
    pub costume_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeAnimalBin {
    #[prost(uint32, tag = "1")]
    pub furniture_id: u32,
    #[prost(message, optional, tag = "2")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "3")]
    pub spawn_rot: ::core::option::Option<VectorBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeBlockSubFieldBin {
    #[prost(message, optional, tag = "1")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "2")]
    pub spawn_rot: ::core::option::Option<VectorBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeBlockFieldBin {
    #[prost(uint32, tag = "1")]
    pub guid: u32,
    #[prost(uint32, tag = "2")]
    pub furniture_id: u32,
    #[prost(message, optional, tag = "3")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "4")]
    pub spawn_rot: ::core::option::Option<VectorBin>,
    #[prost(message, repeated, tag = "5")]
    pub sub_field_list: ::prost::alloc::vec::Vec<HomeBlockSubFieldBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeFurnitureGroupBin {
    #[prost(uint32, tag = "1")]
    pub group_furniture_index: u32,
    #[prost(message, repeated, tag = "2")]
    pub virtual_furniure_list: ::prost::alloc::vec::Vec<HomeFurnitureBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeFurnitureCustomSuiteBin {
    #[prost(message, optional, tag = "1")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(int32, repeated, tag = "2")]
    pub included_furniture_index_list: ::prost::alloc::vec::Vec<i32>,
    #[prost(uint32, tag = "3")]
    pub guid: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeBlockBin {
    #[prost(uint32, tag = "1")]
    pub block_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub persistent_furniture_list: ::prost::alloc::vec::Vec<HomeFurnitureBin>,
    #[prost(message, repeated, tag = "3")]
    pub deploy_furniure_list: ::prost::alloc::vec::Vec<HomeFurnitureBin>,
    #[prost(message, repeated, tag = "4")]
    pub deploy_npc_list: ::prost::alloc::vec::Vec<HomeNpcBin>,
    #[prost(message, repeated, tag = "5")]
    pub furniture_suite_list: ::prost::alloc::vec::Vec<HomeFurnitureSuiteBin>,
    #[prost(message, repeated, tag = "6")]
    pub deploy_animal_list: ::prost::alloc::vec::Vec<HomeAnimalBin>,
    #[prost(bool, tag = "7")]
    pub is_unlocked: bool,
    #[prost(message, repeated, tag = "8")]
    pub deploy_field_list: ::prost::alloc::vec::Vec<HomeBlockFieldBin>,
    #[prost(message, repeated, tag = "9")]
    pub deploy_furniture_group_list: ::prost::alloc::vec::Vec<HomeFurnitureGroupBin>,
    #[prost(message, repeated, tag = "10")]
    pub furniture_custom_suite_list: ::prost::alloc::vec::Vec<
        HomeFurnitureCustomSuiteBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSceneBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(message, optional, tag = "2")]
    pub scene_bin: ::core::option::Option<SceneBin>,
    #[prost(message, repeated, tag = "3")]
    pub block_bin_list: ::prost::alloc::vec::Vec<HomeBlockBin>,
    #[prost(bool, tag = "4")]
    pub is_set_born_pos: bool,
    #[prost(message, optional, tag = "5")]
    pub born_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "6")]
    pub born_rot: ::core::option::Option<VectorBin>,
    #[prost(message, repeated, tag = "7")]
    pub door_list: ::prost::alloc::vec::Vec<HomeFurnitureBin>,
    #[prost(message, repeated, tag = "8")]
    pub stair_list: ::prost::alloc::vec::Vec<HomeFurnitureBin>,
    #[prost(message, optional, tag = "9")]
    pub main_house: ::core::option::Option<HomeFurnitureBin>,
    #[prost(message, optional, tag = "10")]
    pub djinn_pos: ::core::option::Option<VectorBin>,
    #[prost(uint32, tag = "12")]
    pub tmp_version: u32,
    #[prost(fixed32, tag = "13")]
    pub save_time: u32,
    #[prost(uint32, tag = "14")]
    pub bgm_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeModuleBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(uint32, tag = "2")]
    pub cur_room_scene_id: u32,
    #[prost(message, repeated, tag = "3")]
    pub scene_bin_list: ::prost::alloc::vec::Vec<HomeSceneBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSceneCompBin {
    #[prost(uint32, tag = "1")]
    pub cur_module_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub module_bin_list: ::prost::alloc::vec::Vec<HomeModuleBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeOfflineMsgExeBin {
    #[prost(message, optional, tag = "1")]
    pub msg: ::core::option::Option<HomeOfflineMsgBin>,
    #[prost(uint32, tag = "2")]
    pub exe_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeOfflineMsgCompBin {
    #[prost(uint32, tag = "1")]
    pub index: u32,
    #[prost(message, repeated, tag = "2")]
    pub next_offline_msg_list: ::prost::alloc::vec::Vec<HomeOfflineMsgExeBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeFurnitureMakeBin {
    #[prost(message, repeated, tag = "1")]
    pub furniture_make_slots_bin_list: ::prost::alloc::vec::Vec<FurnitureMakeSlotsBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeLimitedShopPoolRecordBin {
    #[prost(uint32, tag = "1")]
    pub pool_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub goods_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeLimitedShopGoodsInfoBin {
    #[prost(uint32, tag = "1")]
    pub goods_id: u32,
    #[prost(uint32, tag = "2")]
    pub buy_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeLimitedShopNpcPosBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(uint32, tag = "4")]
    pub scene_id: u32,
    #[prost(uint32, tag = "5")]
    pub block_id: u32,
    #[prost(uint32, tag = "6")]
    pub index: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeLimitedShopBin {
    #[prost(uint32, tag = "1")]
    pub last_refresh_time: u32,
    #[prost(message, repeated, tag = "3")]
    pub pool_record_bin_list: ::prost::alloc::vec::Vec<HomeLimitedShopPoolRecordBin>,
    #[prost(message, repeated, tag = "4")]
    pub goods_info_bin_list: ::prost::alloc::vec::Vec<HomeLimitedShopGoodsInfoBin>,
    #[prost(message, repeated, tag = "5")]
    pub npc_pos_bin_list: ::prost::alloc::vec::Vec<HomeLimitedShopNpcPosBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomePlantSubFieldBin {
    #[prost(uint32, tag = "1")]
    pub index: u32,
    #[prost(uint32, tag = "2")]
    pub seed_id: u32,
    #[prost(uint32, tag = "3")]
    pub grow_time: u32,
    #[prost(uint32, tag = "4")]
    pub last_update_time: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub gather_index_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "6")]
    pub home_gather_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomePlantFieldBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(uint32, tag = "2")]
    pub scene_id: u32,
    #[prost(uint32, tag = "3")]
    pub guid: u32,
    #[prost(uint32, tag = "4")]
    pub furniture_id: u32,
    #[prost(message, repeated, tag = "5")]
    pub sub_field_bin_list: ::prost::alloc::vec::Vec<HomePlantSubFieldBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomePlantBin {
    #[prost(message, repeated, tag = "1")]
    pub field_bin_list: ::prost::alloc::vec::Vec<HomePlantFieldBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeFishpondFarmingBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub fishpond_guid: u32,
    #[prost(uint32, tag = "3")]
    pub furniture_id: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub fish_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeScenePointFishFarmingBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub local_entity_id: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub fish_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeModuleFishFarmingBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub fishpond_farming_bin_list: ::prost::alloc::vec::Vec<HomeFishpondFarmingBin>,
    #[prost(message, repeated, tag = "3")]
    pub scene_point_fish_farming_bin_list: ::prost::alloc::vec::Vec<
        HomeScenePointFishFarmingBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeFishFarmingBin {
    #[prost(message, repeated, tag = "1")]
    pub module_fish_farming_bin_list: ::prost::alloc::vec::Vec<HomeModuleFishFarmingBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeCustomFurnitureNodeInfoBin {
    #[prost(int32, tag = "1")]
    pub parent_index: i32,
    #[prost(uint32, tag = "2")]
    pub furniture_id: u32,
    #[prost(string, tag = "3")]
    pub slot_identifier: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeOneCustomFurnitureBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub guid: u32,
    #[prost(uint32, tag = "3")]
    pub furniture_id: u32,
    #[prost(message, repeated, tag = "4")]
    pub sub_furniture_list: ::prost::alloc::vec::Vec<HomeCustomFurnitureNodeInfoBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeModuleCustomFurnitureBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub custom_furniture_bin_list: ::prost::alloc::vec::Vec<HomeOneCustomFurnitureBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeCustomFurnitureBin {
    #[prost(message, repeated, tag = "1")]
    pub module_custom_furniture_bin_list: ::prost::alloc::vec::Vec<
        HomeModuleCustomFurnitureBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeOnePictureFrameBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(uint32, tag = "2")]
    pub guid: u32,
    #[prost(uint32, tag = "3")]
    pub furniture_id: u32,
    #[prost(uint32, tag = "4")]
    pub picture_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeModulePictureFrameBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub picture_frame_bin_list: ::prost::alloc::vec::Vec<HomeOnePictureFrameBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomePictureFrameBin {
    #[prost(message, repeated, tag = "1")]
    pub module_picture_frame_bin_list: ::prost::alloc::vec::Vec<
        HomeModulePictureFrameBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeGroupPlayerInfoBin {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(string, tag = "2")]
    pub nickname: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub player_level: u32,
    #[prost(message, optional, tag = "4")]
    pub profile_picture: ::core::option::Option<ProfilePictureBin>,
    #[prost(string, tag = "5")]
    pub online_id: ::prost::alloc::string::String,
    #[prost(string, tag = "6")]
    pub psn_id: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeRacingGalleryRecordBin {
    #[prost(uint32, tag = "1")]
    pub use_time: u32,
    #[prost(message, optional, tag = "2")]
    pub player_info: ::core::option::Option<HomeGroupPlayerInfoBin>,
    #[prost(uint32, tag = "3")]
    pub timestamp: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeRacingRecordBin {
    #[prost(message, repeated, tag = "1")]
    pub record_list: ::prost::alloc::vec::Vec<HomeRacingGalleryRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeBalloonGalleryRecordBin {
    #[prost(uint32, tag = "1")]
    pub score: u32,
    #[prost(uint32, tag = "2")]
    pub hit_count: u32,
    #[prost(message, optional, tag = "3")]
    pub player_info: ::core::option::Option<HomeGroupPlayerInfoBin>,
    #[prost(uint32, tag = "4")]
    pub timestamp: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeBalloonRecordBin {
    #[prost(message, repeated, tag = "1")]
    pub record_list: ::prost::alloc::vec::Vec<HomeBalloonGalleryRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeStakePlayRecordBin {
    #[prost(uint32, tag = "1")]
    pub timestamp: u32,
    #[prost(message, repeated, tag = "2")]
    pub engaged_player_info_list: ::prost::alloc::vec::Vec<HomeGroupPlayerInfoBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeStakeRecordBin {
    #[prost(message, repeated, tag = "1")]
    pub record_list: ::prost::alloc::vec::Vec<HomeStakePlayRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSeekFurniturePlayerScoreBin {
    #[prost(message, optional, tag = "1")]
    pub player_info: ::core::option::Option<HomeGroupPlayerInfoBin>,
    #[prost(uint32, tag = "2")]
    pub score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSeekFurnitureOneRecordBin {
    #[prost(uint32, tag = "1")]
    pub timestamp: u32,
    #[prost(message, repeated, tag = "2")]
    pub engaged_player_score_list: ::prost::alloc::vec::Vec<
        HomeSeekFurniturePlayerScoreBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSeekFurnitureAllRecordBin {
    #[prost(message, repeated, tag = "1")]
    pub record_list: ::prost::alloc::vec::Vec<HomeSeekFurnitureOneRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeGroupRecordBin {
    #[prost(oneof = "home_group_record_bin::Detail", tags = "11, 12, 13, 14")]
    pub detail: ::core::option::Option<home_group_record_bin::Detail>,
}
/// Nested message and enum types in `HomeGroupRecordBin`.
pub mod home_group_record_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "11")]
        RacingGalleryInfoBin(super::HomeRacingRecordBin),
        #[prost(message, tag = "12")]
        BalloonGalleryInfoBin(super::HomeBalloonRecordBin),
        #[prost(message, tag = "13")]
        StakePlayInfoBin(super::HomeStakeRecordBin),
        #[prost(message, tag = "14")]
        SeekFurniturePlayInfoBin(super::HomeSeekFurnitureAllRecordBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeGroupRecordCompBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub group_record_map_bin: ::std::collections::HashMap<u32, HomeGroupRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeBlueprintCompBin {
    #[prost(bool, tag = "1")]
    pub is_allow_friend_copy: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeDataBin {
    #[prost(message, optional, tag = "1")]
    pub basic_bin: ::core::option::Option<HomeBasicCompBin>,
    #[prost(message, optional, tag = "2")]
    pub scene_bin: ::core::option::Option<HomeSceneCompBin>,
    #[prost(message, optional, tag = "3")]
    pub offline_msg_bin: ::core::option::Option<HomeOfflineMsgCompBin>,
    #[prost(message, optional, tag = "4")]
    pub furniture_make_bin: ::core::option::Option<HomeFurnitureMakeBin>,
    #[prost(message, optional, tag = "5")]
    pub limited_shop_bin: ::core::option::Option<HomeLimitedShopBin>,
    #[prost(message, optional, tag = "6")]
    pub plant_bin: ::core::option::Option<HomePlantBin>,
    #[prost(message, optional, tag = "7")]
    pub fish_farming_bin: ::core::option::Option<HomeFishFarmingBin>,
    #[prost(message, optional, tag = "8")]
    pub custom_furniture_bin: ::core::option::Option<HomeCustomFurnitureBin>,
    #[prost(message, optional, tag = "9")]
    pub picture_frame_bin: ::core::option::Option<HomePictureFrameBin>,
    #[prost(message, optional, tag = "10")]
    pub group_record_bin: ::core::option::Option<HomeGroupRecordCompBin>,
    #[prost(message, optional, tag = "11")]
    pub blueprint_bin: ::core::option::Option<HomeBlueprintCompBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeData {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(uint32, tag = "2")]
    pub data_version: u32,
    #[prost(bytes = "vec", tag = "3")]
    pub bin_data: ::prost::alloc::vec::Vec<u8>,
    #[prost(int32, tag = "4")]
    pub block_end_time: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerBasicCompBin {
    #[prost(uint32, tag = "1")]
    pub level: u32,
    #[prost(uint32, tag = "2")]
    pub exp: u32,
    #[prost(string, tag = "3")]
    pub nickname: ::prost::alloc::string::String,
    #[prost(uint32, tag = "4")]
    pub total_game_time: u32,
    #[prost(uint64, tag = "5")]
    pub trans_no_count: u64,
    #[prost(bool, tag = "6")]
    pub is_weather_locked: bool,
    #[prost(bool, tag = "7")]
    pub is_game_time_locked: bool,
    #[prost(float, tag = "8")]
    pub persist_stamina_limit: f32,
    #[prost(float, tag = "9")]
    pub cur_persist_stamina: f32,
    #[prost(float, tag = "10")]
    pub cur_temporary_stamina: f32,
    #[prost(map = "uint32, uint32", tag = "11")]
    pub open_state_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint64, tag = "12")]
    pub player_time_ms: u64,
    #[prost(fixed32, tag = "13")]
    pub last_login_time: u32,
    #[prost(fixed32, tag = "14")]
    pub register_time: u32,
    #[prost(uint32, tag = "15")]
    pub total_login_days: u32,
    #[prost(uint32, tag = "16")]
    pub update_login_days_time: u32,
    #[prost(uint32, repeated, tag = "17")]
    pub reward_taken_level_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "18")]
    pub language_type: u32,
    #[prost(string, tag = "19")]
    pub client_app_version: ::prost::alloc::string::String,
    #[prost(string, tag = "20")]
    pub client_device_info: ::prost::alloc::string::String,
    #[prost(string, tag = "21")]
    pub client_system_version: ::prost::alloc::string::String,
    #[prost(bool, tag = "22")]
    pub is_guest: bool,
    #[prost(uint32, tag = "23")]
    pub online_time: u32,
    #[prost(bool, tag = "24")]
    pub is_proficient_player: bool,
    #[prost(uint32, tag = "26")]
    pub set_language_tag: u32,
    #[prost(uint32, tag = "27")]
    pub head_image_avatar_id: u32,
    #[prost(uint32, tag = "28")]
    pub guid_seq_id: u32,
    #[prost(bool, tag = "29")]
    pub is_rebate_mail_sent: bool,
    #[prost(bool, tag = "30")]
    pub is_rebate_mail_received: bool,
    #[prost(string, tag = "31")]
    pub register_cps: ::prost::alloc::string::String,
    #[prost(uint32, tag = "32")]
    pub cur_json_climate_type: u32,
    #[prost(float, tag = "33")]
    pub cur_climate_meter: f32,
    #[prost(fixed32, tag = "34")]
    pub last_logout_time: u32,
    #[prost(uint32, tag = "35")]
    pub data_version: u32,
    #[prost(fixed32, tag = "36")]
    pub last_daily_refresh_time: u32,
    #[prost(bool, tag = "37")]
    pub is_auto_unlock_specific_equip: bool,
    #[prost(uint32, tag = "38")]
    pub profile_picture_costume_id: u32,
    #[prost(string, tag = "39")]
    pub online_id: ::prost::alloc::string::String,
    #[prost(string, tag = "40")]
    pub psn_id: ::prost::alloc::string::String,
    #[prost(uint32, tag = "41")]
    pub last_login_platform: u32,
    #[prost(double, tag = "42")]
    pub pivot_client_time: f64,
    #[prost(double, tag = "43")]
    pub pivot_unix_time: f64,
    #[prost(double, tag = "44")]
    pub client_total_tick_time: f64,
    #[prost(uint64, tag = "45")]
    pub player_stat_id: u64,
    #[prost(message, optional, tag = "46")]
    pub nickname_audit_bin: ::core::option::Option<ContentAuditBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarSkillBin {
    #[prost(uint32, tag = "1")]
    pub pass_cd_time: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub full_cd_time_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarBuffBin {
    #[prost(uint32, tag = "1")]
    pub left_time: u32,
    #[prost(uint32, tag = "2")]
    pub buff_uid: u32,
    #[prost(uint32, tag = "3")]
    pub buff_type: u32,
    #[prost(uint32, tag = "5")]
    pub buff_id: u32,
    #[prost(uint64, repeated, tag = "6")]
    pub onadded_avatars_list: ::prost::alloc::vec::Vec<u64>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarFetterBin {
    #[prost(uint32, tag = "3")]
    pub level: u32,
    #[prost(uint32, tag = "4")]
    pub exp: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub rewarded_fetter_level_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "7")]
    pub is_login_on_birthday: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarExpeditionBin {
    #[prost(uint32, tag = "1")]
    pub state: u32,
    #[prost(uint32, tag = "2")]
    pub exp_id: u32,
    #[prost(uint32, tag = "3")]
    pub hour_time: u32,
    #[prost(fixed32, tag = "4")]
    pub start_time: u32,
    #[prost(uint64, tag = "5")]
    pub transaction: u64,
    #[prost(float, tag = "6")]
    pub shorten_ratio: f32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarSkillDepotBin {
    #[prost(uint32, repeated, tag = "1")]
    pub talent_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "2")]
    pub core_proud_skill_level: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub inherent_proud_skill_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, uint32", tag = "4")]
    pub skill_level_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarEquipAffixBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub cd: u32,
    #[prost(uint32, tag = "3")]
    pub pass_cd_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarExtraPropBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarBin {
    #[prost(uint32, tag = "1")]
    pub avatar_type: u32,
    #[prost(uint32, tag = "2")]
    pub avatar_id: u32,
    #[prost(uint64, tag = "3")]
    pub guid: u64,
    #[prost(uint32, tag = "4")]
    pub level: u32,
    #[prost(uint32, tag = "5")]
    pub life_state: u32,
    #[prost(float, tag = "6")]
    pub cur_hp: f32,
    #[prost(float, tag = "7")]
    pub cur_elem_energy: f32,
    #[prost(uint32, tag = "8")]
    pub promote_level: u32,
    #[prost(uint32, tag = "9")]
    pub skill_depot_id: u32,
    #[prost(map = "uint32, message", tag = "10")]
    pub skill_map: ::std::collections::HashMap<u32, AvatarSkillBin>,
    #[prost(map = "uint32, message", tag = "11")]
    pub buff_map: ::std::collections::HashMap<u32, AvatarBuffBin>,
    #[prost(map = "uint32, message", tag = "12")]
    pub depot_map: ::std::collections::HashMap<u32, AvatarSkillDepotBin>,
    #[prost(message, repeated, tag = "13")]
    pub equip_list: ::prost::alloc::vec::Vec<ItemBin>,
    #[prost(float, tag = "14")]
    pub satiation_val: f32,
    #[prost(float, tag = "15")]
    pub satiation_penalty_time: f32,
    #[prost(uint32, tag = "16")]
    pub flycloak_id: u32,
    #[prost(message, repeated, tag = "17")]
    pub avatar_equip_affix_list: ::prost::alloc::vec::Vec<AvatarEquipAffixBin>,
    #[prost(uint32, tag = "18")]
    pub born_time: u32,
    #[prost(message, repeated, tag = "19")]
    pub buff_list: ::prost::alloc::vec::Vec<AvatarBuffBin>,
    #[prost(uint32, tag = "20")]
    pub costume_id: u32,
    #[prost(message, repeated, tag = "21")]
    pub extra_prop_list: ::prost::alloc::vec::Vec<AvatarExtraPropBin>,
    #[prost(oneof = "avatar_bin::Detail", tags = "101, 102, 103")]
    pub detail: ::core::option::Option<avatar_bin::Detail>,
}
/// Nested message and enum types in `AvatarBin`.
pub mod avatar_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "101")]
        FormalAvatar(super::FormalAvatarBin),
        #[prost(message, tag = "102")]
        TrialAvatar(super::TrialAvatarBin),
        #[prost(message, tag = "103")]
        MirrorAvatar(super::MirrorAvatarBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarSnapshotBin {
    #[prost(uint32, tag = "1")]
    pub avatar_snapshot_type: u32,
    #[prost(message, optional, tag = "2")]
    pub avatar_bin: ::core::option::Option<AvatarBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrialAvatarGrantRecordBin {
    #[prost(uint32, tag = "1")]
    pub grant_reason: u32,
    #[prost(uint32, tag = "2")]
    pub from_parent_quest_id: u32,
}
/// Nested message and enum types in `TrialAvatarGrantRecordBin`.
pub mod trial_avatar_grant_record_bin {
    #[derive(proto_gen::CmdID)]
    #[derive(
        Clone,
        Copy,
        Debug,
        PartialEq,
        Eq,
        Hash,
        PartialOrd,
        Ord,
        ::prost::Enumeration
    )]
    #[repr(i32)]
    pub enum GrantReason {
        Invalid = 0,
        GrantByQuest = 1,
    }
    impl GrantReason {
        /// 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 {
                GrantReason::Invalid => "INVALID",
                GrantReason::GrantByQuest => "GRANT_BY_QUEST",
            }
        }
        /// Creates an enum from field names used in the ProtoBuf definition.
        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
            match value {
                "INVALID" => Some(Self::Invalid),
                "GRANT_BY_QUEST" => Some(Self::GrantByQuest),
                _ => None,
            }
        }
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FormalAvatarBin {
    #[prost(uint32, tag = "1")]
    pub exp: u32,
    #[prost(uint64, repeated, tag = "2")]
    pub equip_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(message, optional, tag = "3")]
    pub fetter: ::core::option::Option<AvatarFetterBin>,
    #[prost(message, optional, tag = "4")]
    pub expedition_data: ::core::option::Option<AvatarExpeditionBin>,
    #[prost(uint32, tag = "5")]
    pub avatar_repeat_count: u32,
    #[prost(bool, tag = "6")]
    pub is_focus: bool,
    #[prost(uint32, repeated, tag = "7")]
    pub taken_promote_reward_level_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "8")]
    pub costume_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrialAvatarBin {
    #[prost(uint32, tag = "1")]
    pub trial_avatar_id: u32,
    #[prost(message, optional, tag = "2")]
    pub grant_record_bin: ::core::option::Option<TrialAvatarGrantRecordBin>,
    #[prost(bool, tag = "3")]
    pub is_inherit: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MirrorAvatarBin {
    #[prost(uint32, tag = "1")]
    pub avatar_snapshot_type: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarTeamBin {
    #[prost(uint64, repeated, tag = "1")]
    pub avatar_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(string, tag = "2")]
    pub team_name: ::prost::alloc::string::String,
    #[prost(uint64, tag = "3")]
    pub last_cur_avatar_guid: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerAvatarCompBin {
    #[prost(message, repeated, tag = "1")]
    pub avatar_list: ::prost::alloc::vec::Vec<AvatarBin>,
    #[prost(uint64, tag = "2")]
    pub cur_avatar_guid: u64,
    #[prost(message, optional, tag = "3")]
    pub pb_only_cur_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "4")]
    pub pb_only_cur_rot: ::core::option::Option<VectorBin>,
    #[prost(map = "uint32, message", tag = "5")]
    pub team_map: ::std::collections::HashMap<u32, AvatarTeamBin>,
    #[prost(uint32, tag = "6")]
    pub cur_team_id: u32,
    #[prost(uint64, tag = "7")]
    pub last_change_avatar_time: u64,
    #[prost(bool, tag = "8")]
    pub is_spring_auto_use: bool,
    #[prost(uint32, tag = "9")]
    pub spring_auto_use_percent: u32,
    #[prost(fixed32, tag = "10")]
    pub last_backgroud_avatar_recover_time: u32,
    #[prost(uint32, tag = "11")]
    pub cur_spring_volume: u32,
    #[prost(bool, tag = "12")]
    pub is_flyable: bool,
    #[prost(bool, tag = "13")]
    pub is_transferable: bool,
    #[prost(uint64, tag = "14")]
    pub last_avatar_guid: u64,
    #[prost(uint64, tag = "15")]
    pub choose_avatar_guid: u64,
    #[prost(uint32, tag = "16")]
    pub die_type: u32,
    #[prost(uint64, repeated, tag = "17")]
    pub temp_avatar_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(map = "uint32, message", tag = "18")]
    pub avatar_team_buff_map: ::std::collections::HashMap<u32, AvatarBuffBin>,
    #[prost(uint32, tag = "19")]
    pub last_server_buff_uid: u32,
    #[prost(uint32, tag = "20")]
    pub total_expedition_num: u32,
    #[prost(uint32, repeated, tag = "21")]
    pub owned_flycloak_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "22")]
    pub avatar_team_buff_list: ::prost::alloc::vec::Vec<AvatarBuffBin>,
    #[prost(uint32, repeated, tag = "23")]
    pub owned_costume_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "24")]
    pub avatar_snapshot_list: ::prost::alloc::vec::Vec<AvatarSnapshotBin>,
    #[prost(uint32, repeated, tag = "25")]
    pub backup_team_id_order_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WorldBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub scene_map: ::std::collections::HashMap<u32, SceneBin>,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(uint32, tag = "3")]
    pub last_adjust_time: u32,
    #[prost(uint32, tag = "4")]
    pub adjust_level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupProductBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub gadget_one_off_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub monster_one_off_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneProductBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub group_product_map: ::std::collections::HashMap<u32, GroupProductBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DungeonProductBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub scene_product_map: ::std::collections::HashMap<u32, SceneProductBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MapMarkPointBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub pos: ::core::option::Option<VectorBin>,
    #[prost(uint32, tag = "4")]
    pub point_type: u32,
    #[prost(uint32, tag = "5")]
    pub monster_id: u32,
    #[prost(uint32, tag = "6")]
    pub from_type: u32,
    #[prost(uint32, tag = "7")]
    pub quest_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupBossChestBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub boss_chest_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneBossChestBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub group_boss_chest_map: ::std::collections::HashMap<u32, GroupBossChestBin>,
    #[prost(fixed32, tag = "2")]
    pub take_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubfieldDropBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub drop_num_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterBeKilledNumBin {
    #[prost(uint32, tag = "1")]
    pub monster_id: u32,
    #[prost(uint32, tag = "2")]
    pub be_killed_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MapAreaInfoBin {
    #[prost(uint32, tag = "1")]
    pub map_area_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonsterBeCapturedNumBin {
    #[prost(uint32, tag = "1")]
    pub monster_id: u32,
    #[prost(uint32, tag = "2")]
    pub be_captured_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LevelTagChangeBin {
    #[prost(uint32, tag = "1")]
    pub level_tag_id: u32,
    #[prost(uint32, tag = "2")]
    pub change_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LevelTagBin {
    #[prost(message, repeated, tag = "1")]
    pub level_tag_change_list: ::prost::alloc::vec::Vec<LevelTagChangeBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PersistentDungeonSceneBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(message, optional, tag = "2")]
    pub dungeon_scene_bin: ::core::option::Option<SceneBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeshretObeliskBin {
    #[prost(uint32, tag = "1")]
    pub group_id: u32,
    #[prost(uint32, tag = "2")]
    pub config_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerSceneCompBin {
    #[prost(message, optional, tag = "1")]
    pub world: ::core::option::Option<WorldBin>,
    #[prost(uint32, tag = "2")]
    pub cur_scene_owner_uid: u32,
    #[prost(uint32, tag = "3")]
    pub my_prev_scene_id: u32,
    #[prost(message, optional, tag = "4")]
    pub my_prev_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "5")]
    pub my_prev_rot: ::core::option::Option<VectorBin>,
    #[prost(uint32, tag = "6")]
    pub my_cur_scene_id: u32,
    #[prost(uint32, repeated, tag = "7")]
    pub monster_seen_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "8")]
    pub mark_point_list: ::prost::alloc::vec::Vec<MapMarkPointBin>,
    #[prost(map = "uint32, message", tag = "9")]
    pub world_product_map: ::std::collections::HashMap<u32, SceneProductBin>,
    #[prost(uint32, tag = "10")]
    pub trivial_entity_drop_num: u32,
    #[prost(fixed32, tag = "11")]
    pub trivial_entity_drop_time: u32,
    #[prost(map = "uint32, message", tag = "12")]
    pub scene_boss_chest_map: ::std::collections::HashMap<u32, SceneBossChestBin>,
    #[prost(map = "uint32, message", tag = "13")]
    pub subfield_drop_map: ::std::collections::HashMap<u32, SubfieldDropBin>,
    #[prost(fixed32, tag = "14")]
    pub subfield_drop_time: u32,
    #[prost(uint32, tag = "15")]
    pub my_cur_area_id: u32,
    #[prost(map = "uint32, message", tag = "16")]
    pub dungeon_product_map: ::std::collections::HashMap<u32, DungeonProductBin>,
    #[prost(map = "uint32, uint32", tag = "17")]
    pub chest_open_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "18")]
    pub gadget_interact_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, tag = "19")]
    pub total_boss_chest_take_num: u32,
    #[prost(map = "string, uint32", tag = "20")]
    pub daily_gadget_drop_category_count_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        u32,
    >,
    #[prost(uint32, tag = "21")]
    pub last_refresh_daily_gadget_drop_category_count_map_time: u32,
    #[prost(message, repeated, tag = "22")]
    pub monster_killed_num_list: ::prost::alloc::vec::Vec<MonsterBeKilledNumBin>,
    #[prost(uint32, tag = "23")]
    pub my_cur_player_scene_id: u32,
    #[prost(uint32, tag = "24")]
    pub my_cur_home_scene_id: u32,
    #[prost(uint32, repeated, tag = "25")]
    pub obtained_wood_type_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, uint32", tag = "26")]
    pub gadget_chain_level_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, tag = "27")]
    pub weekly_boss_resin_discount_num: u32,
    #[prost(uint32, tag = "28")]
    pub last_weekly_boss_resin_discount_time: u32,
    #[prost(message, repeated, tag = "29")]
    pub map_area_info_list: ::prost::alloc::vec::Vec<MapAreaInfoBin>,
    #[prost(message, repeated, tag = "30")]
    pub monster_captured_num_list: ::prost::alloc::vec::Vec<MonsterBeCapturedNumBin>,
    #[prost(message, optional, tag = "31")]
    pub level_tag_bin: ::core::option::Option<LevelTagBin>,
    #[prost(message, repeated, tag = "32")]
    pub persistent_dungeon_scene_bin_list: ::prost::alloc::vec::Vec<
        PersistentDungeonSceneBin,
    >,
    #[prost(uint32, tag = "33")]
    pub last_area_play_type: u32,
    #[prost(message, optional, tag = "34")]
    pub deshret_obelisk_bin: ::core::option::Option<DeshretObeliskBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestContentBin {
    #[prost(uint32, tag = "1")]
    pub r#type: u32,
    #[prost(uint32, tag = "2")]
    pub param: u32,
    #[prost(uint32, tag = "3")]
    pub progress: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestTalkRecordBin {
    #[prost(uint32, tag = "1")]
    pub talk_id: u32,
    #[prost(fixed32, tag = "2")]
    pub talk_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestBin {
    #[prost(uint32, tag = "1")]
    pub quest_id: u32,
    #[prost(uint32, tag = "2")]
    pub state: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub finish_progress_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub fail_progress_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub start_time: u32,
    #[prost(message, repeated, tag = "6")]
    pub talk_history_list: ::prost::alloc::vec::Vec<QuestTalkRecordBin>,
    #[prost(fixed32, tag = "7")]
    pub start_game_time: u32,
    #[prost(fixed32, tag = "8")]
    pub accept_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerQuestBin {
    #[prost(message, repeated, tag = "1")]
    pub quest_list: ::prost::alloc::vec::Vec<QuestBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParentQuestRandomInfoBin {
    #[prost(uint32, tag = "1")]
    pub entrance_id: u32,
    #[prost(uint32, tag = "2")]
    pub template_id: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub factor_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, uint32", tag = "4")]
    pub quest_id_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParentQuestInferenceWordBin {
    #[prost(uint32, tag = "1")]
    pub word_id: u32,
    #[prost(bool, tag = "2")]
    pub is_interpret: bool,
    #[prost(bool, tag = "3")]
    pub is_associate: bool,
    #[prost(bool, tag = "4")]
    pub is_submit: bool,
    #[prost(uint32, tag = "5")]
    pub unlock_by_word_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParentQuestBin {
    #[prost(uint32, tag = "1")]
    pub parent_quest_id: u32,
    #[prost(uint32, tag = "2")]
    pub total_finish_count: u32,
    #[prost(uint32, tag = "3")]
    pub today_finish_count: u32,
    #[prost(fixed32, tag = "4")]
    pub last_finish_time: u32,
    #[prost(message, repeated, tag = "5")]
    pub child_quest_state_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(bool, tag = "6")]
    pub is_random: bool,
    #[prost(message, optional, tag = "7")]
    pub random_info: ::core::option::Option<ParentQuestRandomInfoBin>,
    #[prost(fixed32, tag = "9")]
    pub accept_time: u32,
    #[prost(int32, repeated, tag = "10")]
    pub quest_var: ::prost::alloc::vec::Vec<i32>,
    #[prost(uint32, tag = "11")]
    pub reward_index: u32,
    #[prost(uint32, tag = "12")]
    pub state: u32,
    #[prost(message, repeated, tag = "13")]
    pub time_var_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(message, repeated, tag = "14")]
    pub unlock_inference_word_list: ::prost::alloc::vec::Vec<
        ParentQuestInferenceWordBin,
    >,
    #[prost(uint32, repeated, tag = "15")]
    pub unlock_inference_conclusion_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerParentQuestBin {
    #[prost(message, repeated, tag = "1")]
    pub parent_quest_list: ::prost::alloc::vec::Vec<ParentQuestBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChapterBin {
    #[prost(uint32, tag = "1")]
    pub chapter_id: u32,
    #[prost(uint32, tag = "2")]
    pub chapter_state: u32,
    #[prost(bool, tag = "3")]
    pub is_notify_sent: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerChapterBin {
    #[prost(message, repeated, tag = "1")]
    pub chapter_list: ::prost::alloc::vec::Vec<ChapterBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestGlobalVarBin {
    #[prost(uint32, tag = "1")]
    pub key: u32,
    #[prost(int32, tag = "2")]
    pub value: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WorldQuestBin {
    #[prost(uint32, tag = "1")]
    pub parent_quest_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub linked_flow_group_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerQuestCompBin {
    #[prost(message, optional, tag = "1")]
    pub quest_bin: ::core::option::Option<PlayerQuestBin>,
    #[prost(message, optional, tag = "2")]
    pub parent_quest_bin: ::core::option::Option<PlayerParentQuestBin>,
    #[prost(uint32, tag = "3")]
    pub last_random_parent_quest_id: u32,
    #[prost(uint32, tag = "4")]
    pub last_random_quest_id: u32,
    #[prost(map = "uint32, uint32", tag = "5")]
    pub last_dungeon_settle_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, optional, tag = "6")]
    pub chapter_bin: ::core::option::Option<PlayerChapterBin>,
    #[prost(message, repeated, tag = "7")]
    pub quest_global_var_list: ::prost::alloc::vec::Vec<QuestGlobalVarBin>,
    #[prost(uint32, repeated, tag = "8")]
    pub pre_open_chapter_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "9")]
    pub world_quest_bin_list: ::prost::alloc::vec::Vec<WorldQuestBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipBin {
    #[prost(bool, tag = "1")]
    pub is_locked: bool,
    #[prost(oneof = "equip_bin::Detail", tags = "101, 102")]
    pub detail: ::core::option::Option<equip_bin::Detail>,
}
/// Nested message and enum types in `EquipBin`.
pub mod equip_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "101")]
        Reliquary(super::ReliquaryBin),
        #[prost(message, tag = "102")]
        Weapon(super::WeaponBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaterialDeleteBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub delete_time_num_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaterialBin {
    #[prost(uint32, tag = "1")]
    pub count: u32,
    #[prost(message, optional, tag = "2")]
    pub delete_bin: ::core::option::Option<MaterialDeleteBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FurnitureBin {
    #[prost(uint32, tag = "1")]
    pub count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemBin {
    #[prost(uint32, tag = "1")]
    pub item_type: u32,
    #[prost(uint32, tag = "2")]
    pub item_id: u32,
    #[prost(fixed64, tag = "3")]
    pub guid: u64,
    #[prost(oneof = "item_bin::Detail", tags = "101, 102, 103")]
    pub detail: ::core::option::Option<item_bin::Detail>,
}
/// Nested message and enum types in `ItemBin`.
pub mod item_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "101")]
        Material(super::MaterialBin),
        #[prost(message, tag = "102")]
        Equip(super::EquipBin),
        #[prost(message, tag = "103")]
        Furniture(super::FurnitureBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackItemStoreBin {}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemStoreBin {
    #[prost(message, repeated, tag = "1")]
    pub item_list: ::prost::alloc::vec::Vec<ItemBin>,
    #[prost(bool, tag = "2")]
    pub is_material_item_num_alarmed: bool,
    #[prost(oneof = "item_store_bin::Ext", tags = "101")]
    pub ext: ::core::option::Option<item_store_bin::Ext>,
}
/// Nested message and enum types in `ItemStoreBin`.
pub mod item_store_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Ext {
        #[prost(message, tag = "101")]
        PackStore(super::PackItemStoreBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoRecoverItemBin {
    #[prost(uint32, tag = "1")]
    pub value: u32,
    #[prost(uint32, tag = "3")]
    pub bought_num: u32,
    #[prost(fixed32, tag = "4")]
    pub last_bought_time: u32,
    #[prost(fixed32, tag = "5")]
    pub next_refresh_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemLimitCountRecordBin {
    #[prost(uint32, tag = "1")]
    pub item_type: u32,
    #[prost(uint32, tag = "2")]
    pub index_value: u32,
    #[prost(uint32, tag = "3")]
    pub item_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemLimitRecordBin {
    #[prost(uint32, tag = "1")]
    pub item_limit_type: u32,
    #[prost(fixed32, tag = "2")]
    pub last_refresh_time: u32,
    #[prost(message, repeated, tag = "3")]
    pub item_limit_count_record_list: ::prost::alloc::vec::Vec<ItemLimitCountRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaterialDeleteReturnRecordBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub delete_material_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub return_item_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OutputControlRecordBin {
    #[prost(fixed32, tag = "1")]
    pub last_refresh_time: u32,
    #[prost(message, repeated, tag = "2")]
    pub daily_count_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(message, repeated, tag = "3")]
    pub total_count_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopGoodsOutputRecordBin {
    #[prost(uint32, tag = "1")]
    pub goods_id: u32,
    #[prost(fixed32, tag = "2")]
    pub last_record_time: u32,
    #[prost(uint32, tag = "3")]
    pub buy_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopOutputRecordBin {
    #[prost(message, repeated, tag = "1")]
    pub shop_goods_output_record_list: ::prost::alloc::vec::Vec<
        ShopGoodsOutputRecordBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SingleBonusRecordBin {
    #[prost(fixed32, tag = "1")]
    pub last_refresh_time: u32,
    #[prost(uint32, tag = "2")]
    pub config_id: u32,
    #[prost(uint32, tag = "3")]
    pub bonus_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BonusRecordBin {
    #[prost(uint32, tag = "1")]
    pub bonus_source_type: u32,
    #[prost(message, repeated, tag = "2")]
    pub single_bonus_record_list: ::prost::alloc::vec::Vec<SingleBonusRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemLimitRefreshRecordBin {
    #[prost(uint32, tag = "1")]
    pub item_limit_refresh_type: u32,
    #[prost(fixed32, tag = "2")]
    pub last_refresh_time: u32,
    #[prost(message, repeated, tag = "3")]
    pub item_limit_count_record_list: ::prost::alloc::vec::Vec<ItemLimitCountRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReliquaryLevelupNumRecordBin {
    #[prost(uint32, tag = "1")]
    pub rank_level: u32,
    #[prost(message, repeated, tag = "2")]
    pub reliquary_levelup_num_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EquipLevelupRecordBin {
    #[prost(message, repeated, tag = "1")]
    pub weapon_levelup_num_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(message, repeated, tag = "2")]
    pub weapon_promote_levelup_num_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(message, repeated, tag = "3")]
    pub rank_reliquary_levelup_list: ::prost::alloc::vec::Vec<
        ReliquaryLevelupNumRecordBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReliquarySuitBin {
    #[prost(uint32, tag = "1")]
    pub reliquary_suit_id: u32,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub reliquary_type_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivityOutputIndexRecordBin {
    #[prost(uint32, tag = "1")]
    pub output_control_type: u32,
    #[prost(message, repeated, tag = "2")]
    pub activity_count_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivityOutputControlRecordBin {
    #[prost(uint32, tag = "1")]
    pub activity_type: u32,
    #[prost(fixed32, tag = "2")]
    pub last_refresh_time: u32,
    #[prost(message, repeated, tag = "3")]
    pub activity_output_index_record_list: ::prost::alloc::vec::Vec<
        ActivityOutputIndexRecordBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReliquaryMainPropGuaranteeDataBin {
    #[prost(uint32, tag = "1")]
    pub main_prop_id: u32,
    #[prost(uint32, tag = "2")]
    pub miss_count: u32,
    #[prost(uint32, tag = "3")]
    pub guarantee_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReliquaryGuaranteeDepotBin {
    #[prost(uint32, tag = "1")]
    pub guarantee_depot_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub main_prop_guarantee_data_list: ::prost::alloc::vec::Vec<
        ReliquaryMainPropGuaranteeDataBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerItemCompBin {
    #[prost(message, optional, tag = "1")]
    pub pack_store: ::core::option::Option<ItemStoreBin>,
    #[prost(uint32, repeated, tag = "2")]
    pub history_item_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "3")]
    pub hcoin: u32,
    #[prost(uint32, tag = "4")]
    pub scoin: u32,
    #[prost(map = "uint32, uint64", tag = "5")]
    pub item_cd_map: ::std::collections::HashMap<u32, u64>,
    #[prost(message, optional, tag = "6")]
    pub resin_record: ::core::option::Option<AutoRecoverItemBin>,
    #[prost(message, repeated, tag = "7")]
    pub item_limit_record_list: ::prost::alloc::vec::Vec<ItemLimitRecordBin>,
    #[prost(message, repeated, tag = "8")]
    pub item_total_obtain_count_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(message, optional, tag = "9")]
    pub material_delete_return_record: ::core::option::Option<
        MaterialDeleteReturnRecordBin,
    >,
    #[prost(map = "uint32, message", tag = "10")]
    pub output_control_record_map: ::std::collections::HashMap<
        u32,
        OutputControlRecordBin,
    >,
    #[prost(uint32, tag = "11")]
    pub wait_sub_hcoin: u32,
    #[prost(uint32, tag = "12")]
    pub wait_sub_scoin: u32,
    #[prost(message, repeated, tag = "13")]
    pub item_limit_refresh_record_list: ::prost::alloc::vec::Vec<
        ItemLimitRefreshRecordBin,
    >,
    #[prost(message, optional, tag = "14")]
    pub equip_levelup_record_bin: ::core::option::Option<EquipLevelupRecordBin>,
    #[prost(uint32, tag = "15")]
    pub mcoin: u32,
    #[prost(uint32, tag = "16")]
    pub wait_sub_mcoin: u32,
    #[prost(uint32, tag = "17")]
    pub legendary_key: u32,
    #[prost(message, repeated, tag = "18")]
    pub reliquary_suit_list: ::prost::alloc::vec::Vec<ReliquarySuitBin>,
    #[prost(message, optional, tag = "19")]
    pub shop_output_record: ::core::option::Option<ShopOutputRecordBin>,
    #[prost(message, repeated, tag = "20")]
    pub bonus_record_list: ::prost::alloc::vec::Vec<BonusRecordBin>,
    #[prost(message, repeated, tag = "21")]
    pub activity_output_control_record_list: ::prost::alloc::vec::Vec<
        ActivityOutputControlRecordBin,
    >,
    #[prost(uint32, tag = "22")]
    pub home_coin: u32,
    #[prost(uint32, tag = "23")]
    pub wait_sub_home_coin: u32,
    #[prost(uint32, tag = "24")]
    pub psn_mcoin: u32,
    #[prost(uint32, tag = "25")]
    pub wait_sub_psn_mcoin: u32,
    #[prost(bool, tag = "26")]
    pub is_psn_version_modify: bool,
    #[prost(message, repeated, tag = "27")]
    pub reliquary_guarantee_depot_list: ::prost::alloc::vec::Vec<
        ReliquaryGuaranteeDepotBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DungeonGroupRecordBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub chest_open_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DungeonRecordBin {
    #[prost(uint32, tag = "1")]
    pub enter_count: u32,
    #[prost(fixed32, tag = "3")]
    pub start_time: u32,
    #[prost(fixed32, tag = "4")]
    pub end_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DungeonRandomRecordBin {
    #[prost(uint32, repeated, tag = "1")]
    pub dungeon_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(fixed32, tag = "2")]
    pub refresh_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DungeonDurableRecordBin {
    #[prost(bool, tag = "1")]
    pub is_passed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerDungeonRecordBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub dungeon_daily_map: ::std::collections::HashMap<u32, DungeonRecordBin>,
    #[prost(map = "uint32, message", tag = "2")]
    pub dungeon_durable_map: ::std::collections::HashMap<u32, DungeonDurableRecordBin>,
    #[prost(map = "uint32, message", tag = "3")]
    pub dungeon_random_map: ::std::collections::HashMap<u32, DungeonRandomRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DungeonSerialBossChestBin {
    #[prost(uint32, tag = "1")]
    pub take_num: u32,
    #[prost(fixed32, tag = "2")]
    pub take_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerDungeonCompBin {
    #[prost(uint32, tag = "1")]
    pub cur_dungeon_id: u32,
    #[prost(fixed32, tag = "2")]
    pub last_enter_time: u32,
    #[prost(message, optional, tag = "5")]
    pub record_bin: ::core::option::Option<PlayerDungeonRecordBin>,
    #[prost(bool, tag = "6")]
    pub is_join_other_scene: bool,
    #[prost(fixed32, tag = "7")]
    pub last_time_daily_item_add: u32,
    #[prost(fixed32, tag = "8")]
    pub last_time_weekly_item_add: u32,
    #[prost(uint32, tag = "9")]
    pub last_unsettled_dungeon_id: u32,
    #[prost(map = "uint32, message", tag = "10")]
    pub serial_boss_chest_map: ::std::collections::HashMap<
        u32,
        DungeonSerialBossChestBin,
    >,
    #[prost(bool, tag = "11")]
    pub is_has_quit_target_pos: bool,
    #[prost(uint32, tag = "12")]
    pub quit_scene_id: u32,
    #[prost(message, optional, tag = "13")]
    pub quit_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "14")]
    pub quit_rot: ::core::option::Option<VectorBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerBoredCompBin {
    #[prost(bool, tag = "1")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerMpCompBin {
    #[prost(uint32, tag = "2")]
    pub mp_setting_type: u32,
    #[prost(bool, tag = "3")]
    pub is_only_mp_with_ps_player: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompoundOutputBin {
    #[prost(fixed32, tag = "1")]
    pub output_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompoundQueueBin {
    #[prost(message, repeated, tag = "1")]
    pub output_list: ::prost::alloc::vec::Vec<CompoundOutputBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CookRecipeDataBin {
    #[prost(uint32, tag = "1")]
    pub proficiency: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerCookCompBin {
    #[prost(uint32, tag = "1")]
    pub grade: u32,
    #[prost(map = "uint32, message", tag = "2")]
    pub recipe_data_map: ::std::collections::HashMap<u32, CookRecipeDataBin>,
    #[prost(uint32, repeated, tag = "3")]
    pub unlock_compound_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, message", tag = "4")]
    pub compound_que_bin_map: ::std::collections::HashMap<u32, CompoundQueueBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerLoginCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub taken_login_reward_config_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(fixed32, tag = "2")]
    pub last_login_refresh_time: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub recv_questionnaire_mail_config_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(fixed32, tag = "4")]
    pub last_recv_questionnaire_mail_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfflineMsgExeBin {
    #[prost(message, optional, tag = "1")]
    pub msg: ::core::option::Option<OfflineMsgBin>,
    #[prost(uint32, tag = "2")]
    pub exe_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerOfflineMsgCompBin {
    #[prost(uint32, tag = "1")]
    pub index: u32,
    #[prost(message, repeated, tag = "2")]
    pub next_offline_msg_list: ::prost::alloc::vec::Vec<OfflineMsgExeBin>,
    #[prost(uint32, tag = "4")]
    pub born_scene_id: u32,
    #[prost(message, optional, tag = "5")]
    pub born_pos: ::core::option::Option<VectorBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DailyTaskInfoBin {
    #[prost(uint32, tag = "1")]
    pub daily_task_id: u32,
    #[prost(uint32, tag = "2")]
    pub drop_id: u32,
    #[prost(uint32, tag = "3")]
    pub progress: u32,
    #[prost(bool, tag = "4")]
    pub is_finished: bool,
    #[prost(uint32, tag = "5")]
    pub preview_reward_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DailyTaskCycleQuestBin {
    #[prost(uint32, tag = "1")]
    pub quest_id: u32,
    #[prost(uint32, tag = "2")]
    pub refresh_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DailyTaskCityCycleQuestsBin {
    #[prost(uint32, tag = "1")]
    pub city_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub quest_list: ::prost::alloc::vec::Vec<DailyTaskCycleQuestBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerDailyTaskCompBin {
    #[prost(fixed32, tag = "1")]
    pub last_time: u32,
    #[prost(message, repeated, tag = "2")]
    pub task_list: ::prost::alloc::vec::Vec<DailyTaskInfoBin>,
    #[prost(uint32, tag = "3")]
    pub score_player_level: u32,
    #[prost(bool, tag = "4")]
    pub is_taken_score_reward: bool,
    #[prost(uint32, tag = "5")]
    pub finished_num: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub sure_pool_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "7")]
    pub possible_pools_list: ::prost::alloc::vec::Vec<Uint32List>,
    #[prost(map = "uint32, message", tag = "8")]
    pub task_var_map: ::std::collections::HashMap<u32, Int32List>,
    #[prost(uint32, tag = "9")]
    pub refresh_times: u32,
    #[prost(uint32, tag = "10")]
    pub total_reward_num: u32,
    #[prost(uint32, tag = "11")]
    pub filter_city_id: u32,
    #[prost(uint32, tag = "12")]
    pub random_city_id: u32,
    #[prost(message, repeated, tag = "14")]
    pub cycle_quest_list: ::prost::alloc::vec::Vec<DailyTaskCycleQuestBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerRandTaskCompBin {
    #[prost(fixed32, tag = "1")]
    pub last_reward_time: u32,
    #[prost(uint32, tag = "2")]
    pub reward_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InvestigationBin {
    #[prost(uint32, tag = "1")]
    pub investigation_id: u32,
    #[prost(uint32, tag = "2")]
    pub progress: u32,
    #[prost(bool, tag = "3")]
    pub is_taken_reward: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerInvestigationCompBin {
    #[prost(message, repeated, tag = "1")]
    pub investigation_list: ::prost::alloc::vec::Vec<InvestigationBin>,
    #[prost(uint32, repeated, tag = "2")]
    pub finished_target_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "3")]
    pub reward_taken_target_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "4")]
    pub is_today_quest_daily_notify_ack: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SeaLampSectionBin {
    #[prost(uint32, tag = "1")]
    pub section_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SeaLampScheduleDataBin {
    #[prost(uint32, tag = "1")]
    pub popularity: u32,
    #[prost(uint32, tag = "2")]
    pub sea_lamp_coin: u32,
    #[prost(bool, tag = "3")]
    pub is_content_closed: bool,
    #[prost(message, repeated, tag = "4")]
    pub section_list: ::prost::alloc::vec::Vec<SeaLampSectionBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CrucibleBattleUidBin {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(uint32, tag = "2")]
    pub icon: u32,
    #[prost(string, tag = "3")]
    pub nickname: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub online_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub profile_picture_bin: ::core::option::Option<ProfilePictureBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CrucibleScheduleBin {
    #[prost(uint32, tag = "1")]
    pub cost_time: u32,
    #[prost(message, repeated, tag = "2")]
    pub battle_uid_data_list: ::prost::alloc::vec::Vec<CrucibleBattleUidBin>,
    #[prost(uint32, tag = "3")]
    pub battle_world_level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrialAvatarActivityRewardInfo {
    #[prost(uint32, tag = "1")]
    pub trial_avatar_index_id: u32,
    #[prost(bool, tag = "2")]
    pub passed_dungeon: bool,
    #[prost(bool, tag = "3")]
    pub received_reward: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrialAvatarScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub reward_info_list: ::prost::alloc::vec::Vec<TrialAvatarActivityRewardInfo>,
    #[prost(uint32, repeated, tag = "2")]
    pub watcher_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SalesmanScheduleBin {
    #[prost(uint32, tag = "1")]
    pub status: u32,
    #[prost(uint32, tag = "2")]
    pub day_index: u32,
    #[prost(uint32, tag = "4")]
    pub deliver_count: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub obtained_normal_reward_index_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "6")]
    pub obtained_special_reward_index_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "7")]
    pub finished_talk_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, uint32", tag = "8")]
    pub selected_reward_id_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, repeated, tag = "9")]
    pub loaded_group_config_id_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(uint32, tag = "10")]
    pub last_deliver_day_index: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AsterLittleBin {
    #[prost(bool, tag = "1")]
    pub is_open: bool,
    #[prost(uint32, tag = "2")]
    pub stage_id: u32,
    #[prost(uint32, tag = "3")]
    pub stage_state: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AsterMidBin {
    #[prost(bool, tag = "1")]
    pub is_open: bool,
    #[prost(uint32, tag = "2")]
    pub refresh_id: u32,
    #[prost(uint32, tag = "3")]
    pub refresh_time: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub finished_camp_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub collect_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AsterLargeBin {
    #[prost(bool, tag = "1")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AsterProgressBin {
    #[prost(uint32, tag = "1")]
    pub count: u32,
    #[prost(uint32, tag = "2")]
    pub last_auto_add_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AsterScheduleBin {
    #[prost(message, optional, tag = "1")]
    pub aster_little: ::core::option::Option<AsterLittleBin>,
    #[prost(message, optional, tag = "2")]
    pub aster_mid: ::core::option::Option<AsterMidBin>,
    #[prost(message, optional, tag = "3")]
    pub aster_large: ::core::option::Option<AsterLargeBin>,
    #[prost(uint32, tag = "6")]
    pub aster_credit: u32,
    #[prost(uint32, tag = "7")]
    pub aster_token: u32,
    #[prost(bool, tag = "8")]
    pub is_special_reward_taken: bool,
    #[prost(bool, tag = "9")]
    pub is_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeliveryScheduleBin {
    #[prost(uint32, tag = "1")]
    pub day_index: u32,
    #[prost(bool, tag = "2")]
    pub is_taken_daily_reward: bool,
    #[prost(uint32, repeated, tag = "3")]
    pub cur_day_finished_delivery_quest_index_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FlightDailyRecordBin {
    #[prost(bool, tag = "1")]
    pub is_touched: bool,
    #[prost(uint32, tag = "2")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FlightScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub daily_record_list: ::prost::alloc::vec::Vec<FlightDailyRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DragonSpineChapterBin {
    #[prost(uint32, tag = "1")]
    pub chapter_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub progress: u32,
    #[prost(bool, tag = "4")]
    pub is_finish: bool,
    #[prost(uint32, repeated, tag = "5")]
    pub finished_mission_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "6")]
    pub open_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DragonSpineBanDropSubject {
    #[prost(message, repeated, tag = "1")]
    pub drop_subject_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DragonSpineScheduleBin {
    #[prost(uint32, tag = "1")]
    pub weapon_enhance_stage: u32,
    #[prost(message, repeated, tag = "2")]
    pub chapter_list: ::prost::alloc::vec::Vec<DragonSpineChapterBin>,
    #[prost(uint32, tag = "3")]
    pub shimmering_essence: u32,
    #[prost(uint32, tag = "4")]
    pub warm_essence: u32,
    #[prost(uint32, tag = "5")]
    pub wondrous_essence: u32,
    #[prost(message, repeated, tag = "6")]
    pub banned_drop_subject_list: ::prost::alloc::vec::Vec<DragonSpineBanDropSubject>,
    #[prost(bool, tag = "7")]
    pub is_content_closed: bool,
    #[prost(uint64, tag = "8")]
    pub activity_weapon_guid: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EffigyDailyRecordBin {
    #[prost(uint32, tag = "1")]
    pub day_index: u32,
    #[prost(uint32, tag = "2")]
    pub challenge_id: u32,
    #[prost(uint32, tag = "4")]
    pub challenge_max_score: u32,
    #[prost(bool, tag = "6")]
    pub is_first_pass_reward_taken: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EffigyScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub daily_record_list: ::prost::alloc::vec::Vec<EffigyDailyRecordBin>,
    #[prost(uint32, tag = "2")]
    pub last_difficulty_id: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub taken_reward_index_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TreasureMapRegionBin {
    #[prost(uint32, tag = "1")]
    pub region_id: u32,
    #[prost(uint32, tag = "2")]
    pub current_progress: u32,
    #[prost(map = "uint32, bool", tag = "3")]
    pub done_group_map: ::std::collections::HashMap<u32, bool>,
    #[prost(bool, tag = "4")]
    pub is_region_detected: bool,
    #[prost(bool, tag = "5")]
    pub is_mp_challenge_open: bool,
    #[prost(bool, tag = "6")]
    pub is_mp_challenge_done: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TreasureMapBonusChallengeBin {
    #[prost(uint32, tag = "1")]
    pub config_id: u32,
    #[prost(bool, tag = "2")]
    pub is_active: bool,
    #[prost(bool, tag = "3")]
    pub is_done: bool,
    #[prost(bool, tag = "4")]
    pub is_challenge_open: bool,
    #[prost(map = "uint32, uint32", tag = "5")]
    pub fragment_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TreasureMapScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub region_list: ::prost::alloc::vec::Vec<TreasureMapRegionBin>,
    #[prost(uint32, tag = "2")]
    pub active_region_index: u32,
    #[prost(uint32, tag = "3")]
    pub currency_num: u32,
    #[prost(message, repeated, tag = "4")]
    pub challenge_list: ::prost::alloc::vec::Vec<TreasureMapBonusChallengeBin>,
    #[prost(bool, tag = "5")]
    pub is_mp_challenge_touched: bool,
    #[prost(uint32, tag = "6")]
    pub host_mp_reward_taken_num: u32,
    #[prost(uint32, tag = "7")]
    pub guest_mp_reward_taken_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SalesmanMpScheduleBin {
    #[prost(uint32, tag = "1")]
    pub status: u32,
    #[prost(uint32, tag = "2")]
    pub day_index: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub deliver_day_index_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "4")]
    pub last_deliver_day_index: u32,
    #[prost(bool, tag = "5")]
    pub is_has_taken_special_reward: bool,
    #[prost(uint32, repeated, tag = "6")]
    pub normal_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "7")]
    pub obtained_normal_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "8")]
    pub obtained_special_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "9")]
    pub obtained_special_material_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "10")]
    pub obtained_special_drop_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "11")]
    pub finished_talk_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExpeditionPathDataBin {
    #[prost(uint32, tag = "1")]
    pub path_id: u32,
    #[prost(uint32, tag = "2")]
    pub mark_id: u32,
    #[prost(uint32, tag = "3")]
    pub refresh_time: u32,
    #[prost(uint32, tag = "4")]
    pub state: u32,
    #[prost(uint32, tag = "5")]
    pub start_time: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub avatar_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "7")]
    pub assist_uid: u32,
    #[prost(uint32, tag = "8")]
    pub assist_avatar_id: u32,
    #[prost(float, tag = "9")]
    pub bonus_probability: f32,
    #[prost(string, tag = "10")]
    pub transaction: ::prost::alloc::string::String,
    #[prost(uint32, tag = "11")]
    pub assist_costume_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExpeditionAssistRecordBin {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "2")]
    pub assist_time: u32,
    #[prost(uint32, tag = "3")]
    pub target_uid: u32,
    #[prost(string, tag = "4")]
    pub target_nick_name: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub online_id: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExpeditionChallengeDataBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(bool, tag = "2")]
    pub is_finished: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExpeditionScheduleBin {
    #[prost(uint32, tag = "1")]
    pub last_refresh_time: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub candidate_path_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub path_data_list: ::prost::alloc::vec::Vec<ExpeditionPathDataBin>,
    #[prost(uint32, tag = "4")]
    pub expedition_count: u32,
    #[prost(message, repeated, tag = "5")]
    pub assist_record_list: ::prost::alloc::vec::Vec<ExpeditionAssistRecordBin>,
    #[prost(message, repeated, tag = "6")]
    pub challenge_data_list: ::prost::alloc::vec::Vec<ExpeditionChallengeDataBin>,
    #[prost(uint32, tag = "7")]
    pub expedition_finish_count: u32,
    #[prost(uint32, tag = "8")]
    pub cur_challenge_id: u32,
    #[prost(bool, tag = "9")]
    pub is_content_closed: bool,
    #[prost(uint32, repeated, tag = "10")]
    pub history_path_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlessingScanEntityData {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(uint32, tag = "2")]
    pub group_id: u32,
    #[prost(uint32, tag = "3")]
    pub config_id: u32,
    #[prost(uint32, tag = "4")]
    pub scan_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlessingRecvPicData {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(uint32, tag = "2")]
    pub pic_id: u32,
    #[prost(bool, tag = "3")]
    pub is_recv: bool,
    #[prost(uint32, tag = "4")]
    pub index: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlessingScheduleBin {
    #[prost(uint32, tag = "1")]
    pub day_index: u32,
    #[prost(message, repeated, tag = "2")]
    pub cur_day_scanned_entity_list: ::prost::alloc::vec::Vec<BlessingScanEntityData>,
    #[prost(uint32, tag = "3")]
    pub cur_day_scan_num: u32,
    #[prost(uint32, tag = "4")]
    pub up_pool_index: u32,
    #[prost(map = "uint32, uint32", tag = "5")]
    pub pic_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(bool, tag = "6")]
    pub is_activated: bool,
    #[prost(bool, tag = "7")]
    pub is_content_closed: bool,
    #[prost(uint32, tag = "8")]
    pub cur_day_scan_type_id: u32,
    #[prost(uint32, repeated, tag = "9")]
    pub pic_drop_record_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "10")]
    pub total_unfulfilled_num: u32,
    #[prost(uint32, tag = "11")]
    pub redeem_reward_num: u32,
    #[prost(message, repeated, tag = "12")]
    pub recv_pic_data_list: ::prost::alloc::vec::Vec<BlessingRecvPicData>,
    #[prost(uint32, tag = "13")]
    pub last_generated_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FleurFairBalloonBin {
    #[prost(uint32, tag = "1")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FleurFairFallBin {
    #[prost(uint32, tag = "1")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FleurFairMusicRecordBin {
    #[prost(uint32, tag = "1")]
    pub max_score: u32,
    #[prost(uint32, tag = "2")]
    pub max_combo: u32,
    #[prost(bool, tag = "3")]
    pub is_unlock: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FleurFairMusicBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub music_game_record_map: ::std::collections::HashMap<u32, FleurFairMusicRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FleurFairMinigameBin {
    #[prost(uint32, tag = "1")]
    pub minigame_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(oneof = "fleur_fair_minigame_bin::Detail", tags = "11, 12, 13")]
    pub detail: ::core::option::Option<fleur_fair_minigame_bin::Detail>,
}
/// Nested message and enum types in `FleurFairMinigameBin`.
pub mod fleur_fair_minigame_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "11")]
        BalloonBin(super::FleurFairBalloonBin),
        #[prost(message, tag = "12")]
        FallBin(super::FleurFairFallBin),
        #[prost(message, tag = "13")]
        MusicBin(super::FleurFairMusicBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FleurFairDungeonSectionDataBin {
    #[prost(uint32, tag = "1")]
    pub section_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FleurFairScheduleBin {
    #[prost(uint32, tag = "1")]
    pub credit: u32,
    #[prost(uint32, tag = "2")]
    pub token: u32,
    #[prost(bool, tag = "3")]
    pub is_content_closed: bool,
    #[prost(map = "uint32, message", tag = "4")]
    pub minigame_map: ::std::collections::HashMap<u32, FleurFairMinigameBin>,
    #[prost(map = "uint32, message", tag = "5")]
    pub dungeon_section_map: ::std::collections::HashMap<
        u32,
        FleurFairDungeonSectionDataBin,
    >,
    #[prost(bool, tag = "6")]
    pub is_dungeon_unlocked: bool,
    #[prost(uint32, tag = "7")]
    pub dungeon_punish_over_time: u32,
    #[prost(uint32, tag = "8")]
    pub obtained_token: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ArenaChallengeSchduleBin {
    #[prost(uint32, tag = "1")]
    pub world_level: u32,
    #[prost(bool, tag = "2")]
    pub is_finish_any_level: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WaterSpiritScheduleBin {
    #[prost(uint32, tag = "1")]
    pub spirit_coin: u32,
    #[prost(uint32, tag = "2")]
    pub region_search_play_id: u32,
    #[prost(uint32, tag = "3")]
    pub scene_play_id: u32,
    #[prost(bool, tag = "4")]
    pub is_phase_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannellerSlabChallengeBin {
    #[prost(uint32, tag = "1")]
    pub active_camp_index: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannellerSlabStageBin {
    #[prost(message, repeated, tag = "1")]
    pub challenge_list: ::prost::alloc::vec::Vec<ChannellerSlabChallengeBin>,
    #[prost(bool, tag = "2")]
    pub is_dungeon_done: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannellerSlabBuffSchemeBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub slot_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannellerSlabAssistBin {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(uint32, tag = "2")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "3")]
    pub avatar_level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannellerSlabBuffDataBin {
    #[prost(uint32, repeated, tag = "1")]
    pub buff_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "2")]
    pub single_buff_scheme: ::core::option::Option<ChannellerSlabBuffSchemeBin>,
    #[prost(message, optional, tag = "3")]
    pub mp_buff_scheme: ::core::option::Option<ChannellerSlabBuffSchemeBin>,
    #[prost(message, repeated, tag = "4")]
    pub assist_bin_list: ::prost::alloc::vec::Vec<ChannellerSlabAssistBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannellerSlabLoopDungeonDataBin {
    #[prost(uint32, tag = "1")]
    pub dungeon_index: u32,
    #[prost(uint32, tag = "2")]
    pub score: u32,
    #[prost(bool, tag = "3")]
    pub is_first_pass_reward_taken: bool,
    #[prost(uint32, repeated, tag = "4")]
    pub last_condition_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "5")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannellerSlabLoopDungeonStageBin {
    #[prost(message, repeated, tag = "1")]
    pub dungeon_data_list: ::prost::alloc::vec::Vec<ChannellerSlabLoopDungeonDataBin>,
    #[prost(uint32, tag = "2")]
    pub last_difficulty_id: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub taken_reward_index_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "4")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannellerSlabScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_list: ::prost::alloc::vec::Vec<ChannellerSlabStageBin>,
    #[prost(message, optional, tag = "2")]
    pub buff_data: ::core::option::Option<ChannellerSlabBuffDataBin>,
    #[prost(message, optional, tag = "3")]
    pub loop_dungeon_stage: ::core::option::Option<ChannellerSlabLoopDungeonStageBin>,
    #[prost(uint32, tag = "4")]
    pub tokens: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MistTrialLevelBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub open_time: u32,
    #[prost(uint32, tag = "4")]
    pub try_times: u32,
    #[prost(uint32, tag = "5")]
    pub success_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MistTrialScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub level_bin_list: ::prost::alloc::vec::Vec<MistTrialLevelBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HideAndSeekScheduleBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub hider_slot_skill_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub hunter_slot_skill_map: ::std::collections::HashMap<u32, u32>,
    #[prost(bool, tag = "3")]
    pub is_play_open: bool,
    #[prost(uint32, tag = "4")]
    pub hider_count: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub open_map_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FindHilichurlScheduleBin {
    #[prost(uint32, tag = "1")]
    pub finished_day_index: u32,
    #[prost(bool, tag = "2")]
    pub is_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SummerTimeStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SummerTimeSprintBoatBin {
    #[prost(uint32, tag = "1")]
    pub best_score: u32,
    #[prost(bool, tag = "2")]
    pub is_touched: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SummerTimeScheduleBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub stage_bin_map: ::std::collections::HashMap<u32, SummerTimeStageBin>,
    #[prost(bool, tag = "2")]
    pub is_content_closed: bool,
    #[prost(uint32, repeated, tag = "3")]
    pub disable_float_signal_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub unlcoked_mist_zone_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub last_float_signal_id: u32,
    #[prost(uint32, tag = "6")]
    pub next_float_signal_id: u32,
    #[prost(uint32, tag = "7")]
    pub draft_wood: u32,
    #[prost(uint32, tag = "8")]
    pub mini_harpastum: u32,
    #[prost(message, repeated, tag = "9")]
    pub sprint_boat_list: ::prost::alloc::vec::Vec<SummerTimeSprintBoatBin>,
    #[prost(bool, tag = "10")]
    pub is_sea_mist_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BounceConjuringChapterBin {
    #[prost(uint32, tag = "1")]
    pub chapter_id: u32,
    #[prost(uint32, tag = "2")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BounceConjuringScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub chapter_list: ::prost::alloc::vec::Vec<BounceConjuringChapterBin>,
    #[prost(bool, tag = "2")]
    pub is_content_closed: bool,
    #[prost(uint32, tag = "3")]
    pub coin: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BuoyantCombatDailyRecordBin {
    #[prost(uint32, tag = "1")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BuoyantCombatScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub daily_record_list: ::prost::alloc::vec::Vec<BuoyantCombatDailyRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SummerTimeDungeonBin {
    #[prost(uint32, tag = "1")]
    pub dungeon_id: u32,
    #[prost(uint32, tag = "2")]
    pub taken_chest_count: u32,
    #[prost(uint32, tag = "3")]
    pub taken_shell_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EchoShellScheduleBin {
    #[prost(uint32, repeated, tag = "1")]
    pub taken_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "2")]
    pub taken_voice_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub summer_time_dungeon_list: ::prost::alloc::vec::Vec<SummerTimeDungeonBin>,
    #[prost(uint32, repeated, tag = "4")]
    pub pass_dungeon_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChessScheduleBin {
    #[prost(uint32, tag = "1")]
    pub level: u32,
    #[prost(uint32, tag = "2")]
    pub exp: u32,
    #[prost(bool, tag = "3")]
    pub is_teach_dungeon_finished: bool,
    #[prost(map = "uint32, uint32", tag = "4")]
    pub daily_obtained_exp_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, tag = "5")]
    pub coin: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub finished_map_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "7")]
    pub punish_over_time: u32,
    #[prost(bool, tag = "8")]
    pub is_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlitzRushStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlitzRushParkourLevelRecordBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub best_record: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlitzRushScheduleBin {
    #[prost(uint32, tag = "1")]
    pub coin_a: u32,
    #[prost(uint32, tag = "2")]
    pub coin_b: u32,
    #[prost(bool, tag = "3")]
    pub is_content_closed: bool,
    #[prost(message, repeated, tag = "4")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<BlitzRushStageBin>,
    #[prost(message, repeated, tag = "5")]
    pub parkour_level_record_list: ::prost::alloc::vec::Vec<
        BlitzRushParkourLevelRecordBin,
    >,
    #[prost(bool, tag = "6")]
    pub is_dungeon_unlocked: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SumoAvatarBin {
    #[prost(bool, tag = "1")]
    pub is_trial: bool,
    #[prost(uint64, tag = "2")]
    pub avatar_id: u64,
    #[prost(uint64, tag = "3")]
    pub in_dungeon_guid: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SumoTeamBin {
    #[prost(message, repeated, tag = "1")]
    pub avatar_bin_list: ::prost::alloc::vec::Vec<SumoAvatarBin>,
    #[prost(uint32, repeated, tag = "2")]
    pub skill_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SumoStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(uint32, tag = "2")]
    pub max_score: u32,
    #[prost(bool, tag = "3")]
    pub is_open: bool,
    #[prost(message, repeated, tag = "4")]
    pub team_list: ::prost::alloc::vec::Vec<SumoTeamBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SumoScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<SumoStageBin>,
    #[prost(uint32, tag = "2")]
    pub difficulty_id: u32,
    #[prost(uint32, tag = "3")]
    pub last_stage_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LunaRiteHintPointBin {
    #[prost(uint32, tag = "1")]
    pub area_id: u32,
    #[prost(uint32, tag = "2")]
    pub group_id: u32,
    #[prost(uint32, tag = "3")]
    pub config_id: u32,
    #[prost(uint32, tag = "4")]
    pub r#type: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LunaRiteAreaBin {
    #[prost(uint32, tag = "1")]
    pub area_id: u32,
    #[prost(uint32, tag = "2")]
    pub finish_battle_id: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub sacrifice_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub sacrifice_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub hint_status: u32,
    #[prost(uint32, tag = "6")]
    pub chest_searching_num: u32,
    #[prost(uint32, tag = "7")]
    pub rune_searching_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LunaRiteScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub area_bin_list: ::prost::alloc::vec::Vec<LunaRiteAreaBin>,
    #[prost(message, repeated, tag = "2")]
    pub hint_point_bin_list: ::prost::alloc::vec::Vec<LunaRiteHintPointBin>,
    #[prost(uint32, tag = "3")]
    pub atmosphere: u32,
    #[prost(uint32, tag = "4")]
    pub last_refresh_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MoonfinTrialLevelRecordBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub best_record_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MoonfinTrialScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub moonfintrial_level_record_list: ::prost::alloc::vec::Vec<
        MoonfinTrialLevelRecordBin,
    >,
    #[prost(uint32, tag = "2")]
    pub special_fish_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlantFlowerRecvFlowerDataBin {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub flower_num_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeModuleUsedActivityItemDataBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub item_count_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeUsedActivityItemDataBin {
    #[prost(message, repeated, tag = "1")]
    pub module_used_item_list: ::prost::alloc::vec::Vec<
        HomeModuleUsedActivityItemDataBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlantFlowerSeedPlantDataBin {
    #[prost(uint32, tag = "1")]
    pub seed_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub home_gather_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlantFlowerShelfDataBin {
    #[prost(uint32, tag = "1")]
    pub gadget_config_id: u32,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub used_flower_num_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlantFlowerScheduleBin {
    #[prost(uint32, tag = "1")]
    pub day_index: u32,
    #[prost(uint32, tag = "2")]
    pub last_awarded_day_index: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub seed_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, uint32", tag = "4")]
    pub wish_flower_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, repeated, tag = "5")]
    pub recv_flower_data_list: ::prost::alloc::vec::Vec<PlantFlowerRecvFlowerDataBin>,
    #[prost(bool, tag = "6")]
    pub is_content_closed: bool,
    #[prost(map = "uint32, uint32", tag = "7")]
    pub activity_used_flower_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, optional, tag = "8")]
    pub home_used_flower_data: ::core::option::Option<HomeUsedActivityItemDataBin>,
    #[prost(message, repeated, tag = "9")]
    pub seed_plant_data_list: ::prost::alloc::vec::Vec<PlantFlowerSeedPlantDataBin>,
    #[prost(message, repeated, tag = "10")]
    pub flower_shelf_data_list: ::prost::alloc::vec::Vec<PlantFlowerShelfDataBin>,
    #[prost(uint32, repeated, tag = "11")]
    pub plant_obtained_flower_type_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "12")]
    pub common_obtained_flower_type_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MusicGameRecordBin {
    #[prost(uint32, tag = "1")]
    pub max_score: u32,
    #[prost(uint32, tag = "2")]
    pub max_combo: u32,
    #[prost(bool, tag = "3")]
    pub is_unlock: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MusicGameUgcSaveBin {
    #[prost(uint64, tag = "1")]
    pub ugc_guid: u64,
    #[prost(uint32, tag = "2")]
    pub music_id: u32,
    #[prost(uint32, tag = "3")]
    pub save_idx: u32,
    #[prost(uint32, tag = "4")]
    pub save_time: u32,
    #[prost(uint32, tag = "5")]
    pub max_score: u32,
    #[prost(uint32, tag = "6")]
    pub note_count: u32,
    #[prost(uint32, tag = "7")]
    pub version: u32,
    #[prost(bool, tag = "8")]
    pub is_published: bool,
    #[prost(bool, tag = "9")]
    pub is_changed_after_publish: bool,
    #[prost(uint64, tag = "10")]
    pub import_from_ugc_guid: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MusicGameUgcSearchBin {
    #[prost(uint64, tag = "1")]
    pub ugc_guid: u64,
    #[prost(uint32, tag = "2")]
    pub music_id: u32,
    #[prost(uint32, tag = "3")]
    pub publish_time: u32,
    #[prost(uint32, tag = "4")]
    pub max_score: u32,
    #[prost(uint32, tag = "5")]
    pub note_count: u32,
    #[prost(uint32, tag = "6")]
    pub version: u32,
    #[prost(string, tag = "7")]
    pub creator_nickname: ::prost::alloc::string::String,
    #[prost(bool, tag = "8")]
    pub is_psn_platform: bool,
    #[prost(uint64, tag = "9")]
    pub import_from_ugc_guid: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MusicGameUgcPlayBin {
    #[prost(uint64, tag = "1")]
    pub ugc_guid: u64,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MusicGameScheduleBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub music_game_record_map: ::std::collections::HashMap<u32, MusicGameRecordBin>,
    #[prost(message, repeated, tag = "2")]
    pub music_game_ugc_save_bin: ::prost::alloc::vec::Vec<MusicGameUgcSaveBin>,
    #[prost(message, repeated, tag = "3")]
    pub music_game_ugc_search_bin: ::prost::alloc::vec::Vec<MusicGameUgcSearchBin>,
    #[prost(message, repeated, tag = "4")]
    pub music_game_ugc_play_bin: ::prost::alloc::vec::Vec<MusicGameUgcPlayBin>,
    #[prost(bool, tag = "5")]
    pub is_finish_all_cond_level: bool,
    #[prost(uint32, tag = "6")]
    pub cur_trans_no: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoguelikeShikigamiBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoguelikeDungeonRuneBin {
    #[prost(uint32, tag = "1")]
    pub rune_id: u32,
    #[prost(uint32, tag = "2")]
    pub available_count: u32,
    #[prost(uint32, tag = "3")]
    pub max_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoguelikeDungeonCardBin {
    #[prost(uint32, tag = "1")]
    pub card_id: u32,
    #[prost(uint32, tag = "2")]
    pub count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoguelikeDungeonCurseBin {
    #[prost(uint32, tag = "1")]
    pub curse_id: u32,
    #[prost(uint32, tag = "2")]
    pub count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoguelikeDungeonDynamicSgvBin {
    #[prost(string, tag = "1")]
    pub key: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub value: f32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoguelikeMiscBin {
    #[prost(uint32, tag = "1")]
    pub cur_dungeon_level: u32,
    #[prost(message, repeated, tag = "2")]
    pub use_rune_list: ::prost::alloc::vec::Vec<RoguelikeDungeonRuneBin>,
    #[prost(message, repeated, tag = "3")]
    pub selected_card_list: ::prost::alloc::vec::Vec<RoguelikeDungeonCardBin>,
    #[prost(uint32, repeated, tag = "4")]
    pub optional_card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub optional_card_depot_id: u32,
    #[prost(message, repeated, tag = "6")]
    pub curse_list: ::prost::alloc::vec::Vec<RoguelikeDungeonCurseBin>,
    #[prost(message, repeated, tag = "7")]
    pub dynamic_sgv_list: ::prost::alloc::vec::Vec<RoguelikeDungeonDynamicSgvBin>,
    #[prost(uint32, repeated, tag = "8")]
    pub gacha_cell_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "9")]
    pub is_optional_card_can_refresh: bool,
    #[prost(uint32, tag = "10")]
    pub card_cell_id: u32,
    #[prost(uint64, repeated, tag = "11")]
    pub noheal_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(uint32, tag = "12")]
    pub cur_rand_count: u32,
    #[prost(uint32, repeated, tag = "13")]
    pub viewed_card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "14")]
    pub viewed_curse_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint64, repeated, tag = "15")]
    pub add_talent_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(map = "uint32, uint32", tag = "16")]
    pub chosen_card_type_count_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, tag = "17")]
    pub refresh_count: u32,
    #[prost(uint32, tag = "18")]
    pub use_refresh_free_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueTeamBin {
    #[prost(uint64, repeated, tag = "1")]
    pub onstage_avatar_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(uint64, repeated, tag = "2")]
    pub backstage_avatar_guid_list: ::prost::alloc::vec::Vec<u64>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueCellBin {
    #[prost(uint32, tag = "1")]
    pub cell_id: u32,
    #[prost(uint32, tag = "2")]
    pub state: u32,
    #[prost(uint32, tag = "3")]
    pub r#type: u32,
    #[prost(uint32, tag = "4")]
    pub dungeon_id: u32,
    #[prost(map = "uint32, uint32", tag = "5")]
    pub diff_monster_pool_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, repeated, tag = "6")]
    pub guard_point_config_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueGadgetPointBin {
    #[prost(message, optional, tag = "1")]
    pub group_point_pair: ::core::option::Option<Uint32PairBin>,
    #[prost(uint32, tag = "2")]
    pub gadget_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueDungeonBin {
    #[prost(bool, tag = "1")]
    pub is_valid: bool,
    #[prost(message, optional, tag = "2")]
    pub team_bin: ::core::option::Option<RogueTeamBin>,
    #[prost(uint32, tag = "3")]
    pub stage_id: u32,
    #[prost(uint32, tag = "4")]
    pub cur_level_index: u32,
    #[prost(message, optional, tag = "5")]
    pub last_player_pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "6")]
    pub last_player_rot: ::core::option::Option<VectorBin>,
    #[prost(uint32, tag = "7")]
    pub cur_cell_id: u32,
    #[prost(map = "uint32, message", tag = "8")]
    pub rogue_cell_bin_map: ::std::collections::HashMap<u32, RogueCellBin>,
    #[prost(message, repeated, tag = "9")]
    pub brakeages_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(message, repeated, tag = "10")]
    pub trap_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(message, repeated, tag = "11")]
    pub blast_bucket_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(uint32, tag = "12")]
    pub dungeon_id: u32,
    #[prost(bool, tag = "13")]
    pub is_temp_leave: bool,
    #[prost(uint32, tag = "14")]
    pub dungeon_weight_config_id: u32,
    #[prost(uint32, repeated, tag = "15")]
    pub explored_cell_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "16")]
    pub brakeage_group_gadget_bin_list: ::prost::alloc::vec::Vec<RogueGadgetPointBin>,
    #[prost(message, repeated, tag = "17")]
    pub trap_group_gadget_bin_list: ::prost::alloc::vec::Vec<RogueGadgetPointBin>,
    #[prost(message, repeated, tag = "18")]
    pub byobu_group_gadget_bin_list: ::prost::alloc::vec::Vec<RogueGadgetPointBin>,
    #[prost(message, repeated, tag = "19")]
    pub ball_group_gadget_bin_list: ::prost::alloc::vec::Vec<RogueGadgetPointBin>,
    #[prost(bool, tag = "20")]
    pub is_ban_spring: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueFinishChallengeBin {
    #[prost(uint32, tag = "1")]
    pub cell_num: u32,
    #[prost(uint32, tag = "2")]
    pub coin_b: u32,
    #[prost(uint32, tag = "3")]
    pub coin_c: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(uint32, tag = "2")]
    pub coin_c_num: u32,
    #[prost(uint32, tag = "3")]
    pub max_passed_level: u32,
    #[prost(bool, tag = "4")]
    pub is_open: bool,
    #[prost(bool, tag = "5")]
    pub is_in_combat: bool,
    #[prost(bool, tag = "6")]
    pub is_passed: bool,
    #[prost(bool, tag = "7")]
    pub is_taken_reward: bool,
    #[prost(bool, tag = "8")]
    pub is_entering_next_level: bool,
    #[prost(bool, tag = "9")]
    pub is_explored: bool,
    #[prost(uint32, tag = "10")]
    pub cached_coin_b_num: u32,
    #[prost(uint32, tag = "11")]
    pub cached_coin_c_num: u32,
    #[prost(message, repeated, tag = "12")]
    pub dead_gadget_count_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(uint32, tag = "13")]
    pub kill_monster_count: u32,
    #[prost(uint32, tag = "14")]
    pub avatar_element_count: u32,
    #[prost(uint32, tag = "15")]
    pub avatar_count: u32,
    #[prost(bool, tag = "16")]
    pub is_used_spring: bool,
    #[prost(map = "uint32, uint32", tag = "17")]
    pub level_explore_cell_count_map: ::std::collections::HashMap<u32, u32>,
    #[prost(bool, tag = "18")]
    pub is_avatar_dead: bool,
    #[prost(map = "uint32, bool", tag = "19")]
    pub level_finish_all_challenge_map: ::std::collections::HashMap<u32, bool>,
    #[prost(uint32, tag = "20")]
    pub cur_level_index: u32,
    #[prost(map = "uint32, message", tag = "21")]
    pub finish_challenge_bin_map: ::std::collections::HashMap<
        u32,
        RogueFinishChallengeBin,
    >,
    #[prost(string, tag = "22")]
    pub transaction: ::prost::alloc::string::String,
    #[prost(map = "uint32, uint32", tag = "23")]
    pub level_time_cost_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "24")]
    pub explored_cell_type_map: ::std::collections::HashMap<u32, u32>,
    #[prost(bool, tag = "25")]
    pub has_temp_leaved: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoguelikeDungeonScheduleBin {
    #[prost(uint32, repeated, tag = "1")]
    pub rune_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "2")]
    pub shikigami_list: ::prost::alloc::vec::Vec<RoguelikeShikigamiBin>,
    #[prost(uint32, tag = "3")]
    pub coin_a: u32,
    #[prost(uint32, tag = "4")]
    pub coin_b: u32,
    #[prost(uint32, tag = "5")]
    pub coin_c: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub equipped_rune_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "7")]
    pub misc_bin: ::core::option::Option<RoguelikeMiscBin>,
    #[prost(message, repeated, tag = "8")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<RogueStageBin>,
    #[prost(message, optional, tag = "9")]
    pub dungeon_runtime_bin: ::core::option::Option<RogueDungeonBin>,
    #[prost(bool, tag = "10")]
    pub is_content_closed: bool,
    #[prost(uint32, tag = "11")]
    pub init_world_level: u32,
    #[prost(uint64, tag = "12")]
    pub trans_no_count: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WinterCampDropBin {
    #[prost(uint32, tag = "1")]
    pub config_id: u32,
    #[prost(uint32, tag = "2")]
    pub drop_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WinterCampExploreBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(bool, tag = "2")]
    pub is_finished: bool,
    #[prost(uint32, tag = "3")]
    pub drop_group_index: u32,
    #[prost(message, repeated, tag = "4")]
    pub drop_record_list: ::prost::alloc::vec::Vec<WinterCampDropBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WinterCampBattleBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(bool, tag = "2")]
    pub is_finished: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WinterCampRaceBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub max_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WinterCampRecvItemBin {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(message, repeated, tag = "2")]
    pub item_bin_list: ::prost::alloc::vec::Vec<ItemParamBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WinterCampHomeUsedItemBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub item_bin_list: ::prost::alloc::vec::Vec<ItemParamBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WinterCampSnowmanUsedItemBin {
    #[prost(uint32, tag = "1")]
    pub gadget_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub item_bin_list: ::prost::alloc::vec::Vec<ItemParamBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WinterCampScheduleBin {
    #[prost(bool, tag = "1")]
    pub is_content_closed: bool,
    #[prost(uint32, tag = "2")]
    pub coin_a: u32,
    #[prost(uint32, tag = "3")]
    pub coin_b: u32,
    #[prost(uint32, tag = "4")]
    pub drop_gen_index: u32,
    #[prost(message, optional, tag = "5")]
    pub explore_bin: ::core::option::Option<WinterCampExploreBin>,
    #[prost(message, optional, tag = "6")]
    pub battle_bin: ::core::option::Option<WinterCampBattleBin>,
    #[prost(message, repeated, tag = "7")]
    pub race_bin_list: ::prost::alloc::vec::Vec<WinterCampRaceBin>,
    #[prost(message, repeated, tag = "8")]
    pub recv_item_bin_list: ::prost::alloc::vec::Vec<WinterCampRecvItemBin>,
    #[prost(uint32, repeated, tag = "9")]
    pub wish_item_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "10")]
    pub taken_explore_reward_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "11")]
    pub taken_battle_reward_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "12")]
    pub is_race_started: bool,
    #[prost(message, repeated, tag = "13")]
    pub home_used_item_list: ::prost::alloc::vec::Vec<WinterCampHomeUsedItemBin>,
    #[prost(message, repeated, tag = "14")]
    pub snowman_used_item_list: ::prost::alloc::vec::Vec<WinterCampSnowmanUsedItemBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HachiStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_finished: bool,
    #[prost(uint32, tag = "4")]
    pub dungeon_pass_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HachiScheduleBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub stage_bin_map: ::std::collections::HashMap<u32, HachiStageBin>,
    #[prost(bool, tag = "2")]
    pub is_content_closed: bool,
    #[prost(uint32, tag = "3")]
    pub cur_finish_steal_stage_id: u32,
    #[prost(uint32, tag = "4")]
    pub cur_finish_battle_stage_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PotionLevelBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(uint32, tag = "2")]
    pub difficulty_level: u32,
    #[prost(uint32, tag = "3")]
    pub mode_id: u32,
    #[prost(uint32, tag = "4")]
    pub score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PotionStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub reset_times: u32,
    #[prost(message, repeated, tag = "4")]
    pub level_bin_list: ::prost::alloc::vec::Vec<PotionLevelBin>,
    #[prost(uint32, repeated, tag = "5")]
    pub cool_down_avatar_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "6")]
    pub cool_down_buff_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PotionScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<PotionStageBin>,
    #[prost(uint64, repeated, tag = "2")]
    pub in_dungeon_avatar_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(bool, tag = "3")]
    pub is_finish_any_level: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TanukiTravelLevelBin {
    #[prost(uint32, tag = "1")]
    pub route_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TanukiTravelScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub level_bin_list: ::prost::alloc::vec::Vec<TanukiTravelLevelBin>,
    #[prost(uint32, tag = "2")]
    pub finished_level_index: u32,
    #[prost(bool, tag = "3")]
    pub is_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SalvageBundleChallengeBin {
    #[prost(uint32, repeated, tag = "1")]
    pub finished_bundle_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SalvageScoreChallengeBin {
    #[prost(uint32, tag = "1")]
    pub salvage_challenge_id: u32,
    #[prost(uint32, tag = "2")]
    pub max_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SalvageChallengeBin {
    #[prost(uint32, tag = "1")]
    pub challenge_type: u32,
    #[prost(bool, tag = "2")]
    pub is_unlock: bool,
    #[prost(oneof = "salvage_challenge_bin::ChallengeDetail", tags = "10, 11, 12")]
    pub challenge_detail: ::core::option::Option<salvage_challenge_bin::ChallengeDetail>,
}
/// Nested message and enum types in `SalvageChallengeBin`.
pub mod salvage_challenge_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum ChallengeDetail {
        #[prost(message, tag = "10")]
        BundleInfo(super::SalvageBundleChallengeBin),
        #[prost(message, tag = "11")]
        ScoreChallengeInfo(super::SalvageScoreChallengeBin),
        #[prost(uint32, tag = "12")]
        BossChallengeId(u32),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LanternSalvageStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_finished: bool,
    #[prost(message, repeated, tag = "4")]
    pub challenge_bin_list: ::prost::alloc::vec::Vec<SalvageChallengeBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LanternRiteProjectionLevelBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(bool, tag = "2")]
    pub is_finish: bool,
    #[prost(uint32, tag = "3")]
    pub min_finish_time: u32,
    #[prost(bool, tag = "4")]
    pub is_view_tips: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LanternRiteProjectionBin {
    #[prost(uint32, repeated, tag = "2")]
    pub open_stage_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "3")]
    pub view_input_tips_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub view_switch_tips_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "5")]
    pub level_bin_list: ::prost::alloc::vec::Vec<LanternRiteProjectionLevelBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LanternRiteFireworksChallengeBin {
    #[prost(uint32, tag = "1")]
    pub challenge_id: u32,
    #[prost(uint32, tag = "2")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LanternRiteFireworksStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(message, repeated, tag = "3")]
    pub challenge_bin_list: ::prost::alloc::vec::Vec<LanternRiteFireworksChallengeBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LanternRiteFireworksBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<LanternRiteFireworksStageBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LanternRiteScheduleBin {
    #[prost(uint32, tag = "1")]
    pub coin_a: u32,
    #[prost(uint32, tag = "2")]
    pub coin_b: u32,
    #[prost(uint32, tag = "3")]
    pub coin_c: u32,
    #[prost(message, optional, tag = "4")]
    pub projection_bin: ::core::option::Option<LanternRiteProjectionBin>,
    #[prost(message, repeated, tag = "5")]
    pub salvage_stage_bin_list: ::prost::alloc::vec::Vec<LanternSalvageStageBin>,
    #[prost(bool, tag = "6")]
    pub is_mini_eldritch_dungeon_open: bool,
    #[prost(bool, tag = "7")]
    pub is_taken_skin_reward: bool,
    #[prost(map = "uint32, uint32", tag = "8")]
    pub salvage_tracking_mark_map: ::std::collections::HashMap<u32, u32>,
    #[prost(bool, tag = "9")]
    pub is_content_closed: bool,
    #[prost(message, optional, tag = "10")]
    pub fireworks_bin: ::core::option::Option<LanternRiteFireworksBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MichiaeMatsuriStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MichiaeMatsuriScheduleBin {
    #[prost(uint32, tag = "1")]
    pub statue_refresh_group_time: u32,
    #[prost(message, repeated, tag = "2")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<MichiaeMatsuriStageBin>,
    #[prost(uint32, repeated, tag = "3")]
    pub unlocked_crystal_skill_bin_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "4")]
    pub gain_crystal_exp: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub finished_challenge_group_id_bin_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BartenderTaskBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(bool, tag = "2")]
    pub is_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BartenderLevelBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub max_score: u32,
    #[prost(bool, tag = "3")]
    pub is_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BartenderScheduleBin {
    #[prost(uint32, repeated, tag = "1")]
    pub unlock_item_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "2")]
    pub unlock_formula_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub unlock_task_list: ::prost::alloc::vec::Vec<BartenderTaskBin>,
    #[prost(message, repeated, tag = "4")]
    pub unlock_level_list: ::prost::alloc::vec::Vec<BartenderLevelBin>,
    #[prost(bool, tag = "5")]
    pub is_develop_module_open: bool,
    #[prost(uint64, tag = "6")]
    pub trans_no_count: u64,
    #[prost(bool, tag = "7")]
    pub is_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriChessMapBin {
    #[prost(uint32, tag = "1")]
    pub best_score: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub equiped_card_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriChessLevelBin {
    #[prost(message, optional, tag = "1")]
    pub normal_map_data: ::core::option::Option<IrodoriChessMapBin>,
    #[prost(message, optional, tag = "2")]
    pub hard_map_data: ::core::option::Option<IrodoriChessMapBin>,
    #[prost(uint32, tag = "3")]
    pub level_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriChessBin {
    #[prost(bool, tag = "1")]
    pub is_open: bool,
    #[prost(message, repeated, tag = "2")]
    pub level_list: ::prost::alloc::vec::Vec<IrodoriChessLevelBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriFlowerShelfBin {
    #[prost(uint32, tag = "1")]
    pub gadget_id: u32,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub used_flower_count_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriFlowerBin {
    #[prost(uint32, repeated, tag = "1")]
    pub is_satisfied_theme_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "2")]
    pub shelf_data_list: ::prost::alloc::vec::Vec<IrodoriFlowerShelfBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriPoetryThemeBin {
    #[prost(uint32, tag = "1")]
    pub theme_id: u32,
    #[prost(uint32, tag = "2")]
    pub progress: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub scanned_index_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "4")]
    pub selected_line_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriPoetryBin {
    #[prost(message, repeated, tag = "1")]
    pub theme_bin_list: ::prost::alloc::vec::Vec<IrodoriPoetryThemeBin>,
    #[prost(uint32, tag = "2")]
    pub cur_theme_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriMasterLevelDetailBin {
    #[prost(uint32, tag = "1")]
    pub difficulty: u32,
    #[prost(bool, tag = "2")]
    pub is_have_try: bool,
    #[prost(bool, tag = "3")]
    pub is_finish: bool,
    #[prost(uint32, tag = "4")]
    pub min_finish_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriMasterLevelBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub level_detail_list: ::prost::alloc::vec::Vec<IrodoriMasterLevelDetailBin>,
    #[prost(bool, tag = "3")]
    pub is_cg_viewed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrodoriScheduleBin {
    #[prost(message, optional, tag = "1")]
    pub chess_data: ::core::option::Option<IrodoriChessBin>,
    #[prost(message, optional, tag = "2")]
    pub flower_data: ::core::option::Option<IrodoriFlowerBin>,
    #[prost(message, optional, tag = "3")]
    pub poetry_data: ::core::option::Option<IrodoriPoetryBin>,
    #[prost(message, repeated, tag = "4")]
    pub master_level_list: ::prost::alloc::vec::Vec<IrodoriMasterLevelBin>,
    #[prost(uint32, tag = "5")]
    pub master_transaction_no: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CrystalLinkBuffBin {
    #[prost(uint32, tag = "1")]
    pub cond_buff_id: u32,
    #[prost(uint32, tag = "2")]
    pub effect_buff_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CrystalLinkAvatarBin {
    #[prost(bool, tag = "1")]
    pub is_trial: bool,
    #[prost(uint64, tag = "2")]
    pub avatar_id: u64,
    #[prost(uint64, tag = "3")]
    pub in_dungeon_guid: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CrystalLinkTeamBin {
    #[prost(message, repeated, tag = "1")]
    pub avatar_bin_list: ::prost::alloc::vec::Vec<CrystalLinkAvatarBin>,
    #[prost(message, repeated, tag = "2")]
    pub buff_bin_list: ::prost::alloc::vec::Vec<CrystalLinkBuffBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CrystalLinkLevelBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub best_score: u32,
    #[prost(message, repeated, tag = "4")]
    pub team_bin_list: ::prost::alloc::vec::Vec<CrystalLinkTeamBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CrystalLinkScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub level_bin_list: ::prost::alloc::vec::Vec<CrystalLinkLevelBin>,
    #[prost(uint32, tag = "2")]
    pub difficulty_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PhotoPosBin {
    #[prost(uint32, tag = "1")]
    pub pos_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_view: bool,
    #[prost(bool, tag = "4")]
    pub is_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PhotoScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub photo_pos_bin_list: ::prost::alloc::vec::Vec<PhotoPosBin>,
    #[prost(bool, tag = "2")]
    pub is_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SpiceStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub success_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SpiceScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<SpiceStageBin>,
    #[prost(uint32, tag = "2")]
    pub increase_avatar_fetter_limit_times: u32,
    #[prost(uint32, tag = "3")]
    pub current_increase_avatar_fetter_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(map = "uint32, uint32", tag = "3")]
    pub target_num_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaScheduleBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub robot_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, repeated, tag = "2")]
    pub gacha_stage_bin_list: ::prost::alloc::vec::Vec<GachaStageBin>,
    #[prost(uint32, tag = "3")]
    pub item_stage: u32,
    #[prost(uint32, tag = "4")]
    pub sub_stage: u32,
    #[prost(uint32, tag = "5")]
    pub robot_finish_num: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub create_robot_vec: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "7")]
    pub hidden_robot_finish_num: u32,
    #[prost(uint32, tag = "8")]
    pub first_create_hidden_robot_id: u32,
    #[prost(uint32, tag = "9")]
    pub tech_create_robot_id: u32,
    #[prost(map = "uint32, uint32", tag = "10")]
    pub have_reward_robot_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, repeated, tag = "11")]
    pub have_get_robot_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivityRecvGiftBin {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub gift_num_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivityGiftDataBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub wish_gift_num_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, repeated, tag = "2")]
    pub recv_gift_data_list: ::prost::alloc::vec::Vec<ActivityRecvGiftBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LuminanceStoneChallengeScheduleBin {
    #[prost(bool, tag = "1")]
    pub is_content_closed: bool,
    #[prost(uint32, tag = "2")]
    pub current_stage_id: u32,
    #[prost(bool, tag = "3")]
    pub is_final_gallery_complete: bool,
    #[prost(uint32, tag = "4")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueDiaryStageRecordBin {
    #[prost(uint32, tag = "1")]
    pub difficulty: u32,
    #[prost(uint32, tag = "2")]
    pub round: u32,
    #[prost(bool, tag = "3")]
    pub is_finish: bool,
    #[prost(uint32, tag = "4")]
    pub finish_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueDiaryStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_have_try: bool,
    #[prost(message, optional, tag = "3")]
    pub record_bin: ::core::option::Option<RogueDiaryStageRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueDiaryRoomConfigPairBin {
    #[prost(uint32, tag = "1")]
    pub room_config_id: u32,
    #[prost(bool, tag = "2")]
    pub is_can_hard: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueDiaryAvtarBin {
    #[prost(uint64, tag = "1")]
    pub guid: u64,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(float, tag = "3")]
    pub hp: f32,
    #[prost(float, tag = "4")]
    pub energy: f32,
    #[prost(uint32, tag = "5")]
    pub trial_config_id: u32,
    #[prost(uint32, tag = "6")]
    pub round: u32,
    #[prost(uint32, tag = "7")]
    pub life_state: u32,
    #[prost(bool, tag = "8")]
    pub is_ban: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueDiaryProgressBin {
    #[prost(bool, tag = "1")]
    pub is_have_progress: bool,
    #[prost(bool, tag = "2")]
    pub is_have_enter_dungeon: bool,
    #[prost(uint32, tag = "3")]
    pub stage_id: u32,
    #[prost(uint32, tag = "4")]
    pub dungeon_id: u32,
    #[prost(uint32, tag = "5")]
    pub difficulty: u32,
    #[prost(uint32, tag = "6")]
    pub cur_round: u32,
    #[prost(bool, tag = "7")]
    pub is_round_fight_finish: bool,
    #[prost(message, repeated, tag = "9")]
    pub room_config_list: ::prost::alloc::vec::Vec<RogueDiaryRoomConfigPairBin>,
    #[prost(uint32, repeated, tag = "10")]
    pub optional_card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "11")]
    pub chosen_card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "12")]
    pub is_round_repair_finish: bool,
    #[prost(uint64, repeated, tag = "13")]
    pub onstage_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(message, repeated, tag = "14")]
    pub rogue_avatar_list: ::prost::alloc::vec::Vec<RogueDiaryAvtarBin>,
    #[prost(uint64, repeated, tag = "15")]
    pub optional_tired_guid_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(uint32, tag = "16")]
    pub coin: u32,
    #[prost(uint32, tag = "17")]
    pub time: u32,
    #[prost(uint32, tag = "18")]
    pub transaction: u32,
    #[prost(uint32, repeated, tag = "19")]
    pub resume_optional_card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "20")]
    pub resume_chosen_card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "21")]
    pub resume_select_card_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RogueDiaryScheduleBin {
    #[prost(bool, tag = "1")]
    pub is_content_closed: bool,
    #[prost(message, repeated, tag = "2")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<RogueDiaryStageBin>,
    #[prost(message, optional, tag = "3")]
    pub progress_bin: ::core::option::Option<RogueDiaryProgressBin>,
    #[prost(uint32, tag = "4")]
    pub coin: u32,
    #[prost(uint32, tag = "5")]
    pub transaction: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SummerTimeV2DungeonStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_prev_dungeon_succeed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SummerTimeV2BoatStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SummerTimeV2ScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub dungeon_stage_bin_list: ::prost::alloc::vec::Vec<SummerTimeV2DungeonStageBin>,
    #[prost(message, repeated, tag = "2")]
    pub boat_stage_bin_list: ::prost::alloc::vec::Vec<SummerTimeV2BoatStageBin>,
    #[prost(bool, tag = "3")]
    pub is_content_closed: bool,
    #[prost(uint32, tag = "4")]
    pub coin: u32,
    #[prost(uint32, tag = "5")]
    pub taken_reward_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IslandPartyStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IslandPartyScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<IslandPartyStageBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GearStageBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_finished: bool,
    #[prost(uint32, tag = "4")]
    pub shortest_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JigsawPictureDataBin {
    #[prost(bool, tag = "1")]
    pub is_open: bool,
    #[prost(bool, tag = "2")]
    pub is_finished: bool,
    #[prost(uint32, tag = "3")]
    pub shortest_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GearScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub level_bin_list: ::prost::alloc::vec::Vec<GearStageBin>,
    #[prost(message, optional, tag = "2")]
    pub jigsaw_picture_data: ::core::option::Option<JigsawPictureDataBin>,
    #[prost(uint32, tag = "3")]
    pub player_finish_gear_level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocencePhotoStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_finished: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocencePhotoObjectBin {
    #[prost(uint32, tag = "1")]
    pub object_id: u32,
    #[prost(uint32, tag = "2")]
    pub param: u32,
    #[prost(uint32, tag = "3")]
    pub finish_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocencePhotoBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<GravenInnocencePhotoStageBin>,
    #[prost(message, repeated, tag = "2")]
    pub object_bin_list: ::prost::alloc::vec::Vec<GravenInnocencePhotoObjectBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocenceCampStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub level_id: u32,
    #[prost(bool, tag = "4")]
    pub is_finished: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocenceCampBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<GravenInnocenceCampStageBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocenceRaceLevelBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub max_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocenceRaceBin {
    #[prost(message, repeated, tag = "1")]
    pub level_bin_list: ::prost::alloc::vec::Vec<GravenInnocenceRaceLevelBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocenceCarveStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocenceCarveUsedItemBin {
    #[prost(uint32, tag = "1")]
    pub gadget_config_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub need_item_bin_list: ::prost::alloc::vec::Vec<ItemParamBin>,
    #[prost(message, repeated, tag = "3")]
    pub pass_item_bin_list: ::prost::alloc::vec::Vec<ItemParamBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocenceCarveBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<GravenInnocenceCarveStageBin>,
    #[prost(message, repeated, tag = "2")]
    pub used_item_bin_list: ::prost::alloc::vec::Vec<GravenInnocenceCarveUsedItemBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GravenInnocenceScheduleBin {
    #[prost(message, optional, tag = "1")]
    pub photo_bin: ::core::option::Option<GravenInnocencePhotoBin>,
    #[prost(message, optional, tag = "2")]
    pub camp_bin: ::core::option::Option<GravenInnocenceCampBin>,
    #[prost(uint32, tag = "3")]
    pub coin_a: u32,
    #[prost(uint32, tag = "4")]
    pub coin_b: u32,
    #[prost(message, optional, tag = "5")]
    pub race_bin: ::core::option::Option<GravenInnocenceRaceBin>,
    #[prost(message, optional, tag = "6")]
    pub carve_bin: ::core::option::Option<GravenInnocenceCarveBin>,
    #[prost(bool, tag = "7")]
    pub is_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InstableSprayStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(uint32, tag = "2")]
    pub max_score: u32,
    #[prost(bool, tag = "3")]
    pub is_open: bool,
    #[prost(message, repeated, tag = "4")]
    pub team_info_bin_list: ::prost::alloc::vec::Vec<InstableSprayTeamInfoBin>,
    #[prost(bool, tag = "5")]
    pub is_finished: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InstableSprayScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<InstableSprayStageBin>,
    #[prost(uint64, repeated, tag = "2")]
    pub in_dungeon_guid_list: ::prost::alloc::vec::Vec<u64>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InstableSprayAvatarInfoBin {
    #[prost(uint64, tag = "1")]
    pub avatar_id: u64,
    #[prost(bool, tag = "2")]
    pub is_trial: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InstableSprayTeamInfoBin {
    #[prost(message, repeated, tag = "1")]
    pub avatar_info_bin_list: ::prost::alloc::vec::Vec<InstableSprayAvatarInfoBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MuqadasPotionLevelDataBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub max_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MuqadasPotionScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub level_bin_list: ::prost::alloc::vec::Vec<MuqadasPotionLevelDataBin>,
    #[prost(uint64, repeated, tag = "2")]
    pub in_dungeon_avatar_guid_list: ::prost::alloc::vec::Vec<u64>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TreasureSeelieRegionBin {
    #[prost(uint32, tag = "1")]
    pub open_day: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, repeated, tag = "3")]
    pub opened_chest_config_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "4")]
    pub is_done: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TreasureSeelieScheduleBin {
    #[prost(uint32, tag = "1")]
    pub coin_num: u32,
    #[prost(message, repeated, tag = "2")]
    pub region_list: ::prost::alloc::vec::Vec<TreasureSeelieRegionBin>,
    #[prost(bool, tag = "3")]
    pub is_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RockBoardExploreStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RockBoardExploreScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<RockBoardExploreStageBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageHuntingStageDataBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_finish: bool,
    #[prost(uint32, tag = "4")]
    pub record_value: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintagePresentLevelDataBin {
    #[prost(uint32, tag = "1")]
    pub present_id: u32,
    #[prost(uint32, tag = "2")]
    pub stage_id: u32,
    #[prost(bool, tag = "3")]
    pub is_open: bool,
    #[prost(bool, tag = "4")]
    pub is_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintagePresentStageDataBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(bool, tag = "3")]
    pub is_finish: bool,
    #[prost(map = "uint32, message", tag = "4")]
    pub present_level_map: ::std::collections::HashMap<u32, VintagePresentLevelDataBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageBoothUsedItemDataBin {
    #[prost(uint32, tag = "1")]
    pub gadget_id: u32,
    #[prost(bool, tag = "3")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageCampChallengeLevelDataBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(uint32, tag = "2")]
    pub stage_id: u32,
    #[prost(bool, tag = "3")]
    pub is_open: bool,
    #[prost(bool, tag = "4")]
    pub is_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageCampChallengeStageDataBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(map = "uint32, message", tag = "2")]
    pub camp_level_map: ::std::collections::HashMap<
        u32,
        VintageCampChallengeLevelDataBin,
    >,
    #[prost(bool, tag = "3")]
    pub is_open: bool,
    #[prost(bool, tag = "4")]
    pub is_finish: bool,
    #[prost(uint32, tag = "5")]
    pub max_finished_level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageTraderDealBin {
    #[prost(uint32, tag = "1")]
    pub trader_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub deal_item_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageBargainBin {
    #[prost(uint32, tag = "1")]
    pub bargain_id: u32,
    #[prost(uint32, tag = "2")]
    pub price: u32,
    #[prost(bool, tag = "3")]
    pub is_succ: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageStoreAttrRandomPoolBin {
    #[prost(uint32, tag = "1")]
    pub template_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub pool_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageStoreBin {
    #[prost(uint32, tag = "1")]
    pub store_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub attr_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub attr_random_pool_list: ::prost::alloc::vec::Vec<VintageStoreAttrRandomPoolBin>,
    #[prost(uint32, repeated, tag = "4")]
    pub aim_attr_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub slot_count: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub chosen_skill_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageNpcEventBin {
    #[prost(uint32, tag = "1")]
    pub event_id: u32,
    #[prost(uint32, tag = "2")]
    pub max_effective_round: u32,
    #[prost(bool, tag = "3")]
    pub is_finish: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VintageScheduleBin {
    #[prost(uint32, tag = "1")]
    pub popularity: u32,
    #[prost(map = "uint32, message", tag = "2")]
    pub hunting_stage_map: ::std::collections::HashMap<u32, VintageHuntingStageDataBin>,
    #[prost(map = "uint32, message", tag = "3")]
    pub present_stage_map: ::std::collections::HashMap<u32, VintagePresentStageDataBin>,
    #[prost(message, optional, tag = "4")]
    pub booth_data: ::core::option::Option<VintageBoothUsedItemDataBin>,
    #[prost(map = "uint32, message", tag = "5")]
    pub camp_stage_map: ::std::collections::HashMap<
        u32,
        VintageCampChallengeStageDataBin,
    >,
    #[prost(uint32, tag = "6")]
    pub collected_item_num: u32,
    #[prost(bool, tag = "7")]
    pub is_content_closed: bool,
    #[prost(uint32, tag = "8")]
    pub market_coin_a: u32,
    #[prost(uint32, tag = "9")]
    pub market_coin_b: u32,
    #[prost(uint32, tag = "10")]
    pub market_coin_c: u32,
    #[prost(bool, tag = "11")]
    pub is_market_content_open: bool,
    #[prost(bool, tag = "12")]
    pub is_market_content_finish: bool,
    #[prost(message, repeated, tag = "13")]
    pub trader_list: ::prost::alloc::vec::Vec<VintageTraderDealBin>,
    #[prost(message, repeated, tag = "14")]
    pub bargain_list: ::prost::alloc::vec::Vec<VintageBargainBin>,
    #[prost(message, repeated, tag = "15")]
    pub store_list: ::prost::alloc::vec::Vec<VintageStoreBin>,
    #[prost(uint32, tag = "16")]
    pub store_round: u32,
    #[prost(uint32, tag = "17")]
    pub prev_coin_b_num: u32,
    #[prost(uint32, tag = "18")]
    pub prev_coin_c_num: u32,
    #[prost(bool, tag = "19")]
    pub is_round_tips_view: bool,
    #[prost(uint32, repeated, tag = "20")]
    pub taken_reward_present_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "21")]
    pub is_store_content_finish: bool,
    #[prost(bool, tag = "22")]
    pub is_store_content_interrupt: bool,
    #[prost(message, repeated, tag = "23")]
    pub env_event_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(message, repeated, tag = "24")]
    pub npc_event_list: ::prost::alloc::vec::Vec<VintageNpcEventBin>,
    #[prost(uint32, repeated, tag = "25")]
    pub skill_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "26")]
    pub viewed_skill_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "27")]
    pub is_strategy_module_open: bool,
    #[prost(bool, tag = "28")]
    pub is_help_module_open: bool,
    #[prost(uint32, tag = "29")]
    pub next_can_use_help_round: u32,
    #[prost(uint32, tag = "30")]
    pub help_skill_id: u32,
    #[prost(map = "uint32, message", tag = "31")]
    pub dividend_res_map: ::std::collections::HashMap<u32, Uint32PairBin>,
    #[prost(uint32, tag = "32")]
    pub dividend_id: u32,
    #[prost(uint32, tag = "33")]
    pub dividend_reward_count: u32,
    #[prost(uint32, tag = "34")]
    pub hunting_boss_weak_count: u32,
    #[prost(uint32, repeated, tag = "35")]
    pub store_round_income_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WindFieldScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<WindFieldStageBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WindFieldStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivityGeneralCoinBin {
    #[prost(uint32, tag = "1")]
    pub coin_type: u32,
    #[prost(uint32, tag = "2")]
    pub coin_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FungusBin {
    #[prost(uint32, tag = "1")]
    pub fungus_id: u32,
    #[prost(uint32, tag = "2")]
    pub name_id: u32,
    #[prost(bool, tag = "3")]
    pub is_cultivate: bool,
    #[prost(uint32, tag = "4")]
    pub capture_order: u32,
    #[prost(uint32, tag = "5")]
    pub min_cultivate_step: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FungusPlotStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FungusTrainingDungeonBin {
    #[prost(uint32, tag = "1")]
    pub dungeon_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub best_score: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FungusFighterMonsterBin {
    #[prost(uint32, tag = "1")]
    pub fungus_id: u32,
    #[prost(float, tag = "2")]
    pub cur_hp_percentage: f32,
    #[prost(bool, tag = "3")]
    pub is_alive: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FungusTrainingShapshotDataBin {
    #[prost(uint32, tag = "1")]
    pub dungeon_id: u32,
    #[prost(uint32, tag = "2")]
    pub skill_count: u32,
    #[prost(uint32, tag = "3")]
    pub cur_round: u32,
    #[prost(message, repeated, tag = "4")]
    pub monster_bin_list: ::prost::alloc::vec::Vec<FungusFighterMonsterBin>,
    #[prost(uint32, repeated, tag = "5")]
    pub choosen_monster_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "6")]
    pub backup_monster_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "7")]
    pub total_used_time: u32,
    #[prost(uint32, tag = "8")]
    pub rand_index: u32,
    #[prost(uint32, repeated, tag = "9")]
    pub monster_pool_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(string, tag = "10")]
    pub level_transaction: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FungusTrainingProgressBin {
    #[prost(message, repeated, tag = "1")]
    pub fungus_snapshot_data_list: ::prost::alloc::vec::Vec<
        FungusTrainingShapshotDataBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FungusFighterScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub fungus_bin_list: ::prost::alloc::vec::Vec<FungusBin>,
    #[prost(message, repeated, tag = "2")]
    pub fungus_plot_stage_bin_list: ::prost::alloc::vec::Vec<FungusPlotStageBin>,
    #[prost(uint32, tag = "3")]
    pub capture_order: u32,
    #[prost(message, repeated, tag = "5")]
    pub fungus_training_dungeon_bin_list: ::prost::alloc::vec::Vec<
        FungusTrainingDungeonBin,
    >,
    #[prost(uint32, repeated, tag = "6")]
    pub unlock_camp_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "7")]
    pub unlock_cultivate_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "8")]
    pub fungus_training_progress_bin: ::core::option::Option<FungusTrainingProgressBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharAmusementStageBin {
    #[prost(uint32, tag = "1")]
    pub stage_id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
    #[prost(uint32, tag = "3")]
    pub finish_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CharAmusementScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub stage_bin_list: ::prost::alloc::vec::Vec<CharAmusementStageBin>,
    #[prost(uint64, repeated, tag = "2")]
    pub in_dungeon_guid_list: ::prost::alloc::vec::Vec<u64>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EffigyChallengeV2LevelBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(uint32, tag = "2")]
    pub best_cost_time: u32,
    #[prost(bool, tag = "3")]
    pub is_level_open: bool,
    #[prost(uint32, tag = "4")]
    pub challenge_mode_difficulty_open: u32,
    #[prost(uint32, tag = "5")]
    pub challenge_mode_last_choose_skill_no: u32,
    #[prost(uint32, tag = "6")]
    pub challenge_mode_difficulty_pass: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EffigyChallengeV2ScheduleBin {
    #[prost(message, repeated, tag = "1")]
    pub level_bin_list: ::prost::alloc::vec::Vec<EffigyChallengeV2LevelBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivityScheduleBin {
    #[prost(
        oneof = "activity_schedule_bin::Detail",
        tags = "102, 103, 104, 112, 113, 114, 115, 116, 120, 121, 130, 131, 132, 140, 141, 142, 151, 152, 153, 154, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198"
    )]
    pub detail: ::core::option::Option<activity_schedule_bin::Detail>,
}
/// Nested message and enum types in `ActivityScheduleBin`.
pub mod activity_schedule_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Detail {
        #[prost(message, tag = "102")]
        SalesmanScheduleBin(super::SalesmanScheduleBin),
        #[prost(message, tag = "103")]
        TrialAvatarBin(super::TrialAvatarScheduleBin),
        #[prost(message, tag = "104")]
        DeliveryBin(super::DeliveryScheduleBin),
        #[prost(message, tag = "112")]
        CrucibleBin(super::CrucibleScheduleBin),
        #[prost(message, tag = "113")]
        AsterBin(super::AsterScheduleBin),
        #[prost(message, tag = "114")]
        FlightBin(super::FlightScheduleBin),
        #[prost(message, tag = "115")]
        DragonSpineBin(super::DragonSpineScheduleBin),
        #[prost(message, tag = "116")]
        EffigyBin(super::EffigyScheduleBin),
        #[prost(message, tag = "120")]
        TreasureMapBin(super::TreasureMapScheduleBin),
        #[prost(message, tag = "121")]
        SalesmanMpBin(super::SalesmanMpScheduleBin),
        #[prost(message, tag = "130")]
        BlessingBin(super::BlessingScheduleBin),
        #[prost(message, tag = "131")]
        SeaLampBin(super::SeaLampScheduleDataBin),
        #[prost(message, tag = "132")]
        ExpeditionBin(super::ExpeditionScheduleBin),
        #[prost(message, tag = "140")]
        FleurFairBin(super::FleurFairScheduleBin),
        #[prost(message, tag = "141")]
        ArenaChallengeBin(super::ArenaChallengeSchduleBin),
        #[prost(message, tag = "142")]
        WaterSpiritBin(super::WaterSpiritScheduleBin),
        #[prost(message, tag = "151")]
        ChannellerSlabBin(super::ChannellerSlabScheduleBin),
        #[prost(message, tag = "152")]
        HideAndSeekBin(super::HideAndSeekScheduleBin),
        #[prost(message, tag = "153")]
        MistTrialBin(super::MistTrialScheduleBin),
        #[prost(message, tag = "154")]
        FindHilichurlBin(super::FindHilichurlScheduleBin),
        #[prost(message, tag = "160")]
        SummerTimeBin(super::SummerTimeScheduleBin),
        #[prost(message, tag = "161")]
        BuoyantCombatBin(super::BuoyantCombatScheduleBin),
        #[prost(message, tag = "162")]
        BounceConjuringBin(super::BounceConjuringScheduleBin),
        #[prost(message, tag = "163")]
        EchoShellBin(super::EchoShellScheduleBin),
        #[prost(message, tag = "164")]
        BlitzRushBin(super::BlitzRushScheduleBin),
        #[prost(message, tag = "165")]
        ChessBin(super::ChessScheduleBin),
        #[prost(message, tag = "166")]
        SumoBin(super::SumoScheduleBin),
        #[prost(message, tag = "167")]
        LunaRiteBin(super::LunaRiteScheduleBin),
        #[prost(message, tag = "168")]
        MoonfinTrialBin(super::MoonfinTrialScheduleBin),
        #[prost(message, tag = "169")]
        PlantFlowerBin(super::PlantFlowerScheduleBin),
        #[prost(message, tag = "170")]
        MusicGameBin(super::MusicGameScheduleBin),
        #[prost(message, tag = "171")]
        RoguelikeDungeonBin(super::RoguelikeDungeonScheduleBin),
        #[prost(message, tag = "172")]
        WinterCampBin(super::WinterCampScheduleBin),
        #[prost(message, tag = "173")]
        HachiBin(super::HachiScheduleBin),
        #[prost(message, tag = "174")]
        TanukiTravelBin(super::TanukiTravelScheduleBin),
        #[prost(message, tag = "175")]
        LanternRiteBin(super::LanternRiteScheduleBin),
        #[prost(message, tag = "176")]
        PotionBin(super::PotionScheduleBin),
        #[prost(message, tag = "177")]
        MichiaeMatsuriBin(super::MichiaeMatsuriScheduleBin),
        #[prost(message, tag = "178")]
        BartenderBin(super::BartenderScheduleBin),
        #[prost(message, tag = "179")]
        IrodoriBin(super::IrodoriScheduleBin),
        #[prost(message, tag = "180")]
        CrystalLinkBin(super::CrystalLinkScheduleBin),
        #[prost(message, tag = "181")]
        PhotoBin(super::PhotoScheduleBin),
        #[prost(message, tag = "182")]
        SpiceBin(super::SpiceScheduleBin),
        #[prost(message, tag = "183")]
        GachaBin(super::GachaScheduleBin),
        #[prost(message, tag = "184")]
        LuminanceStoneChallengeBin(super::LuminanceStoneChallengeScheduleBin),
        #[prost(message, tag = "185")]
        RogueDiaryBin(super::RogueDiaryScheduleBin),
        #[prost(message, tag = "186")]
        SummerTimeV2Bin(super::SummerTimeV2ScheduleBin),
        #[prost(message, tag = "187")]
        IslandPartyBin(super::IslandPartyScheduleBin),
        #[prost(message, tag = "188")]
        GearBin(super::GearScheduleBin),
        #[prost(message, tag = "189")]
        GravenInnocenceBin(super::GravenInnocenceScheduleBin),
        #[prost(message, tag = "190")]
        InstableSprayBin(super::InstableSprayScheduleBin),
        #[prost(message, tag = "191")]
        MuqadasPotionBin(super::MuqadasPotionScheduleBin),
        #[prost(message, tag = "192")]
        TreasureSeelieBin(super::TreasureSeelieScheduleBin),
        #[prost(message, tag = "193")]
        RockBoardExploreBin(super::RockBoardExploreScheduleBin),
        #[prost(message, tag = "194")]
        VintageBin(super::VintageScheduleBin),
        #[prost(message, tag = "195")]
        WindFieldBin(super::WindFieldScheduleBin),
        #[prost(message, tag = "196")]
        FungusFighterBin(super::FungusFighterScheduleBin),
        #[prost(message, tag = "197")]
        CharAmusementBin(super::CharAmusementScheduleBin),
        #[prost(message, tag = "198")]
        EffigyChallengeBin(super::EffigyChallengeV2ScheduleBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivityBin {
    #[prost(uint32, tag = "1")]
    pub schedule_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub meet_cond_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, bool", tag = "3")]
    pub cond_state_map: ::std::collections::HashMap<u32, bool>,
    #[prost(bool, tag = "4")]
    pub is_play_open_anim: bool,
    #[prost(bool, tag = "5")]
    pub is_settled: bool,
    #[prost(uint32, repeated, tag = "6")]
    pub taken_watcher_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "7")]
    pub finished_watcher_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "8")]
    pub schedule_bin: ::core::option::Option<ActivityScheduleBin>,
    #[prost(bool, tag = "9")]
    pub is_started: bool,
    #[prost(uint32, repeated, tag = "10")]
    pub activated_activity_sale_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "11")]
    pub selected_avatar_reward_id: u32,
    #[prost(uint32, tag = "12")]
    pub score_limit: u32,
    #[prost(uint32, tag = "13")]
    pub cur_score: u32,
    #[prost(uint32, repeated, tag = "14")]
    pub taken_score_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "15")]
    pub is_notify_mail_sent: bool,
    #[prost(message, repeated, tag = "16")]
    pub disable_transfer_point_interaction_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(bool, tag = "17")]
    pub is_banner_cleared: bool,
    #[prost(uint32, tag = "18")]
    pub start_world_level: u32,
    #[prost(bool, tag = "20")]
    pub is_quick_open: bool,
    #[prost(uint32, repeated, tag = "21")]
    pub expired_cond_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, uint32", tag = "22")]
    pub quest_content_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, optional, tag = "23")]
    pub gift_data_bin: ::core::option::Option<ActivityGiftDataBin>,
    #[prost(map = "uint32, uint32", tag = "24")]
    pub activity_push_tips_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, repeated, tag = "25")]
    pub activity_general_coin_list: ::prost::alloc::vec::Vec<ActivityGeneralCoinBin>,
    #[prost(bool, tag = "26")]
    pub is_common_content_closed: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerActivityCompBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub activity_bin_map: ::std::collections::HashMap<u32, ActivityBin>,
    #[prost(uint32, tag = "2")]
    pub fly_sea_lamp_num: u32,
    #[prost(uint32, tag = "3")]
    pub fly_sea_lamp_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerMailBin {
    #[prost(uint32, tag = "1")]
    pub mail_id: u32,
    #[prost(message, optional, tag = "2")]
    pub mail_bin: ::core::option::Option<MailBin>,
    #[prost(bool, tag = "3")]
    pub is_read: bool,
    #[prost(bool, tag = "4")]
    pub is_attachment_got: bool,
    #[prost(uint32, tag = "5")]
    pub source_type: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerMailCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub has_take_attachment_mail_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint64, message", tag = "2")]
    pub wait_add_mail_map: ::std::collections::HashMap<u64, MailBin>,
    #[prost(map = "uint32, uint32", tag = "3")]
    pub action_seq_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "string, message", tag = "4")]
    pub new_wait_add_mail_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        MailBin,
    >,
    #[prost(bool, tag = "5")]
    pub is_collectible_mail_transfered: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopGoodsRecordBin {
    #[prost(uint32, tag = "1")]
    pub goods_id: u32,
    #[prost(uint32, tag = "2")]
    pub bought_num: u32,
    #[prost(fixed32, tag = "3")]
    pub last_buy_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShopRecordBin {
    #[prost(uint32, tag = "1")]
    pub shop_type: u32,
    #[prost(message, repeated, tag = "2")]
    pub goods_record_list: ::prost::alloc::vec::Vec<ShopGoodsRecordBin>,
    #[prost(message, repeated, tag = "3")]
    pub history_goods_record_list: ::prost::alloc::vec::Vec<ShopGoodsRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerShopCompBin {
    #[prost(message, repeated, tag = "1")]
    pub shop_record_list: ::prost::alloc::vec::Vec<ShopRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaItemTypeDataBin {
    #[prost(uint32, tag = "1")]
    pub last_gacha_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaItemParentTypeDataBin {
    #[prost(uint32, tag = "1")]
    pub last_gacha_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaGuaranteeDataBin {
    #[prost(uint32, tag = "1")]
    pub gacha_rule_id: u32,
    #[prost(uint32, tag = "2")]
    pub last_gacha_guarantee_times: u32,
    #[prost(bool, tag = "3")]
    pub is_cur_schedule_triggered: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaUpDataBin {
    #[prost(uint32, tag = "1")]
    pub gacha_no_up_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaRecordBin {
    #[prost(uint32, tag = "1")]
    pub gacha_type: u32,
    #[prost(uint32, tag = "2")]
    pub cur_schedule_id: u32,
    #[prost(uint32, tag = "3")]
    pub total_gacha_times: u32,
    #[prost(map = "uint32, message", tag = "4")]
    pub gacha_guarantee_map: ::std::collections::HashMap<u32, GachaGuaranteeDataBin>,
    #[prost(uint32, tag = "5")]
    pub cur_schedule_total_gacha_times: u32,
    #[prost(map = "uint32, message", tag = "6")]
    pub gacha_item_type_data_map: ::std::collections::HashMap<u32, GachaItemTypeDataBin>,
    #[prost(map = "uint32, message", tag = "7")]
    pub gacha_item_parent_type_data_map: ::std::collections::HashMap<
        u32,
        GachaItemParentTypeDataBin,
    >,
    #[prost(uint32, tag = "8")]
    pub total_ten_gacha_times: u32,
    #[prost(map = "uint32, message", tag = "9")]
    pub gacha_up_data_map: ::std::collections::HashMap<u32, GachaUpDataBin>,
    #[prost(uint32, tag = "10")]
    pub wish_item_id: u32,
    #[prost(uint32, tag = "11")]
    pub wish_progress: u32,
    #[prost(bool, tag = "12")]
    pub is_new_wish: bool,
    #[prost(uint32, tag = "13")]
    pub cur_schedule_daily_last_gacha_time: u32,
    #[prost(uint32, tag = "14")]
    pub cur_schedule_daily_gacha_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGachaCompBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub gacha_record_map: ::std::collections::HashMap<u32, GachaRecordBin>,
    #[prost(uint32, tag = "2")]
    pub gacha_random: u32,
    #[prost(uint32, tag = "3")]
    pub daily_gacha_times: u32,
    #[prost(uint32, tag = "4")]
    pub last_gacha_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GivingRecordBin {
    #[prost(uint32, tag = "1")]
    pub giving_id: u32,
    #[prost(bool, tag = "2")]
    pub is_finished: bool,
    #[prost(uint32, tag = "3")]
    pub last_group_id: u32,
    #[prost(bool, tag = "4")]
    pub is_gadget_giving: bool,
    #[prost(uint32, tag = "5")]
    pub group_id: u32,
    #[prost(uint32, tag = "6")]
    pub config_id: u32,
    #[prost(map = "uint32, uint32", tag = "8")]
    pub material_cnt_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGivingCompBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub giving_record_map: ::std::collections::HashMap<u32, GivingRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ForgeQueueBin {
    #[prost(uint32, tag = "1")]
    pub transaction_no: u32,
    #[prost(uint32, tag = "2")]
    pub queue_id: u32,
    #[prost(uint32, tag = "3")]
    pub forge_id: u32,
    #[prost(uint32, tag = "4")]
    pub forge_count: u32,
    #[prost(uint32, tag = "5")]
    pub finish_count: u32,
    #[prost(uint32, tag = "6")]
    pub taken_count: u32,
    #[prost(fixed32, tag = "7")]
    pub start_time: u32,
    #[prost(uint32, tag = "8")]
    pub single_time_cost: u32,
    #[prost(uint32, repeated, tag = "9")]
    pub proud_skill_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "10")]
    pub avatar_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerForgeCompBin {
    #[prost(uint32, tag = "1")]
    pub last_transaction_no: u32,
    #[prost(map = "uint32, message", tag = "2")]
    pub forge_queue_map: ::std::collections::HashMap<u32, ForgeQueueBin>,
    #[prost(uint32, tag = "3")]
    pub forge_point: u32,
    #[prost(fixed32, tag = "4")]
    pub last_refresh_time: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub unlock_forge_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerCombineCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub unlock_combine_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WatcherBin {
    #[prost(uint32, tag = "1")]
    pub watcher_id: u32,
    #[prost(uint32, tag = "2")]
    pub progress: u32,
    #[prost(message, repeated, tag = "3")]
    pub var_list: ::prost::alloc::vec::Vec<watcher_bin::Var>,
}
/// Nested message and enum types in `WatcherBin`.
pub mod watcher_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct Var {
        #[prost(uint32, tag = "1")]
        pub key: u32,
        #[prost(int32, tag = "2")]
        pub value: i32,
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PushTipsBin {
    #[prost(uint32, tag = "1")]
    pub push_tips_id: u32,
    #[prost(uint32, tag = "2")]
    pub state: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RecordValueBin {
    #[prost(float, tag = "1")]
    pub max_critical_damage: f32,
    #[prost(float, tag = "2")]
    pub max_fly_map_distance: f32,
    #[prost(float, tag = "3")]
    pub max_fly_time: f32,
    #[prost(float, tag = "4")]
    pub max_dash_time: f32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerWatcherCompBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub global_watcher_progress_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, repeated, tag = "2")]
    pub finished_global_watcher_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub push_tips_list: ::prost::alloc::vec::Vec<PushTipsBin>,
    #[prost(message, repeated, tag = "4")]
    pub watcher_list: ::prost::alloc::vec::Vec<WatcherBin>,
    #[prost(message, optional, tag = "5")]
    pub record_value: ::core::option::Option<RecordValueBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerTeamBin {
    #[prost(uint32, tag = "1")]
    pub tower_team_id: u32,
    #[prost(uint64, repeated, tag = "2")]
    pub avatar_guid_list: ::prost::alloc::vec::Vec<u64>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerLevelRecordBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub satisfied_cond_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerFloorRecordBin {
    #[prost(uint32, tag = "1")]
    pub floor_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub passed_level_record_list: ::prost::alloc::vec::Vec<TowerLevelRecordBin>,
    #[prost(uint32, tag = "3")]
    pub floor_star_reward_progress: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerAvatarRecordBin {
    #[prost(map = "uint32, float", tag = "1")]
    pub cur_fight_prop_map: ::std::collections::HashMap<u32, f32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerCurLevelRecordBin {
    #[prost(uint32, tag = "1")]
    pub cur_floor_index: u32,
    #[prost(uint32, tag = "2")]
    pub cur_level_index: u32,
    #[prost(message, repeated, tag = "3")]
    pub tower_team_list: ::prost::alloc::vec::Vec<TowerTeamBin>,
    #[prost(map = "uint64, message", tag = "4")]
    pub avatar_record_map: ::std::collections::HashMap<u64, TowerAvatarRecordBin>,
    #[prost(map = "uint32, uint32", tag = "5")]
    pub tower_buff_map: ::std::collections::HashMap<u32, u32>,
    #[prost(bool, tag = "6")]
    pub is_floor_finished: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerLevelBuffListBin {
    #[prost(uint32, repeated, tag = "1")]
    pub tower_buff_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerFloorLevelBin {
    #[prost(uint32, tag = "1")]
    pub floor_index: u32,
    #[prost(uint32, tag = "2")]
    pub level_index: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerFightStatisticBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub avatar_reveal_count_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub kill_count_map: ::std::collections::HashMap<u32, u32>,
    #[prost(uint32, tag = "3")]
    pub max_single_damage_avatar_id: u32,
    #[prost(uint32, tag = "4")]
    pub max_single_damage_value: u32,
    #[prost(map = "uint32, uint32", tag = "5")]
    pub take_damage_count_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "6")]
    pub normal_skill_count_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "7")]
    pub energy_skill_count_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerFightSummaryPair {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "2")]
    pub data: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerMonthlyCombatSummaryBin {
    #[prost(message, repeated, tag = "1")]
    pub most_reveal_avatar_list: ::prost::alloc::vec::Vec<TowerFightSummaryPair>,
    #[prost(message, optional, tag = "2")]
    pub most_kill_avatar_pair: ::core::option::Option<TowerFightSummaryPair>,
    #[prost(message, optional, tag = "3")]
    pub highest_dps_avatr_pair: ::core::option::Option<TowerFightSummaryPair>,
    #[prost(message, optional, tag = "4")]
    pub most_take_damage_avatar_pair: ::core::option::Option<TowerFightSummaryPair>,
    #[prost(message, optional, tag = "5")]
    pub most_cast_normal_skill_avatar_pair: ::core::option::Option<
        TowerFightSummaryPair,
    >,
    #[prost(message, optional, tag = "6")]
    pub most_cast_energy_skill_avatar_pair: ::core::option::Option<
        TowerFightSummaryPair,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TowerMonthlySummaryBin {
    #[prost(uint32, tag = "1")]
    pub tower_schedule_id: u32,
    #[prost(uint32, tag = "2")]
    pub best_floor_index: u32,
    #[prost(uint32, tag = "3")]
    pub best_level_index: u32,
    #[prost(uint32, tag = "4")]
    pub total_star_count: u32,
    #[prost(message, optional, tag = "5")]
    pub monthly_combat_summary: ::core::option::Option<TowerMonthlyCombatSummaryBin>,
    #[prost(uint32, tag = "6")]
    pub last_passed_floor_index: u32,
    #[prost(bool, tag = "7")]
    pub is_interact: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerTowerCompBin {
    #[prost(uint32, tag = "1")]
    pub tower_schedule_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub tower_floor_record_list: ::prost::alloc::vec::Vec<TowerFloorRecordBin>,
    #[prost(fixed32, tag = "3")]
    pub last_daily_reward_time: u32,
    #[prost(uint32, tag = "4")]
    pub daily_floor_index: u32,
    #[prost(uint32, tag = "5")]
    pub daily_level_index: u32,
    #[prost(map = "uint32, message", tag = "6")]
    pub daily_level_buff_map: ::std::collections::HashMap<u32, TowerLevelBuffListBin>,
    #[prost(message, optional, tag = "7")]
    pub cur_level_record: ::core::option::Option<TowerCurLevelRecordBin>,
    #[prost(bool, tag = "8")]
    pub is_interact_this_schedule: bool,
    #[prost(message, optional, tag = "9")]
    pub fight_statistic: ::core::option::Option<TowerFightStatisticBin>,
    #[prost(map = "uint32, message", tag = "10")]
    pub tower_monthly_summary_map: ::std::collections::HashMap<
        u32,
        TowerMonthlySummaryBin,
    >,
    #[prost(message, repeated, tag = "11")]
    pub tower_entrance_floor_record_list: ::prost::alloc::vec::Vec<TowerFloorRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlossomCircleCampDataBin {
    #[prost(uint32, tag = "1")]
    pub refresh_id: u32,
    #[prost(uint32, tag = "2")]
    pub circle_camp_id: u32,
    #[prost(uint32, tag = "3")]
    pub drop_id: u32,
    #[prost(uint32, tag = "4")]
    pub preview_reward: u32,
    #[prost(uint32, tag = "5")]
    pub round: u32,
    #[prost(uint32, tag = "6")]
    pub state: u32,
    #[prost(uint32, tag = "7")]
    pub progress: u32,
    #[prost(bool, tag = "8")]
    pub is_guide_opened: bool,
    #[prost(uint32, repeated, tag = "9")]
    pub update_round_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "10")]
    pub valid_world_level: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlossomRefreshDataBin {
    #[prost(message, repeated, tag = "1")]
    pub circle_camp_list: ::prost::alloc::vec::Vec<BlossomCircleCampDataBin>,
    #[prost(fixed32, tag = "2")]
    pub last_refresh_time: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub used_camp_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BlossomInitialSectionDataBin {
    #[prost(uint32, tag = "1")]
    pub section_id: u32,
    #[prost(fixed32, tag = "2")]
    pub timestamp: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerBlossomCompBin {
    #[prost(map = "uint32, fixed32", tag = "1")]
    pub recent_used_section_id_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, message", tag = "2")]
    pub initial_section_map: ::std::collections::HashMap<
        u32,
        BlossomInitialSectionDataBin,
    >,
    #[prost(map = "uint32, message", tag = "3")]
    pub refresh_data_map: ::std::collections::HashMap<u32, BlossomRefreshDataBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SignInRecordBin {
    #[prost(uint32, tag = "1")]
    pub schedule_id: u32,
    #[prost(uint32, tag = "2")]
    pub sign_in_count: u32,
    #[prost(fixed32, tag = "3")]
    pub last_sign_in_time: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub reward_day_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BonusActivityRecordBin {
    #[prost(uint32, tag = "1")]
    pub bonus_activity_id: u32,
    #[prost(uint32, tag = "2")]
    pub state: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerSignInCompBin {
    #[prost(message, repeated, tag = "1")]
    pub sign_in_record_list: ::prost::alloc::vec::Vec<SignInRecordBin>,
    #[prost(message, repeated, tag = "2")]
    pub bonus_activity_record_list: ::prost::alloc::vec::Vec<BonusActivityRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct McoinProductConfigBin {
    #[prost(fixed32, tag = "1")]
    pub last_buy_time: u32,
    #[prost(uint32, tag = "2")]
    pub buy_times: u32,
    #[prost(uint32, tag = "3")]
    pub config_id: u32,
    #[prost(string, repeated, tag = "4")]
    pub product_id_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CardProductConfigBin {
    #[prost(fixed32, tag = "1")]
    pub last_daily_reward_time: u32,
    #[prost(fixed32, tag = "2")]
    pub take_effect_time: u32,
    #[prost(fixed32, tag = "3")]
    pub expire_time: u32,
    #[prost(uint32, tag = "4")]
    pub config_id: u32,
    #[prost(string, repeated, tag = "5")]
    pub product_id_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(fixed32, tag = "6")]
    pub last_send_remind_mail_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GoogleGiftCardProductBin {
    #[prost(uint32, tag = "1")]
    pub config_id: u32,
    #[prost(uint32, tag = "2")]
    pub buy_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConcertProductBin {
    #[prost(uint32, tag = "1")]
    pub config_id: u32,
    #[prost(uint32, tag = "2")]
    pub buy_times: u32,
    #[prost(string, repeated, tag = "3")]
    pub ticket_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AppleGiftCardProductBin {
    #[prost(uint32, tag = "1")]
    pub config_id: u32,
    #[prost(uint32, tag = "2")]
    pub buy_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PsnCompensationProductBin {
    #[prost(uint32, tag = "1")]
    pub config_id: u32,
    #[prost(uint32, tag = "2")]
    pub buy_times: u32,
    #[prost(uint32, tag = "3")]
    pub last_buy_time: u32,
    #[prost(uint32, tag = "4")]
    pub month_buy_times: u32,
    #[prost(uint32, tag = "5")]
    pub month_last_buy_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderFinishNotifyItemBin {
    #[prost(uint32, tag = "1")]
    pub item_id: u32,
    #[prost(uint32, tag = "2")]
    pub count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderFinishNotifyBin {
    #[prost(string, tag = "1")]
    pub product_id: ::prost::alloc::string::String,
    #[prost(uint32, tag = "2")]
    pub add_mcoin: u32,
    #[prost(uint32, tag = "3")]
    pub card_product_remain_days: u32,
    #[prost(uint32, tag = "4")]
    pub order_id: u32,
    #[prost(message, repeated, tag = "5")]
    pub item_list: ::prost::alloc::vec::Vec<OrderFinishNotifyItemBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderNotifySaveBin {
    #[prost(uint32, tag = "1")]
    pub platform_type: u32,
    #[prost(message, repeated, tag = "3")]
    pub order_notify_list: ::prost::alloc::vec::Vec<OrderFinishNotifyBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerRechargeCompBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub finished_order_map: ::std::collections::HashMap<u32, u32>,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub wait_mark_db_map: ::std::collections::HashMap<u32, u32>,
    #[prost(message, repeated, tag = "3")]
    pub mcoin_product_list: ::prost::alloc::vec::Vec<McoinProductConfigBin>,
    #[prost(message, repeated, tag = "4")]
    pub card_product_list: ::prost::alloc::vec::Vec<CardProductConfigBin>,
    #[prost(fixed32, tag = "5")]
    pub mcoin_product_refresh_time: u32,
    #[prost(uint32, tag = "6")]
    pub vip_point: u32,
    #[prost(string, repeated, tag = "7")]
    pub ps4_package_product_list: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
    #[prost(message, repeated, tag = "8")]
    pub google_gift_card_list: ::prost::alloc::vec::Vec<GoogleGiftCardProductBin>,
    #[prost(message, repeated, tag = "9")]
    pub order_notify_save_list: ::prost::alloc::vec::Vec<OrderNotifySaveBin>,
    #[prost(message, repeated, tag = "10")]
    pub concert_product_list: ::prost::alloc::vec::Vec<ConcertProductBin>,
    #[prost(message, repeated, tag = "11")]
    pub apple_gift_card_list: ::prost::alloc::vec::Vec<AppleGiftCardProductBin>,
    #[prost(message, repeated, tag = "12")]
    pub psn_compensation_product_list: ::prost::alloc::vec::Vec<
        PsnCompensationProductBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattlePassRewardTagBin {
    #[prost(uint32, tag = "1")]
    pub unlock_status: u32,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(uint32, tag = "3")]
    pub reward_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattlePassScheduleBin {
    #[prost(uint32, tag = "1")]
    pub schedule_id: u32,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(uint32, tag = "3")]
    pub point: u32,
    #[prost(uint32, tag = "4")]
    pub unlock_status: u32,
    #[prost(message, repeated, tag = "5")]
    pub reward_taken_list: ::prost::alloc::vec::Vec<BattlePassRewardTagBin>,
    #[prost(bool, tag = "6")]
    pub is_extra_paid_reward_taken: bool,
    #[prost(bool, tag = "7")]
    pub is_viewed: bool,
    #[prost(uint32, tag = "8")]
    pub cur_cycle_points: u32,
    #[prost(bool, tag = "9")]
    pub is_notify_mail_sent: bool,
    #[prost(uint32, tag = "10")]
    pub paid_platform_flags: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BattlePassMissionBin {
    #[prost(uint32, tag = "1")]
    pub mission_id: u32,
    #[prost(uint32, tag = "2")]
    pub mission_status: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerBattlePassCompBin {
    #[prost(message, repeated, tag = "1")]
    pub schedule_bin_list: ::prost::alloc::vec::Vec<BattlePassScheduleBin>,
    #[prost(message, repeated, tag = "2")]
    pub cur_battle_pass_mission_bin_list: ::prost::alloc::vec::Vec<BattlePassMissionBin>,
    #[prost(uint32, tag = "3")]
    pub cur_schedule_id: u32,
    #[prost(fixed32, tag = "4")]
    pub last_refresh_time: u32,
    #[prost(fixed32, tag = "5")]
    pub weekly_last_refresh_time: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub cross_schedule_weekly_watcher_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChatEmojiCollectionBin {
    #[prost(uint32, repeated, tag = "1")]
    pub emoji_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerSocialCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub unlock_name_card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint64, tag = "2")]
    pub birthday: u64,
    #[prost(string, tag = "3")]
    pub signature: ::prost::alloc::string::String,
    #[prost(uint32, tag = "4")]
    pub name_card_id: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub recent_mp_player_uid_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "6")]
    pub last_grant_birthday_benefit_year: u32,
    #[prost(bool, tag = "7")]
    pub is_have_first_share: bool,
    #[prost(bool, tag = "8")]
    pub is_login_on_birthday: bool,
    #[prost(uint32, tag = "9")]
    pub report_during_last_time_count: u32,
    #[prost(uint32, tag = "10")]
    pub report_next_limit_time: u32,
    #[prost(uint32, tag = "11")]
    pub next_report_time: u32,
    #[prost(uint32, tag = "12")]
    pub cur_day_social_request_num: u32,
    #[prost(fixed32, tag = "13")]
    pub last_clear_social_request_time: u32,
    #[prost(map = "uint32, string", tag = "14")]
    pub friend_remark_name_map: ::std::collections::HashMap<
        u32,
        ::prost::alloc::string::String,
    >,
    #[prost(uint32, tag = "15")]
    pub cur_day_ask_friend_num: u32,
    #[prost(fixed32, tag = "16")]
    pub last_ask_friend_time: u32,
    #[prost(uint32, repeated, tag = "17")]
    pub show_avatar_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "18")]
    pub is_show_avatar: bool,
    #[prost(uint32, repeated, tag = "19")]
    pub show_name_card_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "20")]
    pub chat_emoji_collection: ::core::option::Option<ChatEmojiCollectionBin>,
    #[prost(message, optional, tag = "21")]
    pub signature_audit_bin: ::core::option::Option<ContentAuditBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityAntiOfflineDataBin {
    #[prost(uint32, tag = "1")]
    pub security_check_type: u32,
    #[prost(uint32, tag = "2")]
    pub security_level: u32,
    #[prost(uint32, tag = "3")]
    pub succ_num: u32,
    #[prost(uint32, tag = "4")]
    pub empty_num: u32,
    #[prost(uint32, tag = "5")]
    pub decrypt_fail_num: u32,
    #[prost(uint32, tag = "6")]
    pub verify_fail_num: u32,
    #[prost(uint32, tag = "7")]
    pub cur_succ_num: u32,
    #[prost(uint32, tag = "8")]
    pub cur_fail_num: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MpPlayBin {
    #[prost(uint32, tag = "1")]
    pub mp_play_id: u32,
    #[prost(uint32, tag = "2")]
    pub entry_id: u32,
    #[prost(uint32, tag = "3")]
    pub play_type: u32,
    #[prost(bool, tag = "4")]
    pub is_close: bool,
    #[prost(uint32, repeated, tag = "7")]
    pub reward_remain_uid_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "8")]
    pub uid_world_level_list: ::prost::alloc::vec::Vec<mp_play_bin::UidWorldLevelBin>,
}
/// Nested message and enum types in `MpPlayBin`.
pub mod mp_play_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct UidWorldLevelBin {
        #[prost(uint32, tag = "1")]
        pub uid: u32,
        #[prost(uint32, tag = "2")]
        pub world_level: u32,
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerMpPlayCompBin {
    #[prost(message, repeated, tag = "1")]
    pub mp_play_list: ::prost::alloc::vec::Vec<MpPlayBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CodexTypeDataBin {
    #[prost(uint32, tag = "1")]
    pub r#type: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub codex_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "3")]
    pub viewed_codex_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "4")]
    pub weapon_max_promote_level_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerCodexCompBin {
    #[prost(message, repeated, tag = "1")]
    pub type_data_list: ::prost::alloc::vec::Vec<CodexTypeDataBin>,
    #[prost(uint32, repeated, tag = "5")]
    pub recent_viewed_pushtips_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "6")]
    pub last_read_pushtips_codex_id: u32,
    #[prost(uint32, tag = "7")]
    pub last_read_pushtips_type_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AchievementBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub status: u32,
    #[prost(uint32, tag = "3")]
    pub finish_timestamp: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerAchievementCompBin {
    #[prost(message, repeated, tag = "1")]
    pub achievement_list: ::prost::alloc::vec::Vec<AchievementBin>,
    #[prost(uint32, repeated, tag = "2")]
    pub reward_taken_goal_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerPersonalLineCompBin {
    #[prost(uint32, tag = "1")]
    pub finished_daily_task_num: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub unlock_personal_line_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerTrialAvatarCompBin {
    #[prost(uint32, tag = "1")]
    pub trial_avatar_index_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntingOfferDataBin {
    #[prost(uint32, tag = "1")]
    pub refresh_id: u32,
    #[prost(uint32, tag = "2")]
    pub monster_config_id: u32,
    #[prost(uint32, tag = "3")]
    pub city_id: u32,
    #[prost(uint32, tag = "4")]
    pub difficulty: u32,
    #[prost(int32, tag = "5")]
    pub state: i32,
    #[prost(bool, tag = "6")]
    pub is_taken_reward: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HuntingOfferPair {
    #[prost(uint32, tag = "1")]
    pub refresh_id: u32,
    #[prost(uint32, tag = "2")]
    pub monster_config_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHuntingCompBin {
    #[prost(message, repeated, tag = "1")]
    pub hunting_offer_data_list: ::prost::alloc::vec::Vec<HuntingOfferDataBin>,
    #[prost(message, repeated, tag = "2")]
    pub cur_week_finished_hunting_pair_vec: ::prost::alloc::vec::Vec<HuntingOfferPair>,
    #[prost(fixed32, tag = "3")]
    pub last_refresh_time: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub cur_week_refreshed_monster_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "5")]
    pub cur_week_refreshed_refresh_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "6")]
    pub is_new_hunting: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CityReputationRequestBin {
    #[prost(uint32, tag = "1")]
    pub request_id: u32,
    #[prost(uint32, tag = "2")]
    pub quest_id: u32,
    #[prost(bool, tag = "3")]
    pub is_taken_reward: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CityReputationBin {
    #[prost(uint32, tag = "1")]
    pub city_id: u32,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(uint32, tag = "3")]
    pub exp: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub taken_level_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "5")]
    pub taken_parent_quest_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "6")]
    pub history_request_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "7")]
    pub request_list: ::prost::alloc::vec::Vec<CityReputationRequestBin>,
    #[prost(fixed32, tag = "8")]
    pub last_refresh_request_time: u32,
    #[prost(bool, tag = "9")]
    pub is_new_request: bool,
    #[prost(uint32, repeated, tag = "10")]
    pub taken_explore_reward_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerReputationCompBin {
    #[prost(message, repeated, tag = "1")]
    pub city_reputation_list: ::prost::alloc::vec::Vec<CityReputationBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetAnchorPointBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(message, optional, tag = "2")]
    pub pos: ::core::option::Option<VectorBin>,
    #[prost(message, optional, tag = "3")]
    pub rot: ::core::option::Option<VectorBin>,
    #[prost(fixed32, tag = "4")]
    pub end_time: u32,
    #[prost(uint32, tag = "5")]
    pub scene_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetLunchBoxBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub slot_material_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetOneoffGatherPointDetectorBin {
    #[prost(uint32, tag = "1")]
    pub material_id: u32,
    #[prost(bool, tag = "2")]
    pub is_hint_valid: bool,
    #[prost(message, optional, tag = "3")]
    pub hint_center_pos: ::core::option::Option<VectorBin>,
    #[prost(uint32, tag = "5")]
    pub group_id: u32,
    #[prost(uint32, tag = "6")]
    pub config_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetClientCollectorBin {
    #[prost(uint32, tag = "1")]
    pub material_id: u32,
    #[prost(uint32, tag = "2")]
    pub curr_points: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetCoolDownInfoBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint64, tag = "2")]
    pub last_use_time: u64,
    #[prost(bool, tag = "3")]
    pub is_success: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttachAvatarWidgetBin {
    #[prost(uint32, tag = "1")]
    pub material_id: u32,
    #[prost(uint32, tag = "2")]
    pub cd_over_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetCaptureAnimalBin {
    #[prost(uint32, tag = "1")]
    pub skill_flag: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetLightStoneBin {
    #[prost(bool, tag = "1")]
    pub is_hint_valid: bool,
    #[prost(message, optional, tag = "2")]
    pub hint_center_pos: ::core::option::Option<VectorBin>,
    #[prost(uint32, tag = "4")]
    pub group_id: u32,
    #[prost(uint32, tag = "5")]
    pub config_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetBackgroundBin {
    #[prost(bool, tag = "1")]
    pub is_active: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetDetailBin {
    #[prost(oneof = "widget_detail_bin::DetailBin", tags = "1, 2, 3, 4, 2601, 3001")]
    pub detail_bin: ::core::option::Option<widget_detail_bin::DetailBin>,
}
/// Nested message and enum types in `WidgetDetailBin`.
pub mod widget_detail_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum DetailBin {
        #[prost(message, tag = "1")]
        AttachAvatarWidget(super::AttachAvatarWidgetBin),
        #[prost(message, tag = "2")]
        OneoffGatherPointDetector(super::WidgetOneoffGatherPointDetectorBin),
        #[prost(message, tag = "3")]
        ClientCollector(super::WidgetClientCollectorBin),
        #[prost(message, tag = "4")]
        CaptureAnimal(super::WidgetCaptureAnimalBin),
        #[prost(message, tag = "2601")]
        LightStone(super::WidgetLightStoneBin),
        #[prost(message, tag = "3001")]
        BackgroundWidget(super::WidgetBackgroundBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WidgetBin {
    #[prost(uint32, tag = "1")]
    pub material_id: u32,
    #[prost(bool, repeated, tag = "2")]
    pub slot_occupied_list: ::prost::alloc::vec::Vec<bool>,
    #[prost(message, optional, tag = "3")]
    pub detail_bin: ::core::option::Option<WidgetDetailBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerWidgetCompBin {
    #[prost(uint32, tag = "1")]
    pub next_widget_id: u32,
    #[prost(uint32, tag = "2")]
    pub quick_use_material_id: u32,
    #[prost(uint32, tag = "3")]
    pub last_use_anchor_point_time: u32,
    #[prost(message, repeated, tag = "4")]
    pub anchor_point_list: ::prost::alloc::vec::Vec<WidgetAnchorPointBin>,
    #[prost(uint32, tag = "5")]
    pub last_use_bonfire_time: u32,
    #[prost(message, optional, tag = "6")]
    pub lunch_box: ::core::option::Option<WidgetLunchBoxBin>,
    #[prost(message, repeated, tag = "7")]
    pub oneoff_gather_point_detector_list: ::prost::alloc::vec::Vec<
        WidgetOneoffGatherPointDetectorBin,
    >,
    #[prost(message, repeated, tag = "8")]
    pub client_collector_list: ::prost::alloc::vec::Vec<WidgetClientCollectorBin>,
    #[prost(message, repeated, tag = "9")]
    pub group_cool_down_data_list: ::prost::alloc::vec::Vec<WidgetCoolDownInfoBin>,
    #[prost(message, repeated, tag = "10")]
    pub normal_cool_down_data_list: ::prost::alloc::vec::Vec<WidgetCoolDownInfoBin>,
    #[prost(message, optional, tag = "11")]
    pub attach_avatar_widget: ::core::option::Option<AttachAvatarWidgetBin>,
    #[prost(message, repeated, tag = "20")]
    pub widget_bin_list: ::prost::alloc::vec::Vec<WidgetBin>,
    #[prost(map = "uint32, uint32", tag = "21")]
    pub slot_material_map: ::std::collections::HashMap<u32, u32>,
    #[prost(bool, tag = "22")]
    pub is_oneoff_gather_point_detector_transfered: bool,
    #[prost(bool, tag = "23")]
    pub is_client_collector_transfered: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScenePlaySourceBin {
    #[prost(uint32, tag = "1")]
    pub r#type: u32,
    #[prost(uint32, tag = "2")]
    pub param: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScenePlayBin {
    #[prost(uint32, tag = "1")]
    pub play_id: u32,
    #[prost(uint32, tag = "2")]
    pub play_type: u32,
    #[prost(uint32, tag = "3")]
    pub entry_id: u32,
    #[prost(uint32, tag = "4")]
    pub phase: u32,
    #[prost(message, optional, tag = "5")]
    pub source_bin: ::core::option::Option<ScenePlaySourceBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerScenePlayCompBin {
    #[prost(message, repeated, tag = "1")]
    pub play_list: ::prost::alloc::vec::Vec<ScenePlayBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MainCoopBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub status: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub save_point_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(int32, tag = "4")]
    pub self_confidence: i32,
    #[prost(message, repeated, tag = "5")]
    pub normal_var_list: ::prost::alloc::vec::Vec<Uint32ToInt32PairBin>,
    #[prost(message, repeated, tag = "6")]
    pub temp_var_list: ::prost::alloc::vec::Vec<Uint32ToInt32PairBin>,
    #[prost(message, repeated, tag = "7")]
    pub seen_ending_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(uint32, tag = "8")]
    pub confidence: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CoopPointBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub state: u32,
    #[prost(message, optional, tag = "3")]
    pub start_main_coop: ::core::option::Option<MainCoopBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CoopChapterBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub state: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub cg_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "5")]
    pub dialog_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "6")]
    pub coop_point_list: ::prost::alloc::vec::Vec<CoopPointBin>,
    #[prost(message, repeated, tag = "7")]
    pub seen_ending_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CoopProgressBin {
    #[prost(uint32, tag = "1")]
    pub coop_point_id: u32,
    #[prost(map = "uint32, message", tag = "4")]
    pub main_coop_map: ::std::collections::HashMap<u32, MainCoopBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerCoopCompBin {
    #[prost(message, repeated, tag = "1")]
    pub main_coop_list: ::prost::alloc::vec::Vec<MainCoopBin>,
    #[prost(message, repeated, tag = "2")]
    pub chapter_bin_list: ::prost::alloc::vec::Vec<CoopChapterBin>,
    #[prost(message, optional, tag = "3")]
    pub progress_bin: ::core::option::Option<CoopProgressBin>,
    #[prost(uint32, repeated, tag = "4")]
    pub viewed_chapter_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerOfferingInfoBin {
    #[prost(uint32, tag = "1")]
    pub offering_id: u32,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub taken_level_reward_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "4")]
    pub is_reach_max_level: bool,
    #[prost(bool, tag = "5")]
    pub is_need_notify_new_max: bool,
    #[prost(uint32, tag = "6")]
    pub last_version_max_level: u32,
    #[prost(bool, tag = "7")]
    pub is_first_interact: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerOfferingCompBin {
    #[prost(message, repeated, tag = "1")]
    pub offering_bin_list: ::prost::alloc::vec::Vec<PlayerOfferingInfoBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReunionSignInBin {
    #[prost(uint32, tag = "1")]
    pub reunion_sign_in_id: u32,
    #[prost(uint32, tag = "2")]
    pub sign_in_count: u32,
    #[prost(fixed32, tag = "3")]
    pub last_sign_in_time: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub reward_day_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReunionMissionBin {
    #[prost(uint32, tag = "1")]
    pub mission_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub taken_reward_watcher_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "3")]
    pub finished_watcher_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub cur_day_watcher_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub cur_score: u32,
    #[prost(bool, tag = "6")]
    pub is_finished: bool,
    #[prost(bool, tag = "7")]
    pub is_taken_reward: bool,
    #[prost(uint32, tag = "8")]
    pub last_refresh_time: u32,
    #[prost(bool, repeated, tag = "9")]
    pub is_taken_reward_list: ::prost::alloc::vec::Vec<bool>,
    #[prost(uint32, repeated, tag = "10")]
    pub watcher_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReunionPrivilegeBin {
    #[prost(uint32, tag = "1")]
    pub privilege_id: u32,
    #[prost(uint32, tag = "2")]
    pub cur_day_count: u32,
    #[prost(uint32, tag = "3")]
    pub last_refresh_time: u32,
    #[prost(uint32, tag = "4")]
    pub total_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReunionRecordBin {
    #[prost(bool, tag = "1")]
    pub is_taken_first_gift_reward: bool,
    #[prost(uint32, tag = "2")]
    pub first_gift_reward_id: u32,
    #[prost(message, optional, tag = "3")]
    pub sign_in_bin: ::core::option::Option<ReunionSignInBin>,
    #[prost(message, optional, tag = "4")]
    pub mission_bin: ::core::option::Option<ReunionMissionBin>,
    #[prost(message, optional, tag = "5")]
    pub privilege_bin: ::core::option::Option<ReunionPrivilegeBin>,
    #[prost(fixed32, tag = "6")]
    pub reunion_finish_time: u32,
    #[prost(bool, tag = "7")]
    pub is_activated: bool,
    #[prost(string, tag = "8")]
    pub game_version: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerReunionCompBin {
    #[prost(fixed32, tag = "1")]
    pub last_activate_reunion_time: u32,
    #[prost(message, optional, tag = "2")]
    pub reunion_record: ::core::option::Option<ReunionRecordBin>,
    #[prost(bool, tag = "3")]
    pub is_activated_when_close: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerRoutineBin {
    #[prost(uint32, tag = "1")]
    pub routine_id: u32,
    #[prost(uint32, tag = "2")]
    pub progress: u32,
    #[prost(uint32, tag = "3")]
    pub is_finished: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerRoutineTypeBin {
    #[prost(uint32, tag = "1")]
    pub routine_type: u32,
    #[prost(uint32, tag = "2")]
    pub finished_num: u32,
    #[prost(uint32, tag = "3")]
    pub last_refresh_time: u32,
    #[prost(message, repeated, tag = "4")]
    pub routine_bin_list: ::prost::alloc::vec::Vec<PlayerRoutineBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerRoutineCompBin {
    #[prost(message, repeated, tag = "1")]
    pub routine_type_bin_list: ::prost::alloc::vec::Vec<PlayerRoutineTypeBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiracleRingDropParam {
    #[prost(uint32, tag = "1")]
    pub tag: u32,
    #[prost(uint32, tag = "2")]
    pub count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerMiracleRingCompBin {
    #[prost(uint32, tag = "1")]
    pub last_take_reward_time: u32,
    #[prost(message, repeated, tag = "2")]
    pub drop_param_list: ::prost::alloc::vec::Vec<MiracleRingDropParam>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MechanicusBin {
    #[prost(uint32, tag = "1")]
    pub mechanicus_id: u32,
    #[prost(uint32, tag = "2")]
    pub coin: u32,
    #[prost(message, repeated, tag = "3")]
    pub gear_level_pair_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(uint32, repeated, tag = "4")]
    pub open_sequence_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "5")]
    pub is_finish_teach_dungeon: bool,
    #[prost(uint32, repeated, tag = "6")]
    pub finish_difficult_level_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "7")]
    pub punish_over_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerMechanicusCompBin {
    #[prost(message, optional, tag = "1")]
    pub cur_mechanicus_bin: ::core::option::Option<MechanicusBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpActivityRecordBin {
    #[prost(uint32, tag = "1")]
    pub schedule_id: u32,
    #[prost(uint32, tag = "2")]
    pub use_bonus_count: u32,
    #[prost(uint32, tag = "3")]
    pub last_refresh_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerOpActivityCompBin {
    #[prost(message, repeated, tag = "1")]
    pub op_activity_recored_list: ::prost::alloc::vec::Vec<OpActivityRecordBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGalleryCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub valid_gallery_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegionSearchSourceBin {
    #[prost(uint32, tag = "1")]
    pub r#type: u32,
    #[prost(uint32, tag = "2")]
    pub param: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegionSearchRegionBin {
    #[prost(uint32, tag = "1")]
    pub region_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub oneoff_group_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "3")]
    pub recycle_group_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "4")]
    pub recycle_progress: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegionSearchBin {
    #[prost(uint32, tag = "1")]
    pub search_id: u32,
    #[prost(uint32, tag = "2")]
    pub state: u32,
    #[prost(uint32, tag = "3")]
    pub progress: u32,
    #[prost(message, repeated, tag = "4")]
    pub region_list: ::prost::alloc::vec::Vec<RegionSearchRegionBin>,
    #[prost(bool, tag = "5")]
    pub is_entered: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegionSearchPlayBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(message, optional, tag = "2")]
    pub source: ::core::option::Option<RegionSearchSourceBin>,
    #[prost(message, repeated, tag = "3")]
    pub search_list: ::prost::alloc::vec::Vec<RegionSearchBin>,
    #[prost(bool, tag = "4")]
    pub is_entered: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerRegionSearchCompBin {
    #[prost(message, repeated, tag = "1")]
    pub play_list: ::prost::alloc::vec::Vec<RegionSearchPlayBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerTalkCompBin {
    #[prost(uint32, repeated, tag = "1")]
    pub npc_fisrt_met_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "2")]
    pub finished_talk_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerFishingCompBin {
    #[prost(uint32, tag = "1")]
    pub last_fish_rod: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomDungeonBriefBin {
    #[prost(uint64, tag = "1")]
    pub dungeon_guid: u64,
    #[prost(uint32, tag = "2")]
    pub dungeon_id: u32,
    #[prost(uint32, tag = "3")]
    pub state: u32,
    #[prost(uint32, tag = "4")]
    pub last_save_time: u32,
    #[prost(message, optional, tag = "5")]
    pub setting: ::core::option::Option<CustomDungeonSettingBin>,
    #[prost(message, optional, tag = "6")]
    pub r#abstract: ::core::option::Option<CustomDungeonAbstractBin>,
    #[prost(uint32, repeated, tag = "7")]
    pub tag_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "8")]
    pub is_psn_platform: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OfficialCustomDungeonBin {
    #[prost(uint32, tag = "1")]
    pub dungeon_id: u32,
    #[prost(uint32, tag = "2")]
    pub win_times: u32,
    #[prost(uint64, tag = "3")]
    pub dungeon_guid: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomDungeonBattleRecord {
    #[prost(uint64, tag = "1")]
    pub dungeon_guid: u64,
    #[prost(uint32, tag = "2")]
    pub min_cost_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerCustomDungeonCompBin {
    #[prost(message, repeated, tag = "1")]
    pub brief_list: ::prost::alloc::vec::Vec<CustomDungeonBriefBin>,
    #[prost(uint32, tag = "2")]
    pub dungeon_guid_idx: u32,
    #[prost(uint64, repeated, tag = "3")]
    pub store_dungeon_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(uint64, repeated, tag = "4")]
    pub last_recommend_list: ::prost::alloc::vec::Vec<u64>,
    #[prost(uint32, tag = "5")]
    pub group_id: u32,
    #[prost(message, repeated, tag = "6")]
    pub official_dungeon_list: ::prost::alloc::vec::Vec<OfficialCustomDungeonBin>,
    #[prost(bool, tag = "7")]
    pub is_enable_ugc: bool,
    #[prost(uint32, tag = "8")]
    pub ban_expire_time: u32,
    #[prost(message, repeated, tag = "9")]
    pub battle_record_list: ::prost::alloc::vec::Vec<CustomDungeonBattleRecord>,
    #[prost(bool, tag = "10")]
    pub is_ever_liked: bool,
    #[prost(uint32, tag = "11")]
    pub last_got_recommend_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UgcBin {}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerUgcCompBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub ugc_bin_map: ::std::collections::HashMap<u32, UgcBin>,
    #[prost(uint32, tag = "2")]
    pub ban_publish_expire_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeBlockBin {
    #[prost(uint32, tag = "1")]
    pub block_id: u32,
    #[prost(bool, tag = "2")]
    pub is_unlocked: bool,
    #[prost(uint32, tag = "3")]
    pub deploy_furniture_count: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeSceneBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub block_bin_list: ::prost::alloc::vec::Vec<PlayerHomeBlockBin>,
    #[prost(bool, tag = "3")]
    pub is_unlocked: bool,
    #[prost(uint32, tag = "4")]
    pub version: u32,
    #[prost(uint32, tag = "5")]
    pub audit_state: u32,
    #[prost(uint32, tag = "6")]
    pub submit_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeModuleBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub scene_bin_list: ::prost::alloc::vec::Vec<PlayerHomeSceneBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeBasicCompSnapshotBin {
    #[prost(uint32, tag = "1")]
    pub level: u32,
    #[prost(uint64, tag = "2")]
    pub exp: u64,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSubFieldSnapShotBin {
    #[prost(uint32, tag = "1")]
    pub seed_id: u32,
    #[prost(fixed32, tag = "2")]
    pub end_time: u32,
    #[prost(uint32, tag = "3")]
    pub home_gather_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeFieldSnapShotBin {
    #[prost(uint32, tag = "1")]
    pub field_guid: u32,
    #[prost(uint32, tag = "2")]
    pub furniture_id: u32,
    #[prost(message, optional, tag = "3")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(message, repeated, tag = "4")]
    pub sub_field_list: ::prost::alloc::vec::Vec<HomeSubFieldSnapShotBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeTransferSnapShotBin {
    #[prost(uint32, tag = "1")]
    pub furniture_guid: u32,
    #[prost(message, optional, tag = "2")]
    pub spawn_pos: ::core::option::Option<VectorBin>,
    #[prost(uint32, tag = "3")]
    pub furniture_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeMarkPointNpcDataBin {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "2")]
    pub costume_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeMarkPointSuiteDataBin {
    #[prost(uint32, tag = "1")]
    pub suite_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeMarkPointFurnitureDataBin {
    #[prost(uint32, tag = "1")]
    pub guid: u32,
    #[prost(uint32, tag = "2")]
    pub furniture_id: u32,
    #[prost(uint32, tag = "3")]
    pub furniture_type: u32,
    #[prost(message, optional, tag = "4")]
    pub pos: ::core::option::Option<VectorBin>,
    #[prost(oneof = "home_mark_point_furniture_data_bin::Extra", tags = "6, 7")]
    pub extra: ::core::option::Option<home_mark_point_furniture_data_bin::Extra>,
}
/// Nested message and enum types in `HomeMarkPointFurnitureDataBin`.
pub mod home_mark_point_furniture_data_bin {
    #[derive(proto_gen::CmdID)]
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Extra {
        #[prost(message, tag = "6")]
        NpcData(super::HomeMarkPointNpcDataBin),
        #[prost(message, tag = "7")]
        SuiteData(super::HomeMarkPointSuiteDataBin),
    }
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSceneSnapshotBin {
    #[prost(uint32, tag = "1")]
    pub scene_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub deploy_npc_list: ::prost::alloc::vec::Vec<HomeNpcBin>,
    #[prost(message, repeated, tag = "3")]
    pub furniture_suite_list: ::prost::alloc::vec::Vec<HomeFurnitureSuiteBin>,
    #[prost(message, optional, tag = "4")]
    pub main_house: ::core::option::Option<HomeFurnitureBin>,
    #[prost(message, optional, tag = "5")]
    pub djinn_pos: ::core::option::Option<VectorBin>,
    #[prost(message, repeated, tag = "6")]
    pub field_bin_list: ::prost::alloc::vec::Vec<HomeFieldSnapShotBin>,
    #[prost(message, repeated, tag = "7")]
    pub transfer_bin_list: ::prost::alloc::vec::Vec<HomeTransferSnapShotBin>,
    #[prost(message, repeated, tag = "8")]
    pub normal_mark_point_list: ::prost::alloc::vec::Vec<HomeMarkPointFurnitureDataBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeModuleSnapshotBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(uint32, tag = "2")]
    pub cur_room_scene_id: u32,
    #[prost(message, repeated, tag = "3")]
    pub scene_bin_list: ::prost::alloc::vec::Vec<HomeSceneSnapshotBin>,
    #[prost(message, repeated, tag = "4")]
    pub furniture_arrange_count_list: ::prost::alloc::vec::Vec<Uint32PairBin>,
    #[prost(uint32, repeated, tag = "5")]
    pub world_scene_block_comfort_value_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "6")]
    pub room_scene_comfort_value: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSceneCompSnapshotBin {
    #[prost(uint32, tag = "1")]
    pub cur_module_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub module_bin_list: ::prost::alloc::vec::Vec<HomeModuleSnapshotBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeSnapshotBin {
    #[prost(message, optional, tag = "1")]
    pub basic_snapshot: ::core::option::Option<HomeBasicCompSnapshotBin>,
    #[prost(message, optional, tag = "2")]
    pub scene_snapshot: ::core::option::Option<HomeSceneCompSnapshotBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FurnitureMakeBeHelpedBin {
    #[prost(string, tag = "1")]
    pub player_name: ::prost::alloc::string::String,
    #[prost(fixed32, tag = "2")]
    pub time: u32,
    #[prost(uint32, tag = "3")]
    pub uid: u32,
    #[prost(uint32, tag = "4")]
    pub icon: u32,
    #[prost(message, optional, tag = "5")]
    pub profile_picture_bin: ::core::option::Option<ProfilePictureBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FurnitureMakeHelpBin {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(uint32, tag = "2")]
    pub times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FurnitureMakeTimesBin {
    #[prost(uint32, tag = "1")]
    pub furniture_id: u32,
    #[prost(uint32, tag = "2")]
    pub make_times: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerFunitureMakeBin {
    #[prost(message, repeated, tag = "1")]
    pub make_times_bin_list: ::prost::alloc::vec::Vec<FurnitureMakeTimesBin>,
    #[prost(message, repeated, tag = "2")]
    pub make_slots_bin_list: ::prost::alloc::vec::Vec<FurnitureMakeSlotsBin>,
    #[prost(message, repeated, tag = "3")]
    pub help_bin_list: ::prost::alloc::vec::Vec<FurnitureMakeHelpBin>,
    #[prost(message, repeated, tag = "4")]
    pub helped_bin_list: ::prost::alloc::vec::Vec<FurnitureMakeBeHelpedBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerLimitedShopNpcPosBin {
    #[prost(uint32, tag = "1")]
    pub module_id: u32,
    #[prost(uint32, tag = "4")]
    pub scene_id: u32,
    #[prost(uint32, tag = "5")]
    pub block_id: u32,
    #[prost(uint32, tag = "6")]
    pub index: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeLimitedShopBin {
    #[prost(uint32, tag = "1")]
    pub last_refresh_time: u32,
    #[prost(message, repeated, tag = "2")]
    pub npc_pos_bin_list: ::prost::alloc::vec::Vec<PlayerLimitedShopNpcPosBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeResourceBin {
    #[prost(uint32, tag = "1")]
    pub store_value: u32,
    #[prost(fixed32, tag = "2")]
    pub last_refresh_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeResourceBin {
    #[prost(message, optional, tag = "1")]
    pub home_coin_bin: ::core::option::Option<HomeResourceBin>,
    #[prost(message, optional, tag = "2")]
    pub fetter_exp_bin: ::core::option::Option<HomeResourceBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeAvatarDataBin {
    #[prost(uint32, tag = "1")]
    pub avatar_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub talk_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "3")]
    pub event_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeAvatarRewardEventBin {
    #[prost(uint32, tag = "1")]
    pub order: u32,
    #[prost(uint32, tag = "2")]
    pub event_id: u32,
    #[prost(uint32, tag = "3")]
    pub random_position: u32,
    #[prost(uint32, tag = "4")]
    pub guid: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeAvatarBin {
    #[prost(message, repeated, tag = "1")]
    pub home_avatar_list: ::prost::alloc::vec::Vec<HomeAvatarDataBin>,
    #[prost(uint32, repeated, tag = "2")]
    pub show_avatar_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub reward_event_list: ::prost::alloc::vec::Vec<HomeAvatarRewardEventBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HomeWorldWoodExchangeDataBin {
    #[prost(uint32, tag = "1")]
    pub wood_id: u32,
    #[prost(uint32, tag = "2")]
    pub exchange_count: u32,
    #[prost(fixed32, tag = "3")]
    pub last_refresh_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeBlueprintSlotBin {
    #[prost(uint32, tag = "1")]
    pub slot_id: u32,
    #[prost(string, tag = "2")]
    pub share_code: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeBlueprintBin {
    #[prost(uint32, tag = "1")]
    pub blueprint_guid_idx: u32,
    #[prost(message, repeated, tag = "2")]
    pub slot_bin_list: ::prost::alloc::vec::Vec<PlayerHomeBlueprintSlotBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerHomeCompBin {
    #[prost(int32, tag = "1")]
    pub friend_enter_home_option: i32,
    #[prost(uint32, tag = "2")]
    pub init_home_modue_id: u32,
    #[prost(message, repeated, tag = "4")]
    pub module_list: ::prost::alloc::vec::Vec<PlayerHomeModuleBin>,
    #[prost(uint32, repeated, tag = "5")]
    pub unlocked_module_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "6")]
    pub snapshot: ::core::option::Option<HomeSnapshotBin>,
    #[prost(uint32, repeated, tag = "7")]
    pub unlocked_formula_furniture_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "8")]
    pub unlocked_furniture_suite_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "9")]
    pub levelup_reward_got_level_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "10")]
    pub furniture_make_bin: ::core::option::Option<PlayerFunitureMakeBin>,
    #[prost(message, optional, tag = "11")]
    pub home_resource_bin: ::core::option::Option<PlayerHomeResourceBin>,
    #[prost(uint32, repeated, tag = "12")]
    pub arrangement_furniture_suite_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, optional, tag = "13")]
    pub limited_shop_bin: ::core::option::Option<PlayerHomeLimitedShopBin>,
    #[prost(bool, tag = "14")]
    pub is_ever_enter_self_home_world: bool,
    #[prost(message, optional, tag = "15")]
    pub home_avatar_bin: ::core::option::Option<PlayerHomeAvatarBin>,
    #[prost(fixed32, tag = "16")]
    pub last_save_time: u32,
    #[prost(uint32, tag = "17")]
    pub prior_check_time: u32,
    #[prost(uint32, tag = "19")]
    pub transfer_home_point: u32,
    #[prost(uint32, repeated, tag = "20")]
    pub seen_module_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "21")]
    pub unlocked_bgm_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "22")]
    pub is_transfer_to_safe_point: bool,
    #[prost(uint32, tag = "23")]
    pub audit_version_index: u32,
    #[prost(message, repeated, tag = "24")]
    pub wood_exchange_data_bin_list: ::prost::alloc::vec::Vec<
        HomeWorldWoodExchangeDataBin,
    >,
    #[prost(message, optional, tag = "25")]
    pub blueprint_bin: ::core::option::Option<PlayerHomeBlueprintBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerOfflineOpBin {
    #[prost(map = "uint32, uint32", tag = "1")]
    pub index_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct H5ActivityWatcherBin {
    #[prost(uint32, tag = "1")]
    pub h5_activity_watcher_id: u32,
    #[prost(uint32, tag = "2")]
    pub progress: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct H5ActivityBin {
    #[prost(uint32, tag = "1")]
    pub h5_activity_schedule_id: u32,
    #[prost(uint32, tag = "2")]
    pub last_refresh_time: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub finished_h5_activity_watcher_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "4")]
    pub h5_activity_watcher_list: ::prost::alloc::vec::Vec<H5ActivityWatcherBin>,
    #[prost(uint32, tag = "5")]
    pub h5_activity_id: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub unaccept_h5_activity_watcher_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "7")]
    pub is_finish_watcher_logged: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerH5ActivityCompBin {
    #[prost(message, repeated, tag = "1")]
    pub h5_activity_list: ::prost::alloc::vec::Vec<H5ActivityBin>,
    #[prost(fixed32, tag = "2")]
    pub client_red_dot_timestamp: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchPunishBin {
    #[prost(uint32, tag = "1")]
    pub match_id: u32,
    #[prost(uint32, tag = "2")]
    pub punish_times: u32,
    #[prost(uint32, tag = "3")]
    pub punish_end_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerMatchCompBin {
    #[prost(message, repeated, tag = "1")]
    pub punish_list: ::prost::alloc::vec::Vec<MatchPunishBin>,
    #[prost(uint32, tag = "2")]
    pub last_punish_refresh_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerExhibitionBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub replaceable_value: u32,
    #[prost(uint32, tag = "3")]
    pub accumulable_value: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerExhibitionCompBin {
    #[prost(message, repeated, tag = "1")]
    pub exhibition_list: ::prost::alloc::vec::Vec<PlayerExhibitionBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGroupLinkBin {
    #[prost(uint32, tag = "1")]
    pub link_id: u32,
    #[prost(uint32, tag = "2")]
    pub activity_id: u32,
    #[prost(uint32, tag = "3")]
    pub cur_bundle_id: u32,
    #[prost(uint32, tag = "4")]
    pub schedule_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGroupBundleBin {
    #[prost(uint32, tag = "1")]
    pub bundle_id: u32,
    #[prost(uint32, tag = "2")]
    pub activity_id: u32,
    #[prost(bool, tag = "3")]
    pub is_activated: bool,
    #[prost(uint32, tag = "4")]
    pub schedule_id: u32,
    #[prost(bool, tag = "5")]
    pub is_show_mark: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGroupBundleFinishBin {
    #[prost(uint32, tag = "1")]
    pub activity_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub bundle_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "3")]
    pub schedule_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGroupLinkCompBin {
    #[prost(message, repeated, tag = "2")]
    pub link_bin_list: ::prost::alloc::vec::Vec<PlayerGroupLinkBin>,
    #[prost(message, repeated, tag = "3")]
    pub bundle_bin_list: ::prost::alloc::vec::Vec<PlayerGroupBundleBin>,
    #[prost(message, repeated, tag = "4")]
    pub finish_bundle_bin_list: ::prost::alloc::vec::Vec<PlayerGroupBundleFinishBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FireworksParamBin {
    #[prost(uint32, tag = "1")]
    pub r#type: u32,
    #[prost(int32, tag = "2")]
    pub value: i32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FireworksReformBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(message, repeated, tag = "2")]
    pub reform_param_bin_list: ::prost::alloc::vec::Vec<FireworksParamBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FireworksLaunchSchemeBin {
    #[prost(uint32, tag = "1")]
    pub scheme_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub fireworks_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub launch_param_bin_list: ::prost::alloc::vec::Vec<FireworksParamBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerFireworksCompBin {
    #[prost(message, repeated, tag = "1")]
    pub fireworks_reform_bin_list: ::prost::alloc::vec::Vec<FireworksReformBin>,
    #[prost(uint32, tag = "2")]
    pub last_use_launch_scheme_id: u32,
    #[prost(message, repeated, tag = "3")]
    pub launch_scheme_bin_list: ::prost::alloc::vec::Vec<FireworksLaunchSchemeBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerCityCompBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub city_map: ::std::collections::HashMap<u32, CityBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegionalPlayVarBin {
    #[prost(uint32, tag = "1")]
    pub r#type: u32,
    #[prost(float, tag = "2")]
    pub value: f32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeathZoneBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(bool, tag = "2")]
    pub is_open: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerRegionalPlayCompBin {
    #[prost(message, repeated, tag = "1")]
    pub var_bin_list: ::prost::alloc::vec::Vec<RegionalPlayVarBin>,
    #[prost(message, repeated, tag = "2")]
    pub death_zone_bin_list: ::prost::alloc::vec::Vec<DeathZoneBin>,
    #[prost(string, tag = "3")]
    pub last_play_name: ::prost::alloc::string::String,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShareCdInfoBin {
    #[prost(uint32, tag = "1")]
    pub share_cd_id: u32,
    #[prost(uint32, tag = "2")]
    pub config_index: u32,
    #[prost(uint64, tag = "3")]
    pub last_use_time: u64,
    #[prost(uint32, tag = "4")]
    pub cd_token: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerShareCdCompBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub share_cd_info_map: ::std::collections::HashMap<u32, ShareCdInfoBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgPlayerBriefBin {
    #[prost(uint32, tag = "1")]
    pub controller_id: u32,
    #[prost(uint32, tag = "2")]
    pub uid: u32,
    #[prost(string, tag = "3")]
    pub nick_name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "4")]
    pub profile_picture: ::core::option::Option<ProfilePictureBin>,
    #[prost(uint32, repeated, tag = "5")]
    pub card_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(map = "uint32, uint32", tag = "6")]
    pub card_face_map: ::std::collections::HashMap<u32, u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgGameBriefBin {
    #[prost(uint32, tag = "1")]
    pub app_id: u32,
    #[prost(uint32, tag = "2")]
    pub game_uid: u32,
    #[prost(uint32, tag = "3")]
    pub business_type: u32,
    #[prost(message, repeated, tag = "4")]
    pub player_brief_bin_list: ::prost::alloc::vec::Vec<GcgPlayerBriefBin>,
    #[prost(uint32, tag = "5")]
    pub verify_code: u32,
    #[prost(uint32, tag = "6")]
    pub game_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgdsDeckBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(uint32, repeated, tag = "3")]
    pub character_card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub card_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub card_back_id: u32,
    #[prost(uint32, tag = "6")]
    pub field_id: u32,
    #[prost(fixed32, tag = "7")]
    pub create_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgdsCardBin {
    #[prost(uint32, tag = "1")]
    pub card_id: u32,
    #[prost(uint32, tag = "2")]
    pub num: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub unlock_face_type_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "4")]
    pub face_type: u32,
    #[prost(uint32, tag = "5")]
    pub proficiency: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgDeckSystemBin {
    #[prost(message, repeated, tag = "1")]
    pub deck_list: ::prost::alloc::vec::Vec<GcgdsDeckBin>,
    #[prost(message, repeated, tag = "2")]
    pub card_list: ::prost::alloc::vec::Vec<GcgdsCardBin>,
    #[prost(uint32, repeated, tag = "3")]
    pub unlock_card_back_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub unlock_field_id_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub cur_deck_id: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub unlock_deck_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgtcTavernChallengeBin {
    #[prost(uint32, tag = "1")]
    pub character_id: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub unlock_level_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgTavernBin {
    #[prost(uint32, tag = "1")]
    pub character_id: u32,
    #[prost(uint32, tag = "2")]
    pub level_id: u32,
    #[prost(uint32, tag = "3")]
    pub point_id: u32,
    #[prost(bool, tag = "4")]
    pub is_last_duel_win: bool,
    #[prost(message, repeated, tag = "5")]
    pub tavern_challenge_bin_list: ::prost::alloc::vec::Vec<GcgtcTavernChallengeBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgMatchBin {
    #[prost(uint32, tag = "1")]
    pub match_id: u32,
    #[prost(uint32, tag = "2")]
    pub score: u32,
    #[prost(uint32, tag = "3")]
    pub win_streak_count: u32,
    #[prost(uint32, tag = "4")]
    pub lose_streak_count: u32,
    #[prost(uint32, tag = "5")]
    pub refuse_count: u32,
    #[prost(fixed32, tag = "6")]
    pub punish_end_time: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgBasicBin {
    #[prost(uint32, tag = "1")]
    pub level: u32,
    #[prost(uint32, tag = "2")]
    pub exp: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub level_reward_taken_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "4")]
    pub match_bin_list: ::prost::alloc::vec::Vec<GcgMatchBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgLevelBin {
    #[prost(uint32, tag = "1")]
    pub level_id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub finished_challenge_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgBossChallengeBin {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, repeated, tag = "2")]
    pub unlock_level_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgLevelChallengeBin {
    #[prost(message, repeated, tag = "1")]
    pub level_bin_list: ::prost::alloc::vec::Vec<GcgLevelBin>,
    #[prost(uint32, tag = "2")]
    pub pre_config_id: u32,
    #[prost(uint32, tag = "3")]
    pub pre_level_id: u32,
    #[prost(uint32, tag = "4")]
    pub pre_level_type: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub unlock_world_challenge_list: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "6")]
    pub unlock_boss_challenge_list: ::prost::alloc::vec::Vec<GcgBossChallengeBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgConstNpcBin {
    #[prost(uint32, tag = "1")]
    pub npc_id: u32,
    #[prost(uint32, tag = "2")]
    pub scene_point_id: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgTavernSceneBuilderBin {
    #[prost(uint32, tag = "1")]
    pub distribution_id: u32,
    #[prost(uint32, tag = "2")]
    pub last_refresh_game_time: u32,
    #[prost(message, repeated, tag = "3")]
    pub const_npc_list: ::prost::alloc::vec::Vec<GcgConstNpcBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgWeekNpcBin {
    #[prost(uint32, tag = "1")]
    pub npc_id: u32,
    #[prost(uint32, tag = "2")]
    pub level_id: u32,
    #[prost(bool, tag = "3")]
    pub is_unlock: bool,
    #[prost(uint32, tag = "4")]
    pub finish_time: u32,
    #[prost(uint32, tag = "5")]
    pub scene_point_id: u32,
    #[prost(bool, tag = "6")]
    pub is_delete_from_tavern: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcgWeekChallengeBin {
    #[prost(uint32, tag = "1")]
    pub last_refresh_time: u32,
    #[prost(uint32, tag = "2")]
    pub last_refresh_gcg_level: u32,
    #[prost(message, repeated, tag = "3")]
    pub week_npc_list: ::prost::alloc::vec::Vec<GcgWeekNpcBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerGcgCompBin {
    #[prost(message, optional, tag = "1")]
    pub deck_system_bin: ::core::option::Option<GcgDeckSystemBin>,
    #[prost(message, optional, tag = "2")]
    pub tavern_bin: ::core::option::Option<GcgTavernBin>,
    #[prost(message, optional, tag = "3")]
    pub basic_bin: ::core::option::Option<GcgBasicBin>,
    #[prost(message, optional, tag = "4")]
    pub level_challenge_bin: ::core::option::Option<GcgLevelChallengeBin>,
    #[prost(message, optional, tag = "5")]
    pub tavern_scene_builder_bin: ::core::option::Option<GcgTavernSceneBuilderBin>,
    #[prost(message, optional, tag = "6")]
    pub week_challenge_bin: ::core::option::Option<GcgWeekChallengeBin>,
    #[prost(message, optional, tag = "101")]
    pub game_brief_bin: ::core::option::Option<GcgGameBriefBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AranaraCollectionListBin {
    #[prost(uint32, repeated, tag = "1")]
    pub collection_id_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AranaraCollectionSuiteBin {
    #[prost(uint32, tag = "1")]
    pub collection_type: u32,
    #[prost(map = "uint32, message", tag = "2")]
    pub state_collection_map: ::std::collections::HashMap<u32, AranaraCollectionListBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerAranaraCollectionCompBin {
    #[prost(message, repeated, tag = "1")]
    pub collection_suite_list: ::prost::alloc::vec::Vec<AranaraCollectionSuiteBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerDataBin {
    #[prost(message, optional, tag = "1")]
    pub basic_bin: ::core::option::Option<PlayerBasicCompBin>,
    #[prost(message, optional, tag = "2")]
    pub avatar_bin: ::core::option::Option<PlayerAvatarCompBin>,
    #[prost(message, optional, tag = "3")]
    pub quest_bin: ::core::option::Option<PlayerQuestCompBin>,
    #[prost(message, optional, tag = "4")]
    pub shop_bin: ::core::option::Option<PlayerShopCompBin>,
    #[prost(message, optional, tag = "5")]
    pub item_bin: ::core::option::Option<PlayerItemCompBin>,
    #[prost(message, optional, tag = "6")]
    pub dungeon_bin: ::core::option::Option<PlayerDungeonCompBin>,
    #[prost(message, optional, tag = "7")]
    pub scene_bin: ::core::option::Option<PlayerSceneCompBin>,
    #[prost(message, optional, tag = "8")]
    pub bored_bin: ::core::option::Option<PlayerBoredCompBin>,
    #[prost(message, optional, tag = "9")]
    pub mp_bin: ::core::option::Option<PlayerMpCompBin>,
    #[prost(message, optional, tag = "10")]
    pub cook_bin: ::core::option::Option<PlayerCookCompBin>,
    #[prost(message, optional, tag = "11")]
    pub mail_bin: ::core::option::Option<PlayerMailCompBin>,
    #[prost(message, optional, tag = "12")]
    pub login_bin: ::core::option::Option<PlayerLoginCompBin>,
    #[prost(message, optional, tag = "13")]
    pub offline_msg_bin: ::core::option::Option<PlayerOfflineMsgCompBin>,
    #[prost(message, optional, tag = "14")]
    pub daily_task_bin: ::core::option::Option<PlayerDailyTaskCompBin>,
    #[prost(message, optional, tag = "15")]
    pub rand_task_bin: ::core::option::Option<PlayerRandTaskCompBin>,
    #[prost(message, optional, tag = "16")]
    pub gacha_bin: ::core::option::Option<PlayerGachaCompBin>,
    #[prost(message, optional, tag = "17")]
    pub giving_bin: ::core::option::Option<PlayerGivingCompBin>,
    #[prost(message, optional, tag = "18")]
    pub forge_bin: ::core::option::Option<PlayerForgeCompBin>,
    #[prost(message, optional, tag = "19")]
    pub investigation_bin: ::core::option::Option<PlayerInvestigationCompBin>,
    #[prost(message, optional, tag = "20")]
    pub activity_bin: ::core::option::Option<PlayerActivityCompBin>,
    #[prost(message, optional, tag = "21")]
    pub watcher_bin: ::core::option::Option<PlayerWatcherCompBin>,
    #[prost(message, optional, tag = "22")]
    pub tower_bin: ::core::option::Option<PlayerTowerCompBin>,
    #[prost(message, optional, tag = "23")]
    pub sign_in_bin: ::core::option::Option<PlayerSignInCompBin>,
    #[prost(message, optional, tag = "24")]
    pub battle_pass_bin: ::core::option::Option<PlayerBattlePassCompBin>,
    #[prost(message, optional, tag = "25")]
    pub blossom_bin: ::core::option::Option<PlayerBlossomCompBin>,
    #[prost(message, optional, tag = "26")]
    pub recharge_bin: ::core::option::Option<PlayerRechargeCompBin>,
    #[prost(message, optional, tag = "27")]
    pub mp_play_bin: ::core::option::Option<PlayerMpPlayCompBin>,
    #[prost(message, optional, tag = "28")]
    pub social_bin: ::core::option::Option<PlayerSocialCompBin>,
    #[prost(message, optional, tag = "29")]
    pub codex_bin: ::core::option::Option<PlayerCodexCompBin>,
    #[prost(message, optional, tag = "30")]
    pub achievement_bin: ::core::option::Option<PlayerAchievementCompBin>,
    #[prost(message, optional, tag = "31")]
    pub trial_avatar_bin: ::core::option::Option<PlayerTrialAvatarCompBin>,
    #[prost(message, optional, tag = "32")]
    pub personal_line_bin: ::core::option::Option<PlayerPersonalLineCompBin>,
    #[prost(message, optional, tag = "33")]
    pub reputation_bin: ::core::option::Option<PlayerReputationCompBin>,
    #[prost(message, optional, tag = "34")]
    pub widget_comp_bin: ::core::option::Option<PlayerWidgetCompBin>,
    #[prost(message, optional, tag = "35")]
    pub hunting_bin: ::core::option::Option<PlayerHuntingCompBin>,
    #[prost(message, optional, tag = "36")]
    pub scene_play_bin: ::core::option::Option<PlayerScenePlayCompBin>,
    #[prost(message, optional, tag = "37")]
    pub combine_bin: ::core::option::Option<PlayerCombineCompBin>,
    #[prost(message, optional, tag = "38")]
    pub coop_bin: ::core::option::Option<PlayerCoopCompBin>,
    #[prost(message, optional, tag = "39")]
    pub offering_bin: ::core::option::Option<PlayerOfferingCompBin>,
    #[prost(message, optional, tag = "40")]
    pub routine_bin: ::core::option::Option<PlayerRoutineCompBin>,
    #[prost(message, optional, tag = "41")]
    pub reunion_bin: ::core::option::Option<PlayerReunionCompBin>,
    #[prost(message, optional, tag = "42")]
    pub miracle_ring_bin: ::core::option::Option<PlayerMiracleRingCompBin>,
    #[prost(message, optional, tag = "43")]
    pub mechanicus_bin: ::core::option::Option<PlayerMechanicusCompBin>,
    #[prost(message, optional, tag = "44")]
    pub op_activity_bin: ::core::option::Option<PlayerOpActivityCompBin>,
    #[prost(message, optional, tag = "45")]
    pub gallery_bin: ::core::option::Option<PlayerGalleryCompBin>,
    #[prost(message, optional, tag = "46")]
    pub region_search_bin: ::core::option::Option<PlayerRegionSearchCompBin>,
    #[prost(message, optional, tag = "47")]
    pub talk_bin: ::core::option::Option<PlayerTalkCompBin>,
    #[prost(message, optional, tag = "48")]
    pub home_bin: ::core::option::Option<PlayerHomeCompBin>,
    #[prost(message, optional, tag = "49")]
    pub offline_op_bin: ::core::option::Option<PlayerOfflineOpBin>,
    #[prost(message, optional, tag = "50")]
    pub h5_activity_bin: ::core::option::Option<PlayerH5ActivityCompBin>,
    #[prost(message, optional, tag = "51")]
    pub match_bin: ::core::option::Option<PlayerMatchCompBin>,
    #[prost(message, optional, tag = "52")]
    pub exhibition_bin: ::core::option::Option<PlayerExhibitionCompBin>,
    #[prost(message, optional, tag = "53")]
    pub group_link_bin: ::core::option::Option<PlayerGroupLinkCompBin>,
    #[prost(message, optional, tag = "54")]
    pub fishing_bin: ::core::option::Option<PlayerFishingCompBin>,
    #[prost(message, optional, tag = "55")]
    pub city_bin: ::core::option::Option<PlayerCityCompBin>,
    #[prost(message, optional, tag = "56")]
    pub fireworks_bin: ::core::option::Option<PlayerFireworksCompBin>,
    #[prost(message, optional, tag = "57")]
    pub regional_play_bin: ::core::option::Option<PlayerRegionalPlayCompBin>,
    #[prost(message, optional, tag = "58")]
    pub custom_dungeon_bin: ::core::option::Option<PlayerCustomDungeonCompBin>,
    #[prost(message, optional, tag = "59")]
    pub share_cd_bin: ::core::option::Option<PlayerShareCdCompBin>,
    #[prost(message, optional, tag = "60")]
    pub ugc_bin: ::core::option::Option<PlayerUgcCompBin>,
    #[prost(message, optional, tag = "61")]
    pub aranara_collection_bin: ::core::option::Option<PlayerAranaraCollectionCompBin>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerJsonData {
    #[prost(bool, tag = "1")]
    pub is_proficient_player: bool,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerExtJsonData {
    #[prost(uint32, tag = "1")]
    pub reg_platform: u32,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerExtraBinData {
    #[prost(map = "uint32, message", tag = "1")]
    pub anti_offline_data_map: ::std::collections::HashMap<
        u32,
        SecurityAntiOfflineDataBin,
    >,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerBeforeLoginBinData {
    #[prost(uint32, repeated, tag = "1")]
    pub finish_quest_res_collection: ::prost::alloc::vec::Vec<u32>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerData {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
    #[prost(string, tag = "2")]
    pub nickname: ::prost::alloc::string::String,
    #[prost(fixed32, tag = "3")]
    pub last_login_time: u32,
    #[prost(bytes = "vec", tag = "4")]
    pub bin: ::prost::alloc::vec::Vec<u8>,
    #[prost(uint32, tag = "5")]
    pub data_version: u32,
    #[prost(uint32, tag = "6")]
    pub level: u32,
    #[prost(uint32, tag = "7")]
    pub exp: u32,
    #[prost(string, tag = "8")]
    pub json_data: ::prost::alloc::string::String,
    #[prost(bytes = "vec", tag = "9")]
    pub extra_bin_data: ::prost::alloc::vec::Vec<u8>,
    #[prost(string, tag = "10")]
    pub online_id: ::prost::alloc::string::String,
    #[prost(string, tag = "11")]
    pub psn_id: ::prost::alloc::string::String,
    #[prost(bytes = "vec", tag = "12")]
    pub before_login_bin_data: ::prost::alloc::vec::Vec<u8>,
}
#[derive(proto_gen::CmdID)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContentAuditBin {
    #[prost(string, tag = "1")]
    pub content: ::prost::alloc::string::String,
    #[prost(uint32, tag = "2")]
    pub audit_state: u32,
    #[prost(uint32, tag = "3")]
    pub submit_time: u32,
    #[prost(uint32, tag = "4")]
    pub submit_count: u32,
}
#[derive(proto_gen::CmdID)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum GroupBinOperation {
    GroupOpNone = 0,
    GroupOpGadgetMapDel = 1,
    GroupOpDelGadgetList = 2,
    GroupOpMonsterMapDel = 3,
    GroupOpDelMonsterList = 4,
    GorupOpDelTrigger = 5,
    GroupOpSetTriggerCount = 6,
    GroupOpSetVariableVal = 7,
    GroupOpSetTargetSuite = 8,
    GroupOpSetGadgetState = 9,
    GroupOpSetDead = 10,
    GroupOpSetUnregister = 11,
}
impl GroupBinOperation {
    /// 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 {
            GroupBinOperation::GroupOpNone => "GROUP_OP_NONE",
            GroupBinOperation::GroupOpGadgetMapDel => "GROUP_OP_GADGET_MAP_DEL",
            GroupBinOperation::GroupOpDelGadgetList => "GROUP_OP_DEL_GADGET_LIST",
            GroupBinOperation::GroupOpMonsterMapDel => "GROUP_OP_MONSTER_MAP_DEL",
            GroupBinOperation::GroupOpDelMonsterList => "GROUP_OP_DEL_MONSTER_LIST",
            GroupBinOperation::GorupOpDelTrigger => "GORUP_OP_DEL_TRIGGER",
            GroupBinOperation::GroupOpSetTriggerCount => "GROUP_OP_SET_TRIGGER_COUNT",
            GroupBinOperation::GroupOpSetVariableVal => "GROUP_OP_SET_VARIABLE_VAL",
            GroupBinOperation::GroupOpSetTargetSuite => "GROUP_OP_SET_TARGET_SUITE",
            GroupBinOperation::GroupOpSetGadgetState => "GROUP_OP_SET_GADGET_STATE",
            GroupBinOperation::GroupOpSetDead => "GROUP_OP_SET_DEAD",
            GroupBinOperation::GroupOpSetUnregister => "GROUP_OP_SET_UNREGISTER",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GROUP_OP_NONE" => Some(Self::GroupOpNone),
            "GROUP_OP_GADGET_MAP_DEL" => Some(Self::GroupOpGadgetMapDel),
            "GROUP_OP_DEL_GADGET_LIST" => Some(Self::GroupOpDelGadgetList),
            "GROUP_OP_MONSTER_MAP_DEL" => Some(Self::GroupOpMonsterMapDel),
            "GROUP_OP_DEL_MONSTER_LIST" => Some(Self::GroupOpDelMonsterList),
            "GORUP_OP_DEL_TRIGGER" => Some(Self::GorupOpDelTrigger),
            "GROUP_OP_SET_TRIGGER_COUNT" => Some(Self::GroupOpSetTriggerCount),
            "GROUP_OP_SET_VARIABLE_VAL" => Some(Self::GroupOpSetVariableVal),
            "GROUP_OP_SET_TARGET_SUITE" => Some(Self::GroupOpSetTargetSuite),
            "GROUP_OP_SET_GADGET_STATE" => Some(Self::GroupOpSetGadgetState),
            "GROUP_OP_SET_DEAD" => Some(Self::GroupOpSetDead),
            "GROUP_OP_SET_UNREGISTER" => Some(Self::GroupOpSetUnregister),
            _ => None,
        }
    }
}
#[derive(proto_gen::CmdID)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum GroupLinkOpType {
    GroupLinkOpNone = 0,
    GroupLinkOpBundleRegister = 1,
    GroupLinkOpBundleFinish = 2,
    GroupLinkOpBundleUnregister = 3,
}
impl GroupLinkOpType {
    /// 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 {
            GroupLinkOpType::GroupLinkOpNone => "GROUP_LINK_OP_NONE",
            GroupLinkOpType::GroupLinkOpBundleRegister => "GROUP_LINK_OP_BUNDLE_REGISTER",
            GroupLinkOpType::GroupLinkOpBundleFinish => "GROUP_LINK_OP_BUNDLE_FINISH",
            GroupLinkOpType::GroupLinkOpBundleUnregister => {
                "GROUP_LINK_OP_BUNDLE_UNREGISTER"
            }
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GROUP_LINK_OP_NONE" => Some(Self::GroupLinkOpNone),
            "GROUP_LINK_OP_BUNDLE_REGISTER" => Some(Self::GroupLinkOpBundleRegister),
            "GROUP_LINK_OP_BUNDLE_FINISH" => Some(Self::GroupLinkOpBundleFinish),
            "GROUP_LINK_OP_BUNDLE_UNREGISTER" => Some(Self::GroupLinkOpBundleUnregister),
            _ => None,
        }
    }
}
#[derive(proto_gen::CmdID)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SceneTagOpType {
    SceneTagOpNone = 0,
    SceneTagOpAdd = 1,
    SceneTagOpDel = 2,
}
impl SceneTagOpType {
    /// 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 {
            SceneTagOpType::SceneTagOpNone => "SCENE_TAG_OP_NONE",
            SceneTagOpType::SceneTagOpAdd => "SCENE_TAG_OP_ADD",
            SceneTagOpType::SceneTagOpDel => "SCENE_TAG_OP_DEL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SCENE_TAG_OP_NONE" => Some(Self::SceneTagOpNone),
            "SCENE_TAG_OP_ADD" => Some(Self::SceneTagOpAdd),
            "SCENE_TAG_OP_DEL" => Some(Self::SceneTagOpDel),
            _ => None,
        }
    }
}
#[derive(proto_gen::CmdID)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum OfflineOpType {
    OfflineOpNone = 0,
    OfflineOpTest = 1,
    OfflineOpFurnitureMakeHelp = 2,
    OfflineOpPlantFlowerActivityGiveFlower = 3,
    OfflineOpWinterCampGiveItem = 4,
    OfflineOpActivityGiveGift = 5,
    OfflineOpVintageActivityDividend = 6,
    OfflineOpGcgSettle = 7,
}
impl OfflineOpType {
    /// 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 {
            OfflineOpType::OfflineOpNone => "OFFLINE_OP_NONE",
            OfflineOpType::OfflineOpTest => "OFFLINE_OP_TEST",
            OfflineOpType::OfflineOpFurnitureMakeHelp => "OFFLINE_OP_FURNITURE_MAKE_HELP",
            OfflineOpType::OfflineOpPlantFlowerActivityGiveFlower => {
                "OFFLINE_OP_PLANT_FLOWER_ACTIVITY_GIVE_FLOWER"
            }
            OfflineOpType::OfflineOpWinterCampGiveItem => {
                "OFFLINE_OP_WINTER_CAMP_GIVE_ITEM"
            }
            OfflineOpType::OfflineOpActivityGiveGift => "OFFLINE_OP_ACTIVITY_GIVE_GIFT",
            OfflineOpType::OfflineOpVintageActivityDividend => {
                "OFFLINE_OP_VINTAGE_ACTIVITY_DIVIDEND"
            }
            OfflineOpType::OfflineOpGcgSettle => "OFFLINE_OP_GCG_SETTLE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "OFFLINE_OP_NONE" => Some(Self::OfflineOpNone),
            "OFFLINE_OP_TEST" => Some(Self::OfflineOpTest),
            "OFFLINE_OP_FURNITURE_MAKE_HELP" => Some(Self::OfflineOpFurnitureMakeHelp),
            "OFFLINE_OP_PLANT_FLOWER_ACTIVITY_GIVE_FLOWER" => {
                Some(Self::OfflineOpPlantFlowerActivityGiveFlower)
            }
            "OFFLINE_OP_WINTER_CAMP_GIVE_ITEM" => Some(Self::OfflineOpWinterCampGiveItem),
            "OFFLINE_OP_ACTIVITY_GIVE_GIFT" => Some(Self::OfflineOpActivityGiveGift),
            "OFFLINE_OP_VINTAGE_ACTIVITY_DIVIDEND" => {
                Some(Self::OfflineOpVintageActivityDividend)
            }
            "OFFLINE_OP_GCG_SETTLE" => Some(Self::OfflineOpGcgSettle),
            _ => None,
        }
    }
}
