syntax = "proto3";

import "google/protobuf/wrappers.proto";

import "google/protobuf/timestamp.proto";

package discord_protos.discord_users.v1;

message PreloadedUserSettings {
  message Versions {
    uint32 client_version = 1;
    uint32 server_version = 2;
    uint32 data_version = 3;
  }

  enum InboxTab {
    INBOX_TAB_UNSPECIFIED = 0;
    INBOX_TAB_MENTIONS = 1;
    INBOX_TAB_UNREADS = 2;
    INBOX_TAB_TODOS = 3;
    INBOX_TAB_FOR_YOU = 4;
    INBOX_TAB_GAME_INVITES = 5;
    INBOX_TAB_BOOKMARKS = 6;
    INBOX_TAB_SCHEDULED = 7;
    INBOX_TAB_REMINDERS = 8;
  }

  message InboxSettings {
    InboxTab current_tab = 1;
    bool viewed_tutorial = 2;
  }

  message ChannelIconEmoji {
    optional google.protobuf.UInt64Value id = 1;
    optional google.protobuf.StringValue name = 2;
    optional google.protobuf.UInt64Value color = 3;
  }

  message CustomNotificationSoundConfig {
    optional google.protobuf.StringValue notification_sound_pack_id = 1;
  }

  message ChannelSettings {
    bool collapsed_in_inbox = 1;
    optional ChannelIconEmoji icon_emoji = 2;
    optional CustomNotificationSoundConfig custom_notification_sound_config = 3;
  }

  message CustomCallSound {
    fixed64 sound_id = 1;
    fixed64 guild_id = 2;
  }

  message ChannelListSettings {
    optional google.protobuf.StringValue layout = 1;
    optional google.protobuf.StringValue message_previews = 2;
  }

  message GuildDismissibleContentState {
    bool dismissed = 1;
    uint32 last_dismissed_version = 2;
    uint64 last_dismissed_at_ms = 3;
    uint64 last_dismissed_object_id = 4;
    uint32 num_times_dismissed = 5;
  }

  enum GuildThemeSourcePreference {
    GUILD_THEME_SOURCE_PREFERENCE_UNSPECIFIED = 0;
    GUILD_THEME_SOURCE_PREFERENCE_PERSONAL = 1;
    GUILD_THEME_SOURCE_PREFERENCE_GUILD = 2;
  }

  message GuildSettings {
    map<fixed64, ChannelSettings> channels = 1;
    uint32 hub_progress = 2;
    uint32 guild_onboarding_progress = 3;
    optional google.protobuf.Timestamp guild_recents_dismissed_at = 4;
    bytes dismissed_guild_content = 5;
    optional CustomCallSound join_sound = 6;
    optional ChannelListSettings mobile_redesign_channel_list_settings = 7;
    bool disable_raid_alert_push = 8;
    bool disable_raid_alert_nag = 9;
    optional CustomNotificationSoundConfig custom_notification_sound_config = 10;
    bool leaderboards_disabled = 11;
    map<int32, GuildDismissibleContentState> guild_dismissible_content_states = 12;
    GuildThemeSourcePreference guild_theme_source_preference = 13;
  }

  message AllGuildSettings {
    map<fixed64, GuildSettings> guilds = 1;
  }

  message RecurringDismissibleContentState {
    uint32 last_dismissed_version = 1;
    uint64 last_dismissed_at_ms = 2;
    uint64 last_dismissed_object_id = 3;
    uint32 num_times_dismissed = 4;
  }

  message UserContentSettings {
    bytes dismissed_contents = 1;
    optional google.protobuf.StringValue last_dismissed_outbound_promotion_start_date = 2;
    optional google.protobuf.Timestamp premium_tier_0_modal_dismissed_at = 3;
    optional google.protobuf.Timestamp guild_onboarding_upsell_dismissed_at = 4;
    optional google.protobuf.Timestamp safety_user_sentiment_notice_dismissed_at = 5;
    fixed64 last_received_changelog_id = 6;
    map<int32, RecurringDismissibleContentState> recurring_dismissible_content_states = 7;
    fixed64 last_gift_intent_dismissed_at_ms = 8;
  }

  message VideoFilterBackgroundBlur {
    bool use_blur = 1;
  }

  message VideoFilterAsset {
    fixed64 id = 1;
    string asset_hash = 2;
  }

  message SoundboardSettings {
    float volume = 1;
  }

  message VoiceAndVideoSettings {
    oneof video_background_filter_desktop {
      VideoFilterBackgroundBlur blur = 1;
      uint32 preset_option = 2;
      VideoFilterAsset custom_asset = 3;
    }
    optional google.protobuf.BoolValue always_preview_video = 5;
    optional google.protobuf.UInt32Value afk_timeout = 6;
    optional google.protobuf.BoolValue stream_notifications_enabled = 7;
    optional google.protobuf.BoolValue native_phone_integration_enabled = 8;
    optional SoundboardSettings soundboard_settings = 9;
    optional google.protobuf.BoolValue disable_stream_previews = 10;
    optional google.protobuf.FloatValue soundmoji_volume = 11;
  }

  enum DmSpamFilterV2 {
    DM_SPAM_FILTER_V2_DEFAULT_UNSET = 0;
    DM_SPAM_FILTER_V2_DISABLED = 1;
    DM_SPAM_FILTER_V2_NON_FRIENDS = 2;
    DM_SPAM_FILTER_V2_FRIENDS_AND_NON_FRIENDS = 3;
  }

  enum ExplicitContentRedaction {
    EXPLICIT_CONTENT_REDACTION_UNSET_EXPLICIT_CONTENT_REDACTION = 0;
    EXPLICIT_CONTENT_REDACTION_SHOW = 1;
    EXPLICIT_CONTENT_REDACTION_BLUR = 2;
    EXPLICIT_CONTENT_REDACTION_BLOCK = 3;
  }

  message ExplicitContentSettings {
    ExplicitContentRedaction explicit_content_guilds = 1;
    ExplicitContentRedaction explicit_content_friend_dm = 2;
    ExplicitContentRedaction explicit_content_non_friend_dm = 3;
  }

  message KeywordFilterSettings {
    optional google.protobuf.BoolValue profanity = 1;
    optional google.protobuf.BoolValue sexual_content = 2;
    optional google.protobuf.BoolValue slurs = 3;
  }

  message GoreContentSettings {
    ExplicitContentRedaction gore_content_guilds = 1;
    ExplicitContentRedaction gore_content_friend_dm = 2;
    ExplicitContentRedaction gore_content_non_friend_dm = 3;
  }

  message DefaultReactionEmoji {
    optional google.protobuf.UInt64Value emoji_id = 1;
    optional google.protobuf.StringValue emoji_name = 2;
    optional google.protobuf.BoolValue animated = 3;
    optional google.protobuf.BoolValue disable_double_tap = 4;
  }

  message SelfHarmContentSettings {
    ExplicitContentRedaction self_harm_content_guilds = 1;
    ExplicitContentRedaction self_harm_content_friend_dm = 2;
    ExplicitContentRedaction self_harm_content_non_friend_dm = 3;
  }

  enum SearchProvider {
    SEARCH_PROVIDER_UNSET = 0;
    SEARCH_PROVIDER_GOOGLE = 1;
    SEARCH_PROVIDER_BING = 2;
    SEARCH_PROVIDER_DUCKDUCKGO = 3;
    SEARCH_PROVIDER_CUSTOM = 4;
  }

  message TextAndImagesSettings {
    optional google.protobuf.StringValue diversity_surrogate = 1;
    optional google.protobuf.BoolValue use_rich_chat_input = 2;
    optional google.protobuf.BoolValue use_thread_sidebar = 3;
    optional google.protobuf.StringValue render_spoilers = 4;
    repeated string emoji_picker_collapsed_sections = 5 [packed = false];
    repeated string sticker_picker_collapsed_sections = 6 [packed = false];
    optional google.protobuf.BoolValue view_image_descriptions = 7;
    optional google.protobuf.BoolValue show_command_suggestions = 8;
    optional google.protobuf.BoolValue inline_attachment_media = 9;
    optional google.protobuf.BoolValue inline_embed_media = 10;
    optional google.protobuf.BoolValue gif_auto_play = 11;
    optional google.protobuf.BoolValue render_embeds = 12;
    optional google.protobuf.BoolValue render_reactions = 13;
    optional google.protobuf.BoolValue animate_emoji = 14;
    optional google.protobuf.UInt32Value animate_stickers = 15;
    optional google.protobuf.BoolValue enable_tts_command = 16;
    optional google.protobuf.BoolValue message_display_compact = 17;
    optional google.protobuf.UInt32Value explicit_content_filter = 19;
    optional google.protobuf.BoolValue view_nsfw_guilds = 20;
    optional google.protobuf.BoolValue convert_emoticons = 21;
    optional google.protobuf.BoolValue expression_suggestions_enabled = 22;
    optional google.protobuf.BoolValue view_nsfw_commands = 23;
    optional google.protobuf.BoolValue use_legacy_chat_input = 24;
    repeated string soundboard_picker_collapsed_sections = 25 [packed = false];
    optional google.protobuf.UInt32Value dm_spam_filter = 26;
    DmSpamFilterV2 dm_spam_filter_v2 = 27;
    optional google.protobuf.BoolValue include_stickers_in_autocomplete = 28;
    optional ExplicitContentSettings explicit_content_settings = 29;
    optional KeywordFilterSettings keyword_filter_settings = 30;
    optional google.protobuf.BoolValue include_soundmoji_in_autocomplete = 31;
    optional GoreContentSettings gore_content_settings = 32;
    optional DefaultReactionEmoji default_reaction_emoji = 33;
    optional google.protobuf.BoolValue show_mention_suggestions = 34;
    optional SelfHarmContentSettings self_harm_content_settings = 35;
    optional google.protobuf.BoolValue is_cross_dm_search_enabled = 36;
    SearchProvider search_provider = 37;
    optional google.protobuf.StringValue custom_search_url = 38;
    optional google.protobuf.BoolValue include_game_mentions_in_autocomplete = 39;
    optional google.protobuf.BoolValue inline_emoji_suggestions_enabled = 40;
  }

  enum ReactionNotificationType {
    REACTION_NOTIFICATION_TYPE_NOTIFICATIONS_ENABLED = 0;
    REACTION_NOTIFICATION_TYPE_ONLY_DMS = 1;
    REACTION_NOTIFICATION_TYPE_NOTIFICATIONS_DISABLED = 2;
  }

  enum GameActivityNotificationType {
    GAME_ACTIVITY_NOTIFICATION_TYPE_ACTIVITY_NOTIFICATIONS_UNSET = 0;
    GAME_ACTIVITY_NOTIFICATION_TYPE_ACTIVITY_NOTIFICATIONS_DISABLED = 1;
    GAME_ACTIVITY_NOTIFICATION_TYPE_ACTIVITY_NOTIFICATIONS_ENABLED = 2;
    GAME_ACTIVITY_NOTIFICATION_TYPE_ONLY_GAMES_PLAYED = 3;
  }

  enum CustomStatusPushNotificationType {
    CUSTOM_STATUS_PUSH_NOTIFICATION_TYPE_STATUS_PUSH_UNSET = 0;
    CUSTOM_STATUS_PUSH_NOTIFICATION_TYPE_STATUS_PUSH_ENABLED = 1;
    CUSTOM_STATUS_PUSH_NOTIFICATION_TYPE_STATUS_PUSH_DISABLED = 2;
  }

  message NotificationSettings {
    optional google.protobuf.BoolValue show_in_app_notifications = 1;
    optional google.protobuf.BoolValue notify_friends_on_go_live = 2;
    fixed64 notification_center_acked_before_id = 3;
    optional google.protobuf.BoolValue enable_burst_reaction_notifications = 4;
    optional google.protobuf.BoolValue quiet_mode = 5;
    fixed64 focus_mode_expires_at_ms = 6;
    ReactionNotificationType reaction_notifications = 7;
    GameActivityNotificationType game_activity_notifications = 8;
    CustomStatusPushNotificationType custom_status_push_notifications = 9;
    optional google.protobuf.BoolValue game_activity_exclude_steam_notifications = 10;
    optional google.protobuf.BoolValue enable_voice_activity_notifications = 11;
    optional google.protobuf.BoolValue enable_friend_online_notifications = 12;
    optional google.protobuf.BoolValue enable_user_resurrection_notifications = 13;
    optional google.protobuf.BoolValue enable_friend_anniversary_notifications = 14;
    optional google.protobuf.BoolValue enable_game_update_notifications = 15;
    optional google.protobuf.BoolValue enable_profile_updates_notifications = 16;
    optional google.protobuf.BoolValue enable_server_trending_notifications = 17;
    optional google.protobuf.BoolValue enable_dm_reply_nudge_reminders = 18;
    optional google.protobuf.BoolValue enable_summary_reminder_notifications = 19;
    optional google.protobuf.BoolValue enable_gdm_all_reaction_notifications = 20;
    optional google.protobuf.BoolValue enable_friend_gaming_activity_notifications = 21;
    optional google.protobuf.BoolValue enable_upcoming_server_event_notifications = 22;
    optional google.protobuf.BoolValue enable_screen_downtime_schedule_notifications = 23;
    optional google.protobuf.BoolValue notify_friends_on_profile_update = 24;
    optional google.protobuf.BoolValue notify_friends_on_come_online = 25;
  }

  enum GuildActivityStatusRestrictionDefault {
    GUILD_ACTIVITY_STATUS_RESTRICTION_DEFAULT_OFF = 0;
    GUILD_ACTIVITY_STATUS_RESTRICTION_DEFAULT_ON_FOR_LARGE_GUILDS = 1;
    GUILD_ACTIVITY_STATUS_RESTRICTION_DEFAULT_ON = 2;
  }

  enum GuildsLeaderboardOptOutDefault {
    GUILDS_LEADERBOARD_OPT_OUT_DEFAULT_OFF_FOR_NEW_GUILDS = 0;
    GUILDS_LEADERBOARD_OPT_OUT_DEFAULT_ON_FOR_NEW_GUILDS = 1;
  }

  enum SlayerSDKReceiveInGameDMs {
    SLAYER_SDK_RECEIVE_IN_GAME_DMS_UNSET = 0;
    SLAYER_SDK_RECEIVE_IN_GAME_DMS_ALL = 1;
    SLAYER_SDK_RECEIVE_IN_GAME_DMS_USERS_WITH_GAME = 2;
    SLAYER_SDK_RECEIVE_IN_GAME_DMS_NONE = 3;
  }

  enum GuildActivityStatusRestrictionDefaultV2 {
    GUILD_ACTIVITY_STATUS_RESTRICTION_DEFAULT_V2_ACTIVITY_STATUS_UNSET = 0;
    GUILD_ACTIVITY_STATUS_RESTRICTION_DEFAULT_V2_ACTIVITY_STATUS_OFF = 1;
    GUILD_ACTIVITY_STATUS_RESTRICTION_DEFAULT_V2_ACTIVITY_STATUS_ON_FOR_LARGE_GUILDS = 2;
    GUILD_ACTIVITY_STATUS_RESTRICTION_DEFAULT_V2_ACTIVITY_STATUS_ON = 3;
  }

  enum ProfileVisibility {
    PROFILE_VISIBILITY_UNSET = 0;
    PROFILE_VISIBILITY_FRIENDS_ONLY = 1;
    PROFILE_VISIBILITY_FRIENDS_AND_SMALL_GUILDS = 2;
    PROFILE_VISIBILITY_FRIENDS_AND_ALL_GUILDS = 3;
  }

  enum AdTopic {
    AD_TOPIC_UNSPECIFIED = 0;
    AD_TOPIC_REAL_MONEY_GAMING = 1;
  }

  message PrivacySettings {
    optional google.protobuf.BoolValue allow_activity_party_privacy_friends = 1;
    optional google.protobuf.BoolValue allow_activity_party_privacy_voice_channel = 2;
    repeated fixed64 restricted_guild_ids = 3;
    bool default_guilds_restricted = 4;
    bool allow_accessibility_detection = 7;
    optional google.protobuf.BoolValue detect_platform_accounts = 8;
    optional google.protobuf.BoolValue passwordless = 9;
    optional google.protobuf.BoolValue contact_sync_enabled = 10;
    optional google.protobuf.UInt32Value friend_source_flags = 11;
    optional google.protobuf.UInt32Value friend_discovery_flags = 12;
    repeated fixed64 activity_restricted_guild_ids = 13;
    GuildActivityStatusRestrictionDefault default_guilds_activity_restricted = 14;
    repeated fixed64 activity_joining_restricted_guild_ids = 15;
    repeated fixed64 message_request_restricted_guild_ids = 16;
    optional google.protobuf.BoolValue default_message_request_restricted = 17;
    optional google.protobuf.BoolValue drops_opted_out = 18;
    optional google.protobuf.BoolValue non_spam_retraining_opt_in = 19;
    optional google.protobuf.BoolValue family_center_enabled = 20;
    optional google.protobuf.BoolValue family_center_enabled_v2 = 21;
    optional google.protobuf.BoolValue hide_legacy_username = 22;
    optional google.protobuf.BoolValue inappropriate_conversation_warnings = 23;
    optional google.protobuf.BoolValue recent_games_enabled = 24;
    GuildsLeaderboardOptOutDefault guilds_leaderboard_opt_out_default = 25;
    optional google.protobuf.BoolValue allow_game_friend_dms_in_discord = 26;
    optional google.protobuf.BoolValue default_guilds_restricted_v2 = 27;
    SlayerSDKReceiveInGameDMs slayer_sdk_receive_dms_in_game = 28;
    GuildActivityStatusRestrictionDefaultV2 default_guilds_activity_restricted_v2 = 29;
    optional google.protobuf.BoolValue quests_3p_data_opted_out = 30;
    optional google.protobuf.BoolValue show_local_time = 31;
    ProfileVisibility profile_visibility = 32;
    optional google.protobuf.BoolValue hide_friend_request_notes = 33;
    repeated AdTopic ad_topic_opt_outs = 34;
    optional google.protobuf.BoolValue swp_message_promotion_opted_out = 35;
  }

  message DebugSettings {
    optional google.protobuf.BoolValue rtc_panel_show_voice_states = 1;
  }

  message GameLibrarySettings {
    optional google.protobuf.BoolValue install_shortcut_desktop = 1;
    optional google.protobuf.BoolValue install_shortcut_start_menu = 2;
    optional google.protobuf.BoolValue disable_games_tab = 3;
  }

  message CustomStatus {
    string text = 1;
    fixed64 emoji_id = 2;
    string emoji_name = 3;
    fixed64 expires_at_ms = 4;
    fixed64 created_at_ms = 5;
    optional google.protobuf.StringValue label = 6;
  }

  message StatusSettings {
    optional google.protobuf.StringValue status = 1;
    optional CustomStatus custom_status = 2;
    optional google.protobuf.BoolValue show_current_game = 3;
    fixed64 status_expires_at_ms = 4;
    optional google.protobuf.UInt64Value status_created_at_ms = 5;
  }

  message LocalizationSettings {
    optional google.protobuf.StringValue locale = 1;
    optional google.protobuf.Int32Value timezone_offset = 2;
    optional google.protobuf.StringValue timezone_name = 3;
  }

  enum Theme {
    THEME_UNSET = 0;
    THEME_DARK = 1;
    THEME_LIGHT = 2;
    THEME_DARKER = 3;
    THEME_MIDNIGHT = 4;
  }

  message CustomUserThemeSettings {
    repeated string colors = 1 [packed = false];
    repeated float gradient_color_stops = 2;
    int32 gradient_angle = 3;
    int32 base_mix = 4;
  }

  message ClientThemeSettings {
    optional google.protobuf.UInt32Value background_gradient_preset_id = 2;
    optional CustomUserThemeSettings custom_user_theme_settings = 4;
  }

  enum TimestampHourCycle {
    TIMESTAMP_HOUR_CYCLE_AUTO = 0;
    TIMESTAMP_HOUR_CYCLE_H12 = 1;
    TIMESTAMP_HOUR_CYCLE_H23 = 2;
  }

  enum LaunchPadMode {
    LAUNCH_PAD_MODE_LAUNCH_PAD_DISABLED = 0;
    LAUNCH_PAD_MODE_LAUNCH_PAD_GESTURE_FULL_SCREEN = 1;
    LAUNCH_PAD_MODE_LAUNCH_PAD_GESTURE_RIGHT_EDGE = 2;
    LAUNCH_PAD_MODE_LAUNCH_PAD_PULL_TAB = 3;
  }

  enum UIDensity {
    UI_DENSITY_UNSET_UI_DENSITY = 0;
    UI_DENSITY_COMPACT = 1;
    UI_DENSITY_COZY = 2;
    UI_DENSITY_RESPONSIVE = 3;
    UI_DENSITY_DEFAULT = 4;
  }

  enum SwipeRightToLeftMode {
    SWIPE_RIGHT_TO_LEFT_MODE_SWIPE_RIGHT_TO_LEFT_UNSET = 0;
    SWIPE_RIGHT_TO_LEFT_MODE_SWIPE_RIGHT_TO_LEFT_CHANNEL_DETAILS = 1;
    SWIPE_RIGHT_TO_LEFT_MODE_SWIPE_RIGHT_TO_LEFT_REPLY = 2;
  }

  message AppearanceSettings {
    Theme theme = 1;
    bool developer_mode = 2;
    optional ClientThemeSettings client_theme_settings = 3;
    bool mobile_redesign_disabled = 4;
    optional google.protobuf.StringValue channel_list_layout = 6;
    optional google.protobuf.StringValue message_previews = 7;
    optional google.protobuf.BoolValue search_result_exact_count_enabled = 8;
    TimestampHourCycle timestamp_hour_cycle = 9;
    optional google.protobuf.BoolValue happening_now_cards_disabled = 10;
    LaunchPadMode launch_pad_mode = 11;
    UIDensity ui_density = 12;
    SwipeRightToLeftMode swipe_right_to_left_mode = 13;
    GuildThemeSourcePreference default_guild_theme_preference = 14;
    bool dark_sidebar = 15;
  }

  message GuildFolder {
    repeated fixed64 guild_ids = 1;
    optional google.protobuf.Int64Value id = 2;
    optional google.protobuf.StringValue name = 3;
    optional google.protobuf.UInt64Value color = 4;
  }

  message GuildFolders {
    repeated GuildFolder folders = 1;
    repeated fixed64 guild_positions = 2;
  }

  enum FavoriteChannelType {
    FAVORITE_CHANNEL_TYPE_UNSET_FAVORITE_CHANNEL_TYPE = 0;
    FAVORITE_CHANNEL_TYPE_REFERENCE_ORIGINAL = 1;
    FAVORITE_CHANNEL_TYPE_CATEGORY = 2;
  }

  message FavoriteChannel {
    string nickname = 1;
    FavoriteChannelType type = 2;
    uint32 position = 3;
    fixed64 parent_id = 4;
    optional google.protobuf.UInt32Value channel_type = 5;
    bool collapsed = 6;
  }

  message Favorites {
    map<fixed64, FavoriteChannel> favorite_channels = 1;
    bool muted = 2;
    optional google.protobuf.BoolValue guild_visible = 3;
    bool auto_add_joined_threads = 4;
  }

  message AudioContextSetting {
    bool muted = 1;
    float volume = 2;
    fixed64 modified_at = 3;
    bool soundboard_muted = 4;
  }

  message AudioSettings {
    map<fixed64, AudioContextSetting> user = 1;
    map<fixed64, AudioContextSetting> stream = 2;
  }

  message CommunitiesSettings {
    optional google.protobuf.BoolValue disable_home_auto_nav = 1;
  }

  message BroadcastSettings {
    optional google.protobuf.BoolValue allow_friends = 1;
    repeated fixed64 allowed_guild_ids = 2;
    repeated fixed64 allowed_user_ids = 3;
    optional google.protobuf.BoolValue auto_broadcast = 4;
  }

  message ClipsSettings {
    optional google.protobuf.BoolValue allow_voice_recording = 1;
  }

  enum ForLaterTab {
    FOR_LATER_TAB_UNSPECIFIED = 0;
    FOR_LATER_TAB_ALL = 1;
    FOR_LATER_TAB_BOOKMARKS = 2;
    FOR_LATER_TAB_REMINDERS = 3;
  }

  message ForLaterSettings {
    ForLaterTab current_tab = 1;
  }

  enum SafetySettingsPresetType {
    SAFETY_SETTINGS_PRESET_TYPE_UNSET_SAFETY_SETTINGS_PRESET = 0;
    SAFETY_SETTINGS_PRESET_TYPE_BALANCED = 1;
    SAFETY_SETTINGS_PRESET_TYPE_STRICT = 2;
    SAFETY_SETTINGS_PRESET_TYPE_RELAXED = 3;
    SAFETY_SETTINGS_PRESET_TYPE_CUSTOM = 4;
  }

  message SpendingLimit {
    uint64 amount = 1;
    string currency = 2;
  }

  message SpendingLimitSettings {
    optional SpendingLimit one_time_purchase_limit = 1;
  }

  message SafetySettings {
    SafetySettingsPresetType safety_settings_preset = 1;
    bool ignore_profile_speedbump_disabled = 2;
    optional SpendingLimitSettings spending_limit_settings = 3;
  }

  message ICYMISettings {
    fixed64 feed_generated_at = 1;
  }

  message ApplicationDMSettings {
    bool allow_mobile_push = 2;
  }

  message ApplicationSharingSettings {
    bool disable_application_activity_sharing = 1;
  }

  message ApplicationSettings {
    optional ApplicationDMSettings app_dm_settings = 1;
    optional ApplicationSharingSettings app_sharing_settings = 2;
  }

  message AllApplicationSettings {
    map<fixed64, ApplicationSettings> app_settings = 1;
  }

  message AdsSettings {
    bool always_deliver = 1;
  }

  message InAppFeedbackState {
    optional google.protobuf.UInt64Value last_impression_time = 1;
    optional google.protobuf.UInt64Value opt_out_expiry_time = 2;
  }

  message InAppFeedbackSettings {
    map<int32, InAppFeedbackState> in_app_feedback_states = 1;
  }

  message AppVersionSettings {
    bool is_using_outdated_mobile_version = 1;
  }

  optional Versions versions = 1;
  optional InboxSettings inbox = 2;
  optional AllGuildSettings guilds = 3;
  optional UserContentSettings user_content = 4;
  optional VoiceAndVideoSettings voice_and_video = 5;
  optional TextAndImagesSettings text_and_images = 6;
  optional NotificationSettings notifications = 7;
  optional PrivacySettings privacy = 8;
  optional DebugSettings debug = 9;
  optional GameLibrarySettings game_library = 10;
  optional StatusSettings status = 11;
  optional LocalizationSettings localization = 12;
  optional AppearanceSettings appearance = 13;
  optional GuildFolders guild_folders = 14;
  optional Favorites favorites = 15;
  optional AudioSettings audio_context_settings = 16;
  optional CommunitiesSettings communities = 17;
  optional BroadcastSettings broadcast = 18;
  optional ClipsSettings clips = 19;
  optional ForLaterSettings for_later = 20;
  optional SafetySettings safety_settings = 21;
  optional ICYMISettings icymi_settings = 22;
  optional AllApplicationSettings applications = 23;
  optional AdsSettings ads = 24;
  optional InAppFeedbackSettings in_app_feedback_settings = 25;
  optional AppVersionSettings app_version_settings = 26;
}
