{
  "common": {
    "error_title": "Error",
    "no_data_title": "No Data",
    "access_denied_title": "Access Denied",
    "access_denied_desc": "This server has been blacklisted.",
    "no_players_selected": "No players selected. Please select at least one player.",
    "must_use_in_server": "This command must be used in a server.",
    "could_not_resolve_channel": "Could not resolve the selected channel.",
    "failed_update_setting": "❌ Failed to update setting.",
    "configuration_not_found": "Configuration not found.",
    "no_channel_selected": "No channel selected.",
    "no_selection_received": "No selection received.",
    "database_error": "❌ Database error: {error}",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "not_configured": "Not configured",
    "unknown": "Unknown",
    "rating_field": "Rating",
    "battles_field": "Battles",
    "wins_field": "Wins",
    "losses_field": "Losses",
    "win_rate_field": "Win Rate",
    "kills_field": "Kills",
    "deaths_field": "Deaths",
    "kd_field": "K/D",
    "members_field": "Members",
    "placement_field": "Placement",
    "points_field": "Points",
    "ground_kills_field": "Ground Kills",
    "air_kills_field": "Air Kills",
    "total_kills_field": "Total Kills",
    "assists_field": "Assists",
    "captures_field": "Captures",
    "none_option": "None"
  },
  "buttons": {
    "skip": "Skip",
    "previous": "Previous",
    "next": "Next",
    "prev": "Prev",
    "prev_arrow": "◀ Previous",
    "next_arrow": "Next ▶",
    "prev_arrow_only": "◀",
    "next_arrow_only": "▶",
    "generate_chart": "📊 Generate Chart",
    "show_graph": "Show Graph",
    "view_player_stats": "📊 View Player Stats",
    "compare_nearby": "📈 Compare Nearby Squadrons",
    "confirm_swap": "Yes, swap it",
    "cancel_swap": "No, keep the old one",
    "set_squadron": "Set Squadron",
    "same_as_logs": "Same as Logs",
    "require_password": "🔒 Require Password",
    "password_required": "🔒 Password Required",
    "lock_data": "🔐 Bind Squadron Data",
    "data_locked": "🔐 Data Bound to Server",
    "allow_public": "👥 Allow Public Meta",
    "public_enabled": "👥 Public Meta Enabled",
    "update_accounts": "📋 Update Meta Accounts",
    "change_password": "🔑 Change Password",
    "help": "❓ Help",
    "add_player": "➕ Add Player",
    "update_all": "🔄 Update All Members",
    "back_to_settings": "⬅ Back to Settings",
    "manage_notifications": "Manage Notifications",
    "diagnose_permissions": "Diagnose Permissions",
    "enable": "Enable",
    "disable": "Disable",
    "change_channel": "Change Channel",
    "view_replay": "View Replay",
    "view_website": "View on Website",
    "view_video": "View Video",
    "view_log": "View Log",
    "view_chat": "View Chat",
    "subscribe_website": "Subscribe via Website",
    "yes_disband": "Yes, Disband",
    "cancel": "Cancel",
    "transfer_leave": "Transfer & Leave",
    "accept_selected": "Accept Selected",
    "accept_all": "Accept All",
    "decline_selected": "Decline Selected",
    "back": "Back",
    "remove_all": "Remove All",
    "remove_active": "Remove Active",
    "remove_queued": "Remove Queued",
    "remove_selected": "Remove Selected",
    "ping_all": "Ping All",
    "ping_active": "Ping Active",
    "ping_queued": "Ping Queued",
    "ping_selected": "Ping Selected",
    "accept_members": "Accept Members",
    "remove_members": "Remove Members",
    "ping_members": "Ping Members",
    "rename_stack": "Rename Stack",
    "request_to_join": "Request to Join",
    "leave_withdraw": "Leave / Withdraw",
    "manage_stack": "Manage Stack ⚙️",
    "disband_stack": "Disband Stack",
    "force_disband_create": "Force Disband & Create New"
  },
  "events": {
    "guild_join_title": "Thanks for adding me!",
    "guild_join_desc": "Run `/setup` to configure the bot for this server."
  },
  "comp": {
    "not_found_title": "Comps Not Found",
    "not_found_desc": "No data for **{squadron}**, try again later.",
    "error_loading_title": "Error Loading Comps",
    "error_loading_desc": "Failed to load comp data: {error}",
    "title": "Comps for {squadron}",
    "desc": "Comps seen in the last {minutes} minutes",
    "no_recent_title": "No Recent Comps",
    "no_recent_desc": "No comps in the last {minutes} minutes.",
    "comp_title": "COMP {index}",
    "last_seen_label": "**Last seen** : {timestamp}{warning}",
    "comp_label": "**Comp**: {notation}",
    "no_players_recorded": "No players recorded.",
    "limit_reached_title": "Comp Limit Reached",
    "limit_reached_desc": "This server has used all {limit} comp lookups for this timeslot. Subscribe (with /unlock) for unlimited access or wait for the next timeslot.",
    "user_limit_reached_desc": "You have used all {limit} of your personal comp lookups for this timeslot across non-premium servers. Other members here can still use the remaining server quota, and premium servers (where /unlock has been used) stay unrestricted — subscribe with /unlock or wait for the next timeslot.",
    "remaining_footer": "{remaining}/{limit} comp lookups remaining this timeslot",
    "user_remaining_footer": "{remaining}/{limit} personal comp lookups remaining this timeslot",
    "remaining_footer_combined": "{user_remaining}/{user_limit} personal · {server_remaining}/{server_limit} server comp lookups remaining this timeslot"
  },
  "quick_log": {
    "invalid_type": "Type can only be set to Logs, Points, Player Leave, Leaderboard, Weekly BR, or Both.",
    "squadron_required": "You must provide a squadron name for Logs, Points, Player Leave, or Both alarms.",
    "wildcard_logs_only": "Only Logs can be set to wildcard squadron.",
    "squadron_not_resolved": "Squadron `{squadron}` could not be resolved.",
    "save_failed": "Failed to save preferences. Please try again later.",
    "premium_warning": "\n\n> ⚠️ **Game logs require Premium.** Run `/unlock` to subscribe ($2.99/mo) — logs won't post until then.",
    "leaderboard_set": "Global Leaderboard alarm set to this channel.",
    "both_set": "Logs and Points alarms for {squadron} set to this channel.{premium_note}",
    "alarm_set": "{alarm_type} alarm for {squadron} set to this channel.{premium_note}",
    "weekly_br_wildcard_set": "Weekly BR Report (top-20 squadrons) set to this channel. Fires at the end of every BR rotation.",
    "weekly_br_squadron_set": "Weekly BR Report for {squadron} (top-15 players) set to this channel. Fires at the end of every BR rotation."
  },
  "diagnostics": {
    "title": "Autolog Diagnostics",
    "channel_permissions_header": "**Channel Permissions** (<#{channel_id}>)",
    "perms_needed": "  ^ Autologging needs all of the above to send scoreboards.",
    "server_squadron_header": "**Server Squadron** (`/set-squadron`)",
    "server_squadron_short": "  Short: `{short}`",
    "server_squadron_long": "  Long: `{long}`",
    "server_squadron_not_set": "  Not set (scoreboard bar color will show as 'not_set')",
    "autolog_prefs_header": "**Autolog Preferences** (`/quick-log`)",
    "autolog_none_configured": "  ❌ NONE configured - autologging will NOT send anything to this server.",
    "autolog_setup_hint": "  Use `/quick-log <squadron_short> Logs` in the target channel to set up.",
    "autolog_no_logs_channels": "  ❌ No Logs channels configured. Only Points/Leaderboard found.",
    "autolog_enable_hint": "  Use `/quick-log <squadron_short> Logs` to enable autologging.",
    "selected_channel_tag": " **(selected channel)**",
    "missing_send_attach": " (missing send/attach)",
    "channel_not_found": " (channel not found)",
    "invalid_channel_id": " (invalid channel ID)",
    "premium_status_header": "**Premium Status** (`/unlock`)",
    "premium_active": "  ✅ This server has an active Premium subscription.",
    "premium_not_subscribed": "  ❌ This server does **not** have a Premium subscription.",
    "premium_autolog_required": "  Autologging requires Premium. Use `/unlock` to subscribe.",
    "premium_not_subscribed_free": "  ⚪ Not subscribed — use `/unlock` to subscribe ($2.99/mo).",
    "premium_free_note": "  *(Autologs are free for all servers right now.)*"
  },
  "sq_info": {
    "title": "Squadron Info: {squadron}",
    "placement_field": "Placement",
    "total_points_field": "Total Points",
    "total_members_field": "Total Members",
    "members_field": "Members",
    "fetch_failed": "Failed to fetch squadron info."
  },
  "sq_info_graph": {
    "title": "{squadron} — SQ-INFO (Season {season})",
    "embed_title": "{squadron} — Roster Composition",
    "embed_desc": "Season **{season}** · Median games: **{median}** · Core: **{core}** · Active: **{active}** · Weak: **{weak}**\nBars sorted by games desc; height = WR%. Core = top 30% WR rank & games ≥ median. Active = top 30–45% WR rank & games ≈ median. Weak = everyone else.",
    "core_threshold_line": "CORE ≥ {wr}%",
    "weak_threshold_line": "WEAK < {wr}%",
    "y_label": "Win Rate",
    "core_header": "CORE — {count} · WR {avg}%",
    "active_header": "ACTIVE — {count} · WR {avg}%",
    "weak_header": "WEAK — {count} · WR {avg}%",
    "no_active_season": "No active season was found. Try again once the next season starts.",
    "no_members": "No current members were found for {squadron}."
  },
  "recap_card": {
    "unknown_season": "Unknown season: `{season}`.",
    "no_clan_id": "Could not resolve a squadron ID for `{squadron}`.",
    "render_failed": "Failed to generate the season recap card. Please try again later."
  },
  "sq_stats": {
    "no_data_title": "No Data",
    "no_data_desc": "No historical data found for squadron: {squadron}",
    "title": "{squadron} // SQUADRON",
    "desc": "Total Score Trend (Last {count} data points)",
    "previous_score_field": "Previous Score",
    "current_score_field": "Current Score",
    "change_field": "Change",
    "player_title": "{squadron} // PLAYERS",
    "player_desc": "Individual player point trends",
    "comparison_title": "{squadron} // LEADERBOARD COMPARISON",
    "comparison_desc": "Comparing with squadrons ranked {range}",
    "current_position_field": "Current Position",
    "squadrons_shown_field": "Squadrons Shown",
    "squadron_not_found_error": "Squadron not found in leaderboard",
    "no_nearby_error": "No nearby squadrons found",
    "no_historical_error": "No historical data found for nearby squadrons",
    "comparison_chart_failed": "Failed to generate comparison chart",
    "select_players_placeholder": "Select players (Page {page})"
  },
  "loss_calc": {
    "title": "Point Loss — {squadron}",
    "players_leaving_field": "Players Leaving",
    "share_of_total_field": "% Share of Total",
    "points_lost_real_field": "Points Lost (Real)",
    "points_lost_raw_field": "Points Lost (Raw)",
    "squadron_rating_field": "Squadron Rating",
    "squadron_position_field": "Squadron Position",
    "positions_lost_field": "Positions Lost",
    "not_found_footer": "Not found in squadron: {players}",
    "fetch_failed": "Failed to fetch squadron data: {error}",
    "no_point_data": "No point data available for this squadron.",
    "no_matching_players": "No matching players found in **{squadron}**."
  },
  "player": {
    "select_player_placeholder": "Select a player",
    "no_stats_found": "❌ No stats found for UID: {uid}",
    "no_vehicle_stats": "❌ No vehicle stats found for this player.",
    "vehicles_found": "Found **{count}** vehicles for **{nick}**\nSelect a vehicle to view detailed stats:",
    "vehicle_select_placeholder": "Select a vehicle (Page {page}/{total})",
    "combat_stats_header": "**__COMBAT STATS__**",
    "ground_kills_label": "**Ground Kills:** {value}",
    "air_kills_label": "**Air Kills:** {value}",
    "total_kills_label": "**Total Kills:** {value}",
    "assists_label": "**Assists:** {value}",
    "deaths_label": "**Deaths:** {value}",
    "kd_label": "**K/D:** {value}",
    "captures_label": "**Captures:** {value}",
    "battle_record_header": "**__BATTLE RECORD__**",
    "total_battles_label": "**Total Battles:** {value}",
    "wins_label": "**Wins:** {value}",
    "losses_label": "**Losses:** {value}",
    "win_rate_label": "**Win Rate:** {value}%",
    "stats_desc": "Stats for **{nick}** (**{squadron}**)\nUID: `{uid}`",
    "not_found_title": "Player Not Found",
    "not_found_desc": "No game history found for `{player}`.",
    "no_players_found": "No players found matching **{username}**\nTry using `/website` to search on the website.",
    "multiple_matches": "Multiple matches found, choose the correct one below:",
    "must_provide_input": "You must provide at least a UID or username."
  },
  "player_games": {
    "no_recent_title": "No Recent Games",
    "no_recent_desc": "No games found for **{player}** in the last 8 hours.",
    "squadron_label": "**Squadron:** {squadron}",
    "record_label": "**W:** {wins}  **L:** {losses}  **WR:** {wr}%",
    "comps_played_header": "\n\n**Comps Played**"
  },
  "match": {
    "missing_input_title": "Missing Input",
    "missing_input_desc": "Provide either a `match_id` or a `player_name`.",
    "not_found_title": "Match Not Found",
    "not_found_desc": "Could not find a match with ID `{match_id}`.",
    "invalid_data_title": "Invalid Match Data",
    "invalid_data_desc": "The replay data could not be parsed.",
    "scoreboard_error_title": "Scoreboard Error",
    "scoreboard_error_desc": "Failed to generate the scoreboard image.",
    "no_games_title": "No Games Found",
    "no_games_desc": "No game history found for **{player}**.",
    "recent_matches_title": "Recent matches for {player}",
    "recent_matches_desc": "Showing up to {count} recent games. Select one to view the full scoreboard.",
    "select_match_placeholder": "Select a match to view..."
  },
  "compare": {
    "no_players_found": "No players found matching **{name}**.",
    "multiple_matches": "Multiple matches for **{name}**: {matches}\nPlease use a more specific name (the autocomplete suggestions are exact).",
    "could_not_resolve": "Could not resolve players.",
    "could_not_fetch": "❌ Could not fetch stats for **{name}**.",
    "no_graph_data": "No data available for the last 90 days.",
    "no_squadron_points_data": "No squadron points data for {names} (player not found in tracked squadron history).",
    "graph_title": "Player Points — Last 90 Days",
    "battles_label": "Battles",
    "wins_label": "Wins",
    "losses_label": "Losses",
    "win_rate_label": "Win Rate",
    "ground_kills_label": "Ground Kills",
    "air_kills_label": "Air Kills",
    "total_kills_label": "Total Kills",
    "assists_label": "Assists",
    "deaths_label": "Deaths",
    "kd_label": "K/D",
    "captures_label": "Captures"
  },
  "squadron": {
    "not_found_desc": "Squadron `{squadron}` not found.",
    "set_title": "✅ Squadron Set",
    "set_desc": "Squadron **{squadron}** has been set for this server.",
    "short_name_field": "Short Name",
    "long_name_field": "Long Name",
    "swap_title": "✅ Squadron Swapped",
    "swap_desc": "Replaced **{old}** with **{new}** for this server.",
    "already_set_title": "⚠️ Squadron Already Set",
    "already_set_desc": "This server is currently set to **{old}**.\nSwap it to **{new}**?",
    "swap_cancelled": "❌ Squadron change cancelled."
  },
  "setup": {
    "step1_title": "Server Setup — Step 1 of 3",
    "step1_desc": "This wizard will walk you through configuring the bot for your server.\n\n**Step 1** — Set your squadron\n**Step 2** — Choose a logs channel\n**Step 3** — Choose a points channel\n",
    "step1_current_sq": "\nCurrently configured squadron: **[{short}] {long}**",
    "step2_title": "Server Setup — Step 2 of 3",
    "step2_desc": "Squadron set to **[{short}] {long}**.\n\nWhere should **battle logs** be posted?\nSelect a text channel below, or skip this step.",
    "step3_title": "Server Setup — Step 3 of 3",
    "step3_desc": "Where should **points notifications** be posted?\nSelect a text channel below, or skip this step.",
    "step3_same_as_logs": "\n\nYou can also click \"Same as Logs\" to reuse the logs channel.",
    "summary_title": "Setup Complete",
    "summary_desc": "You can use `/autolog-management` to change these settings later.",
    "squadron_field": "Squadron",
    "logs_channel_field": "Logs Channel",
    "points_channel_field": "Points Channel",
    "premium_required_field": "⚠️ Game Logs Require Premium",
    "premium_required_value": "Automatic game scoreboards won't post until this server has an active subscription. Run `/unlock` to subscribe ($2.99/mo).",
    "modal_title": "Set Squadron",
    "modal_label": "Squadron Short Name",
    "modal_placeholder": "e.g. AXYS",
    "squadron_not_found": "Squadron `{squadron}` not found. Please try again.",
    "logs_channel_placeholder": "Select a logs channel...",
    "points_channel_placeholder": "Select a points channel..."
  },
  "meta_management": {
    "squadron_not_found_title": "❌ Squadron Not Found",
    "squadron_not_found_desc": "Could not find clan ID for squadron: **{squadron}**",
    "access_denied_title": "❌ Access Denied",
    "access_denied_desc": "Incorrect password. This squadron's meta data is protected.",
    "data_locked_title": "🔐 Squadron Data Bound",
    "data_locked_desc": "**{squadron}** has data binding enabled and cannot be transferred to another server.\n\nThe squadron owner must disable **Bind Squadron Data** before it can be moved.",
    "error_retrieving_settings": "❌ Error retrieving guild settings after transfer. Please try again.",
    "error_retrieving_settings_retry": "❌ Error retrieving guild settings. Please try running the command again.",
    "authenticated_title": "✅ Authenticated",
    "authenticated_desc": "Password verified. Managing settings for **{squadron}**.",
    "claimed_title": "✅ Squadron Claimed",
    "claimed_desc": "**{squadron}** has been successfully claimed for this server!",
    "password_requirement_field": "🔒 Password Requirement",
    "data_lock_field": "🔐 Squadron Data Binding",
    "public_meta_field": "👥 Public Meta Access",
    "access_password_field": "🔑 Access Password",
    "enabled_value": "✅ Enabled",
    "disabled_value": "❌ Disabled",
    "settings_title": "🔐 Meta Management Settings",
    "settings_desc": "**Squadron:** {squadron}\n**Clan ID:** {clan_id}",
    "first_time_title": "🔐 Meta Management - First Time Setup",
    "first_time_owner_desc": "**Squadron:** {squadron}\n**Clan ID:** {clan_id}\n\n🔑 Your access password has been generated. **Save this password** — you'll need it to authenticate meta data access in the future.\n\n**Password:** `{password}`",
    "first_time_non_owner_desc": "**Squadron:** {squadron}\n**Clan ID:** {clan_id}\n\nSquadron has been set up. Ask the server owner for the access password.",
    "settings_field": "Settings",
    "settings_hint": "Use the buttons below to configure access settings.",
    "password_toggled": "✅ Password requirement: **{state}**",
    "lock_toggled": "✅ Squadron data binding: **{state}**",
    "public_meta_toggled": "✅ Public meta access: **{state}**\n{detail}",
    "public_meta_enabled_detail": "Non-admins can now use `/meta` command.",
    "public_meta_disabled_detail": "Only admins can use `/meta` command.",
    "owner_only_password": "❌ Only the server owner can change the squadron password.",
    "help_title": "📖 Meta Management Help",
    "help_desc": "Explanation of each setting and feature:",
    "help_password_field": "🔑 Access Password",
    "help_password_value": "Your squadron's access password. Only the **server owner** can see the password in the settings panel. Anyone with the password can claim your squadron's meta data on their server, so keep it secure.",
    "help_require_field": "🔒 Require Password",
    "help_require_value": "When enabled, even admins on this server must enter the squadron password to access `/meta-management`. Adds an extra layer of security to prevent accidental changes.",
    "help_lock_field": "🔐 Bind Squadron Data",
    "help_lock_value": "When enabled, prevents the squadron from being transferred to other servers, even with the correct password. Must be disabled before the squadron can be transferred.",
    "help_public_field": "👥 Allow Public Meta",
    "help_public_value": "When enabled, allows non-admin members to use the `/meta` command to search squadron vehicles. When disabled, only server administrators can use `/meta`.",
    "help_accounts_field": "📋 Update Meta Accounts",
    "help_accounts_value": "Opens the player roster manager where you can add or remove players from your squadron's meta roster. Use **Update All Members** to sync your entire squadron at once.",
    "help_change_pw_field": "🔑 Change Password",
    "help_change_pw_value": "**Server owner only.** Change the squadron's access password and set an optional hint. The hint is shown in the password prompt to help remember it.",
    "password_modal_title": "Squadron Access Password",
    "password_modal_label": "Enter Squadron Password",
    "password_modal_placeholder": "XXXX-XXXX-XXXX",
    "change_pw_modal_title": "Change Squadron Password",
    "current_password_label": "Current Password",
    "current_password_placeholder": "Enter your current password",
    "new_password_label": "New Password",
    "new_password_placeholder": "Enter your new password",
    "confirm_password_label": "Confirm New Password",
    "confirm_password_placeholder": "Re-enter your new password",
    "hint_label": "Password Hint (Optional)",
    "hint_placeholder": "A hint to help remember the password",
    "pw_incorrect": "❌ Current password is incorrect.",
    "pw_mismatch": "❌ New passwords do not match. Please try again.",
    "pw_empty": "❌ New password cannot be empty.",
    "pw_changed": "✅ Password updated successfully for **{squadron}**.\n**New Password:** `{password}`",
    "pw_changed_hint": "\n**Hint:** {hint}",
    "player_add_modal_title": "Add Player to Meta Roster",
    "player_add_label": "Player UID or Nickname",
    "player_add_placeholder": "Enter player's UID (e.g., 12345678) or nickname",
    "player_not_found": "❌ Player `{player}` not found in Players_Global database.\n",
    "roster_title": "📋 Meta Roster Management - {squadron}",
    "roster_desc": "**Squadron Clan ID:** {clan_id}\n**Total Players:** {count}",
    "roster_page_field": "Players (Page {page}/{total})",
    "no_players_field": "No Players",
    "no_players_hint": "No players added to meta roster yet. Click **Add Player** to get started.",
    "remove_player_placeholder": "Select player to remove...",
    "fetch_members_failed": "❌ Failed to fetch squadron members: {error}",
    "no_members_found": "❌ No members found in squadron or API call failed.",
    "roster_synced": "✅ Synced roster with squadron.",
    "roster_added": "**+{count}** added",
    "roster_removed": "**-{count}** removed (left squadron)",
    "roster_up_to_date": "**{count}** already up to date",
    "refreshing_vehicles": "Refreshing vehicle data in background..."
  },
  "meta": {
    "not_configured": "❌ Meta data not configured for this server. Run `/meta-management` first.",
    "no_permission": "❌ You need administrator permissions to use this command.\nAdmins can enable public access via `/meta-management`.",
    "no_results": "❌ No players in your squadron roster have **{vehicle}**.",
    "no_results_admin_hint": "\n*Expecting someone to have this? Click the update members button in `/meta-management` and double check.*",
    "search_title": "🔍 Search Results - {vehicle}",
    "matches_found": "**Matches Found:** {count} player(s)",
    "spawns_label": "Spawns",
    "deaths_label": "Deaths",
    "gk_label": "GK",
    "ak_label": "AK",
    "points_label": "Points",
    "kdr_label": "KDR",
    "games_label": "Games",
    "no_points": "—"
  },
  "top": {
    "title": "**Top 20 Squadrons**",
    "rating_label": "**Rating:** {value}",
    "air_kills_label": "**Air Kills:** {value}",
    "ground_kills_label": "**Ground Kills:** {value}",
    "deaths_label": "**Deaths:** {value}",
    "kd_label": "**K/D:** {value}",
    "win_rate_label": "**Win Rate:** {value}",
    "playtime_label": "**Playtime:** {value}",
    "fetch_failed": "Failed to retrieve squadron data."
  },
  "analytics": {
    "no_data_title": "No Data",
    "no_matches_desc": "No matches found.",
    "no_comp_desc": "No composition data found.",
    "no_consistency_desc": "Not enough player data (minimum 50 matches).",
    "no_time_desc": "No time data found.",
    "unknown_view": "Unknown view.",
    "map_title": "Map Win Rates: {squadron}",
    "comp_title": "Team Compositions: {squadron}",
    "consistency_title": "Player Consistency: {squadron}",
    "consistency_desc": "Sorted by K/D ratio",
    "time_title": "Time of Day Performance: {squadron}",
    "eu_timeslot": "\n**EU Timeslot**",
    "na_timeslot": "\n**NA Timeslot**",
    "off_peak": "\n**Off-Peak**",
    "matchups_title": "📜 {squadron} — Matchup History",
    "matchups_won_field": "🏆 Most Won Against",
    "matchups_lost_field": "💀 Most Lost To",
    "no_matchups_desc": "No recorded matches against other squadrons yet."
  },
  "recent": {
    "title": "Recent Matches: {squadron}",
    "no_matches_desc": "No matches found for this squadron."
  },
  "h2h": {
    "two_required_title": "Two Squadrons Required",
    "two_required_desc": "Provide at least one squadron, or use `/set-squadron` and provide the opponent.",
    "provide_a_desc": "Provide `squadron_a` or use `/set-squadron` first.",
    "provide_b_desc": "Provide `squadron_b` or use `/set-squadron` first.",
    "squadron_not_found_title": "Squadron Not Found",
    "same_squadron_title": "Same Squadron",
    "same_squadron_desc": "You can't check head-to-head against yourself.",
    "record_desc": "**Record:** {a_wins}W - {b_wins}L ({total} games)",
    "no_matches_desc": "No recorded matches between **{a}** and **{b}**."
  },
  "autolog": {
    "premium_active_line": "✅ **Premium:** Active — autologging is enabled for this server.",
    "premium_not_subscribed_line": "❌ **Premium:** Not subscribed — use `/unlock` to enable autologging.",
    "premium_free_line": "⚪ **Premium:** Not subscribed — use `/unlock` to subscribe ($2.99/mo). *(Autologs are free for all servers right now.)*",
    "what_to_do": "\n\nWhat would you like to do?",
    "select_notif_type": "Select the notification type to manage:",
    "select_notif_placeholder": "Select notification type",
    "logs_option": "Logs",
    "logs_option_desc": "Manage Logs notifications",
    "points_option": "Points",
    "points_option_desc": "Manage Points notifications",
    "leaderboard_option": "Leaderboard",
    "leaderboard_option_desc": "Manage Leaderboard notifications",
    "selected_type": "Selected **{type}**. Now choose the squadron to manage:",
    "select_squadron_placeholder": "Select a squadron",
    "select_squadron_page_placeholder": "Select a squadron (Page {page})",
    "no_squadrons_available": "No squadron available for this notification type.",
    "managing_global": "Managing **{type}** (global) in channel **{channel}**.",
    "managing_squadron": "Managing **{type}** for squadron **{squadron}** in channel **{channel}**.",
    "select_channel": "Select a new channel:",
    "select_channel_placeholder": "Select a channel",
    "select_channel_page_placeholder": "Select a channel (Page {page})",
    "global_toggled": "{type} (global) is now {state}.",
    "squadron_toggled": "{type} for **{squadron}** is now {state}.",
    "channel_updated_global": "Updated {type} (global) to {channel}",
    "channel_updated_squadron": "Updated {type} for **{squadron}** to {channel}",
    "diagnose_channel_placeholder": "Select a channel to diagnose...",
    "select_channel_diagnose": "Select the channel to diagnose:",
    "game_not_logged_title": "Game Not Logged",
    "game_not_logged_desc": "Use `/unlock` to subscribe to the **Standard** tier (or higher) to receive automatic game scoreboards.",
    "server_not_upgraded_title": "⚠️ Server Not Upgraded",
    "server_not_upgraded_autolog_desc": "This server does not have an active Premium subscription.\n\n**Automatic game scoreboards will stop being sent to non-upgraded servers after <t:{deadline}:D>.**\n\nUse `/unlock` to subscribe and keep receiving automatic game logs.",
    "replay_not_available": "Replay data isn't available yet — wait a bit then try again!",
    "too_many_videos": "Too many videos rendering right now — please try again in a moment.",
    "video_gen_failed": "Error generating video: `{error}`",
    "video_missing": "Failed to generate replay video - output file missing or empty.",
    "video_too_large": "Replay video too large to upload ({file_mb:.1f} MB). Server limit is {limit_mb:.0f} MB.",
    "video_web_fallback": "You can also view this match at {url}",
    "video_upload_failed": "Video too large to upload — view it on the website:\n{url}",
    "video_unexpected_error": "Unexpected error generating replay video: `{error}`",
    "replay_not_found": "Replay data not found for session `{session_id}` on disk.",
    "chat_log_title": "**Chat Log for Game [{session_id}]({url})**",
    "chat_log_part_title": "**Chat Log for Game [{session_id}]({url}) (Part {part}/{total})**",
    "chat_log_part_only": "**Chat Log (Part {part}/{total})**",
    "no_chat_log": "No chat log found for session `{session_id}`.",
    "chat_log_error": "Unexpected error loading chat log: `{error}`",
    "battle_log_title": "**Battle Log for Game [{session_id}]({url})**",
    "battle_log_part_title": "**Battle Log for Game [{session_id}]({url}) (Part {part}/{total})**",
    "battle_log_part_only": "**Battle Log (Part {part}/{total})**",
    "no_battle_log": "No combat events found for session `{session_id}`.",
    "battle_log_error": "Unexpected error loading battle log: `{error}`",
    "points_update_title": "**{squadron} {region} Points Update**",
    "points_update_desc": "# {old_total} -> {new_total} {chart}{wl_line}{placement_line}\n\n**Player Changes:**",
    "points_table_header": "Name                Change     Now\n",
    "wl_line": "\n**{squadron}** went **{wins}W-{losses}L** this session",
    "placement_rose": "\n**{squadron}** moved up from **{old_place}** to **{new_place}**",
    "placement_fell": "\n**{squadron}** moved down from **{old_place}** to **{new_place}**",
    "points_not_logged_title": "Points Not Logged",
    "points_not_logged_desc": "Use `/unlock` to subscribe to the **Standard** tier (or higher) to receive automatic points updates.",
    "server_not_upgraded_points_desc": "This server does not have an active Premium subscription.\n\n**Automatic updates will stop being sent to non-upgraded servers after <t:{deadline}:D>.**\n\nUse `/unlock` to subscribe and keep receiving automatic updates.",
    "leave_title": "⚠️ Player Left {squadron}",
    "leave_desc": "**{nick}** ({uid}) has left the squadron.\n\nLast recorded points: **{points}**",
    "no_squadrons_desc": "No squadrons configured",
    "no_channels_desc": "No channels available",
    "over_cap_title": "Squadron over your tier cap",
    "over_cap_desc": "Your server is on the **{tier}** tier, which allows **{cap} {notif}** squadrons. The squadron **{squadron}** is currently over that limit and not being logged. Upgrade to a higher tier to restore it.",
    "over_cap_footer": "Upgrade at sre.pawjob.us/premium or via /unlock",
    "wildcard_blocked_title": "Wildcard logging requires a higher tier",
    "wildcard_blocked_desc": "Wildcard squadron entries (*, all, everything) are only available on Pro or Max tiers. Your server is on **{tier}** for {notif}. Upgrade to re-enable wildcard logging.",
    "cap_header": "{used}/{cap} {notif} enabled — {tier} tier"
  },
  "track": {
    "squadron_not_found": "Squadron not found.",
    "fetch_failed": "Failed to fetch squadron info."
  },
  "unlock": {
    "title": "SRE Bot Premium",
    "desc": "**Unlock premium features for this server.**\n\nPremium includes:\n> • Auto scoreboard posts\n> • Chat & battle logs\n> • Replay lookups\n> • Unlimited /comp lookups\n> • Priority support\n\n**$2.99 / month · per server · cancel anytime**\n\n⚠️ Discord billing is only available in select countries. If the button below shows **\"Product Unavailable\"**, this may be due to an unsupported country or using a **mobile device**. Use the **Subscribe via Website** button instead.",
    "already_subscribed_title": "SRE Bot Premium",
    "already_subscribed_desc": "✅ **This server is already subscribed!**",
    "manage_discord_field": "Manage Subscription",
    "manage_discord_value": "Your subscription is through **Discord**.\nTo cancel, go to **User Settings → Subscriptions** in Discord.",
    "manage_website_field": "Manage Subscription",
    "manage_website_value": "Your subscription is through the **website**.\nManage it at [whop.com/billing](https://whop.com/billing).",
    "coming_soon_field": "Coming Soon",
    "coming_soon_value": "Premium subscriptions are not yet available. Check back soon!",
    "current_tier": "You're on the **{tier}** plan.",
    "upgrade_to": "Upgrade to {tier}",
    "upgrade_to_value": "Get a higher squadron cap and more features by upgrading to **{tier}**."
  },
  "language": {
    "prompt": "Please select your server language:",
    "select_placeholder": "Choose your server language",
    "language_set": "Language set to {language}.",
    "translate_prompt": "Select a target language below 👇",
    "translate_placeholder": "Choose a target language…",
    "translate_result": "**{author} → {language}:**\n{text}",
    "translation_unavailable": "Translation unavailable (DeepL not configured)",
    "translation_failed": "Translation failed"
  },
  "misc": {
    "credits_title": "Credits",
    "credits_desc": "**Meowww**\n\n> **NotSoToothless**  - Lead Developer, Bot Manager, Community Manager\n> **Z3R0**            - Developer, Optimization Developer, Database Engineer\n> **Clippii (Heidi) **          - Developer, Website Developer, Community Manager\n> **LivingTheDagor**  - Developer, Parser Developer, Consultant\n> **Lux_**            - API Engineer, Spectra Developer\n> **Konigallerwaffen** - Feedback and Feature Consultant\n> **Žralok Tonda**    - Czech Translator\n> **Styevy**, **Lopais** - German Translators\n> **Susogus**, **playforfun698** - Polish Translators\n> **Bobr**            - Russian Translator\n\n\n[Feel like joining us?](https://discord.gg/BCvkK8JhPe)",
    "schedule_title": "SEASON SCHEDULE",
    "schedule_timeslot_label": "{region} TIMESLOT",
    "schedule_not_found_title": "Schedule Not Found",
    "schedule_not_found_desc": "No schedule data is available yet.",
    "news_no_news_title": "No News",
    "news_no_news_desc": "There are no announcements right now. Check back later!",
    "news_footer": "Thank you for your support! ᕙᘘᗢ",
    "help_title": "Bot Guide",
    "donate_title": "Support SRE Bot",
    "donate_desc": "If you enjoy using SRE Bot and want to support its development, consider buying me a coffee!\n\n**[Donate on Ko-fi](https://ko-fi.com/notsotoothless)**\n\nEvery contribution helps keep the bot running and supports new features. Thank you!",
    "status_title": "Bot Status",
    "status_last_received": "Last Game Received",
    "status_avg_ttl": "Avg TTL (Last 30)",
    "status_no_data": "No data yet",
    "status_gaijin_slow": "⚠️ Gaijin servers slow",
    "help_commands_header": "**Commands Overview**",
    "help_links": "For detailed information, read the documentation [here]({docs}) or get support [here]({support}).",
    "help_terms": "[Terms of Service]({terms}) • [Privacy Policy]({terms})"
  },
  "dev": {
    "restricted_dev_team": "This command is restricted to the dev team.",
    "restricted_bot_owner": "❌ This command is restricted to the bot owner.",
    "invalid_server_id": "❌ Invalid server ID. Must be a 17-19 digit Discord server ID.",
    "expiry_too_soon": "❌ Expiry timestamp must be at least 1 month from now.\n> Now: <t:{now}:F>\n> Minimum: <t:{min}:F>\n> You provided: <t:{provided}:F>",
    "entitlement_write_failed": "❌ Failed to write entitlement: {error}",
    "entitlement_created_title": "✅ Manual Entitlement Created",
    "entitlement_created_desc": "**Server:** {guild_name} (`{server_id}`)\n**Expires:** <t:{unix_ts}:F> (<t:{unix_ts}:R>)\n**Created:** <t:{now}:F>",
    "query_failed": "Query failed: {error}",
    "health_title": "Bot Health Dashboard",
    "health_uptime": "Uptime",
    "health_guilds": "Guilds",
    "health_games_processed": "Games Processed",
    "health_tasks": "Tasks",
    "health_websocket": "WebSocket",
    "health_never": "never",
    "health_errors": "({count} errors)",
    "health_last_msg": "last msg {ago} ({count} total)",
    "health_avg_ttl": "Avg TTL (Last 30)",
    "entitlements_title": "Active Entitlements ({count} total)",
    "entitlements_no_entries": "No entitlements.",
    "entitlements_empty_title": "Active Entitlements",
    "entitlements_empty_desc": "No active entitlements found.",
    "entitlements_tag_discord": "Discord",
    "entitlements_tag_whop": "Whop",
    "entitlements_tag_manual": "Manual",
    "query_prefix": "Query: {name}"
  },
  "leaderboard_alarm": {
    "title": "🏆 Squadron Leaderboard",
    "top15_desc": "Top 15 squadrons with statistics, sent 35 minutes after timeslot close.\nThis one sent <t:{timestamp}:R>.",
    "top30_desc": "Squadrons 16-30 with statistics.",
    "not_logged_title": "Leaderboard Not Logged",
    "not_logged_desc": "Use `/unlock` to subscribe to the **Standard** tier (or higher) to receive automatic leaderboard updates.",
    "server_not_upgraded_title": "⚠️ Server Not Upgraded",
    "server_not_upgraded_desc": "This server does not have an active Premium subscription.\n\n**Automatic updates will stop being sent to non-upgraded servers after <t:{deadline}:D>.**\n\nUse `/unlock` to subscribe and keep receiving automatic updates."
  },
  "stacks": {
    "stack_title": "{leader}'s Stack",
    "stack_named_title": "{name}",
    "no_members": "No members yet.",
    "members_field": "Members ({count}/{max})",
    "queue_field": "Queue ({count}/{max})",
    "manage_title": "Manage Stack",
    "no_pending_requests": "No pending requests.",
    "disbanded_title": "Stack [Disbanded]",
    "disbanded_desc": "This stack was disbanded by the leader.",
    "expired_title": "Stack [Expired]",
    "expired_desc": "This stack has expired.",
    "join_modal_title": "Apply to Join Stack",
    "join_vehicle_label": "What will you play?",
    "join_vehicle_placeholder": "e.g. F-16C, WZ305...",
    "ping_modal_title": "Ping Message",
    "ping_message_label": "Custom message (optional)",
    "ping_message_placeholder": "e.g. Come now! Stack starting!",
    "rename_modal_title": "Rename Stack",
    "rename_label": "Stack name",
    "rename_placeholder": "e.g. Night Owls, Alpha Squad...",
    "select_new_leader": "Select new leader…",
    "select_applicants": "Select applicants…",
    "no_pending_applications": "No pending applications.",
    "select_to_remove": "Select people to remove…",
    "no_members_or_applicants": "No members or applicants.",
    "select_to_ping": "Select people to ping individually…",
    "stack_not_found": "❌ Stack not found.",
    "no_longer_exists": "❌ This stack no longer exists.",
    "member_not_exists": "❌ That member no longer exists.",
    "already_has_stack": "❌ That player already has an active stack.",
    "already_member": "❌ You are already a member of this stack.",
    "already_applied": "❌ You already have a pending application for this stack.",
    "queue_full": "❌ The queue is full ({max}/{max}). Try again later.",
    "application_sent": "✅ Application sent! The stack leader will review it.",
    "stack_disbanded": "✅ Stack disbanded.",
    "cancelled": "Cancelled.",
    "select_member_transfer": "❌ Please select a member to transfer ownership to.",
    "ownership_transferred": "✅ Ownership transferred to {nick}. You have left the stack.",
    "select_applicant_first": "❌ Please select at least one applicant first.",
    "stack_full": "❌ Stack is already full ({max}/{max} members).",
    "select_person_first": "❌ Please select at least one person first.",
    "no_one_to_ping": "❌ No one to ping.",
    "ping_footer": "Pinged by {leader} for {stack}.",
    "pinged": "✅ Pinged!",
    "select_from_dropdown": "❌ Please select at least one person from the dropdown first.",
    "stack_renamed": "✅ Stack renamed to **{name}**.",
    "only_member_use_disband": "❌ You are the only member. Use **Disband Stack** to end it.",
    "select_transfer_prompt": "Select a member to transfer ownership to before leaving:",
    "left_stack": "✅ You have left the stack.",
    "application_withdrawn": "✅ Your application has been withdrawn.",
    "not_member_or_applicant": "❌ You are not a member of or applicant to this stack.",
    "leader_only_manage": "❌ Only the stack leader can manage this stack.",
    "leader_only_disband": "❌ Only the stack leader can disband this stack.",
    "confirm_disband": "Are you sure you want to disband this stack? This cannot be undone.",
    "already_active_stack": "⚠️ You already have an active stack. If the original embed is gone (e.g. after a bot restart), you can force disband it and start fresh.",
    "force_created": "✅ Previous stack disbanded. New stack created.",
    "no_active_stack": "❌ You don't have an active stack. Use `/stack-create` to start one.",
    "could_not_parse_channel": "⚠️ Couldn't parse stored channel ID."
  },
  "commands": {
    "common": {
      "season": "The season to generate the card for",
      "theme": "Card color theme",
      "squadron_short": "The short name of the squadron",
      "player_username": "The player's username",
      "choice_dark": "Dark",
      "choice_light": "Light"
    },
    "comp": {
      "description": "Find the last known comps for a given team",
      "squadron_short": "The shortname of the enemy team"
    },
    "quick_log": {
      "description": "Quickly set an alarm for this squadron in this channel",
      "squadron_name": "The SHORT name of the squadron to monitor",
      "type": "Choose Logs, Points, Player Leave, Leaderboard, Weekly BR, or Both",
      "choice_logs": "Logs",
      "choice_points": "Points",
      "choice_player_leave": "Player Leave",
      "choice_leaderboard": "Leaderboard",
      "choice_both": "Both Logs and Points",
      "choice_weekly_br": "Weekly BR"
    },
    "sq_info": {
      "description": "Fetch information about a squadron"
    },
    "sq_info_graph": {
      "description": "Show a roster composition graph by activity and WR (current season)"
    },
    "sq_card": {
      "description": "Generate a season recap card for a squadron",
      "squadron": "The short name of the squadron"
    },
    "sq_stats": {
      "description": "Display a squadron's points over time"
    },
    "loss_calculator": {
      "description": "Calculate the point loss if players leave a squadron",
      "player1": "Player leaving",
      "player_optional": "Player leaving (optional)"
    },
    "website": {
      "description": "Get a link to the SRE Bot website"
    },
    "card": {
      "description": "Generate a season recap card for a player"
    },
    "player_stats": {
      "description": "View detailed vehicle statistics for a player",
      "username": "The WT username for stats request",
      "uid": "The WT UID for stats request"
    },
    "view_player_games": {
      "description": "View the last 20 games for a player"
    },
    "view_match": {
      "description": "View a match scoreboard by ID or player",
      "match_id": "The session hex ID of the match to view",
      "player_name": "A player's username to browse recent matches"
    },
    "compare": {
      "description": "Compare aggregate SQB stats between players",
      "player1": "First player username",
      "player2": "Second player username",
      "player_optional": "Additional player username (optional)"
    },
    "leaderboard": {
      "description": "Get the SRE Bot global leaderboard"
    },
    "set_squadron": {
      "description": "Set the squadron tag for this server",
      "abbreviated_name": "The short name of the squadron to set"
    },
    "setup": {
      "description": "Set up the bot for this server"
    },
    "meta_management": {
      "description": "Manage meta data access settings for this server"
    },
    "meta": {
      "description": "Search squadron meta roster by vehicle name",
      "vehicle": "Vehicle name to search for"
    },
    "top": {
      "description": "Get the top 20 squadrons with detailed stats"
    },
    "language": {
      "description": "Change the bot's language."
    },
    "translate_message": {
      "name": "Translate Message"
    },
    "sq_track": {
      "description": "Track a squadron and compare stats against the last check",
      "squadron_short_name": "Short name of the squadron to track"
    },
    "analytics": {
      "description": "View advanced SQB analytics for a squadron",
      "view": "Which analytics view to show",
      "choice_maps": "Map Win Rates",
      "choice_comps": "Team Compositions",
      "choice_consistency": "Player Consistency",
      "choice_time": "Time of Day",
      "choice_matchups": "Matchup History"
    },
    "recent": {
      "description": "Show recent squadron battles for a squadron",
      "length": "Number of matches to show"
    },
    "vs": {
      "description": "Head-to-head record between two squadrons",
      "squadron_a": "First squadron",
      "squadron_b": "Second squadron"
    },
    "autolog_management": {
      "description": "Manage autolog notifications and diagnose permissions"
    },
    "diagnose_perms": {
      "description": "Diagnose autolog permissions for this channel"
    },
    "unlock": {
      "description": "Unlock premium features for this server"
    },
    "credits": {
      "description": "View the team credited for building this"
    },
    "schedule": {
      "description": "View the current season BR schedule"
    },
    "news": {
      "description": "View the latest SRE Bot news and announcements"
    },
    "help": {
      "description": "View the guide, ToS, and support links"
    },
    "donate": {
      "description": "Support the development of SRE Bot"
    },
    "stack_create": {
      "description": "Create a new player stack",
      "vehicle": "What vehicle will you start with?"
    },
    "stack_manage": {
      "description": "Re-post your active stack embed to this channel"
    },
    "bot_status": {
      "description": "View bot status: last game received and average TTL"
    }
  },
  "permission": {
    "blacklisted_title": "❌ Blacklisted",
    "blacklisted_desc": "You are blacklisted from using this command.",
    "reason_line": "**Reason:** {reason}",
    "access_denied_title": "⛔ Access Denied",
    "no_permission_desc": "You do not have permission to use this command.",
    "unexpected_error_title": "❗ Error, report this....",
    "tier_gate_title": "🔒 Premium Required",
    "tier_gate_standard_desc": "This command requires a **Standard** entitlement or higher. Use `/unlock` to subscribe.",
    "tier_gate_pro_desc": "This command requires a **Pro** entitlement or higher. Use `/unlock` to subscribe.",
    "tier_gate_max_desc": "This command requires a **Max** entitlement. Use `/unlock` to subscribe."
  },
  "weekly_br": {
    "title_wildcard": "Weekly BR Report — {br} BR",
    "title_squadron": "Weekly BR Report — [{tag}] {long}  •  {br} BR",
    "window_label": "Window: {start} → {end}",
    "wildcard_desc_first": "Top {count} squadrons by ELO • Ranks {low}–{high}",
    "wildcard_desc_second": "Top {count} squadrons by ELO • Ranks {low}–{high}",
    "squadron_stats_line": "- {games} games  •  K/D {kdr}  •  WR {wr}%",
    "top_players_inline_header": "🥇 Top players:",
    "player_line_short": "  {rank}. {nick}  ⭐ {score}  ({games}g)",
    "top_players_header": "**Top {count} players by ELO:**",
    "player_line_full": "{rank}. **{nick}**  ⭐ {score}  •  {games} games  •  K/D {kdr}",
    "squadron_header_line": "Squadron ELO: {score}  •  {games} games  •  WR {wr}%  •  K/D {kdr}",
    "squadron_header_no_aggregate": "Squadron ELO: not enough team activity to score this week.",
    "no_data": "No matches recorded for [{tag}] this BR rotation."
  }
}
