[
    {
        "name": "VertixBot/UI-General/FeedbackComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/FeedbackComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/FeedbackReportButton",
                            "definition": {
                                "name": "VertixBot/UI-General/FeedbackReportButton",
                                "elementType": "button",
                                "instanceType": "Static",
                                "label": "Report a problem",
                                "style": "secondary",
                                "emoji": "💥"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/FeedbackSuggestionButton",
                            "definition": {
                                "name": "VertixBot/UI-General/FeedbackSuggestionButton",
                                "elementType": "button",
                                "instanceType": "Static",
                                "label": "Suggest Your Idea",
                                "style": "secondary",
                                "emoji": "💡"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WelcomeSupportButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WelcomeSupportButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Community Server",
                                "style": "link",
                                "url": "https://discord.gg/dEwKeQefUU"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/FeedbackInviteDeveloperButton",
                            "definition": {
                                "name": "VertixBot/UI-General/FeedbackInviteDeveloperButton",
                                "elementType": "button",
                                "instanceType": "Static",
                                "label": "Invite Developer",
                                "style": "primary",
                                "emoji": "💌"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/FeedbackComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/FeedbackEmbed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "Appreciating your experience with VoiceChannels",
                            "description": "We want to thank you for your time and patience.\n\n**Your experience with VoiceChannels is important to us, and we would love to hear your feedback.**\n\nWe strive to provide the best possible service, and your input can help us achieve that.\n\nIf you have any suggestions, concerns, or ideas on how we can improve VoiceChannels, please don't hesitate to share them with us.\n\nYour feedback is highly appreciated and will contribute to making VoiceChannels even better.\n\nThank you for using VoiceChannels, and we look forward to hearing your thoughts!",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/FeedbackModal",
            "VertixBot/UI-General/FeedbackReportModal",
            "VertixBot/UI-General/FeedbackInviteDeveloperModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/FeedbackModal",
                "title": "Submit Feedback",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/FeedbackInputTitle",
                        "label": "Title",
                        "style": "short",
                        "minLength": 5,
                        "maxLength": 50
                    },
                    {
                        "name": "VertixBot/UI-General/FeedbackInputDescription",
                        "label": "Description",
                        "style": "paragraph",
                        "minLength": 10,
                        "maxLength": 2000
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/FeedbackReportModal",
                "title": "Submit a issue",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/FeedbackInputTitle",
                        "label": "Title",
                        "style": "short",
                        "minLength": 5,
                        "maxLength": 50
                    },
                    {
                        "name": "VertixBot/UI-General/FeedbackInputDescription",
                        "label": "Description",
                        "style": "paragraph",
                        "minLength": 10,
                        "maxLength": 2000
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/FeedbackInviteDeveloperModal",
                "title": "Invite Developer",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/FeedbackInputUrl",
                        "label": "Invite Link",
                        "style": "paragraph",
                        "minLength": 5,
                        "maxLength": 1000
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-General/HelpComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/HelpElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/HelpSetupGuideButton",
                            "definition": {
                                "name": "VertixBot/UI-General/HelpSetupGuideButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Setup",
                                "style": "link",
                                "url": "https://voicechannels.online/posts/how-to-setup"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/HelpJoinToCreateButton",
                            "definition": {
                                "name": "VertixBot/UI-General/HelpJoinToCreateButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Join to Create",
                                "style": "link",
                                "url": "https://voicechannels.online/posts/join-to-create"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/HelpFeaturesButton",
                            "definition": {
                                "name": "VertixBot/UI-General/HelpFeaturesButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Features",
                                "style": "link",
                                "url": "https://voicechannels.online/posts/enable-features"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/HelpDashboardButton",
                            "definition": {
                                "name": "VertixBot/UI-General/HelpDashboardButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Dashboard",
                                "style": "link",
                                "url": "https://dashboard.voicechannels.online"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/HelpWebsiteButton",
                            "definition": {
                                "name": "VertixBot/UI-General/HelpWebsiteButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Website",
                                "style": "link",
                                "url": "https://voicechannels.online"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/HelpSupportButton",
                            "definition": {
                                "name": "VertixBot/UI-General/HelpSupportButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Support Server",
                                "style": "link",
                                "url": "https://discord.gg/dEwKeQefUU"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/HelpEmbed",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/HelpEmbed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "❔ VoiceChannels help",
                            "description": "VoiceChannels gives your server voice channels that create themselves. Join the generator channel and you get your own, which is deleted when the last person leaves.\n\n**Your channel**\nAnything below works while you are in a channel you own.\n`/voice rename` ∙ name it\n`/voice limit` ∙ how many may join\n`/voice privacy` ∙ public, private or hidden\n`/voice status` ∙ the status shown on it\n`/voice access` ∙ grant, deny or kick members\n\n**Anyone**\n`/voice invite` ∙ invite someone to a channel\n`/voice claim` ∙ take over a channel whose owner left\n\n**Server admins**\n`/setup` ∙ set up and configure the bot\n`/manage new-generator` ∙ add another generator\n`/manage edit` ∙ edit an existing one\n`/manage roles` ∙ voice, verified and staff roles\n`/manage server-options` ∙ roles, bad words and claim timings\n`/manage language` ∙ the language the bot speaks here\n`/manage events` ∙ check-ins and attendance for scheduled events\n\nNew here? Start with **Setup** below - it walks the whole thing in a few minutes. **Dashboard** configures everything without typing a command, and if none of the guides help, the **Support Server** is a person.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-General/HelpElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-General/HelpEmbed",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-General/LanguageComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/LanguageComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/LanguageSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/LanguageSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🌍 Select Language",
                                "selectOptions": [
                                    {
                                        "label": "🇺🇸 English",
                                        "value": "en"
                                    },
                                    {
                                        "label": "🇯🇵 日本語",
                                        "value": "ja"
                                    },
                                    {
                                        "label": "🇩🇪 Deutsch",
                                        "value": "de"
                                    },
                                    {
                                        "label": "🇷🇺 Русский",
                                        "value": "ru"
                                    },
                                    {
                                        "label": "🇫🇷 Français",
                                        "value": "fr"
                                    },
                                    {
                                        "label": "🇬🇷 Ελληνικά",
                                        "value": "el"
                                    },
                                    {
                                        "label": "🇪🇸 Español",
                                        "value": "es"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DoneButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DoneButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✓ Done",
                                "style": "success"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/LanguageComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/LanguageEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🌍  Select language",
                            "description": "__Current Selected Language__: **{currentLanguage}**\n\nDidn't find your language?\n\nYou can be the one to translate bot to your language!\ncontact us at our support server, and be the one!\n\nFound mistake in translation? Please let us know!",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "options": {
                                "currentLanguage": {
                                    "en": "English",
                                    "ja": "日本語",
                                    "de": "Deutsch",
                                    "ru": "Русский",
                                    "fr": "Français",
                                    "el": "Ελληνικά",
                                    "es": "Español"
                                }
                            },
                            "vars": {
                                "currentLanguage": "{currentLanguage}"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-General/SetupComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/SetupElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/SetupMasterEditSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupMasterEditSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "Edit a master channel",
                                "header": "Master Channels"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/SetupMasterCreateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupMasterCreateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "Create a master channel",
                                "header": "New Master Channel",
                                "selectOptions": [
                                    {
                                        "label": "Dynamic Channel (V2)",
                                        "value": "v2",
                                        "emoji": "➕",
                                        "description": "Classic dynamic voice channels"
                                    },
                                    {
                                        "label": "Dynamic Channel (V3)",
                                        "value": "v3",
                                        "emoji": "✨",
                                        "description": "Enhanced dynamic channels with more features"
                                    },
                                    {
                                        "label": "Auto-Scaling Channel",
                                        "value": "scaling",
                                        "emoji": "📈",
                                        "description": "Automatically scales based on member count"
                                    },
                                    {
                                        "label": "Team Lobby",
                                        "value": "lobby",
                                        "emoji": "🎮",
                                        "description": "Split one channel into team rooms or groups"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/LanguageChooseButton",
                            "definition": {
                                "name": "VertixBot/UI-General/LanguageChooseButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Choose Your Language",
                                "style": "primary",
                                "emoji": "🌍"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/SetupServerOptionsEditButton",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupServerOptionsEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit Server Options",
                                "style": "primary",
                                "emoji": "⚙️"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/EventsChooseButton",
                            "definition": {
                                "name": "VertixBot/UI-General/EventsChooseButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Events",
                                "style": "secondary",
                                "emoji": "📅"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupMasterCreateElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/SetupMasterCreateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupMasterCreateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "Create a master channel",
                                "header": "New Master Channel",
                                "selectOptions": [
                                    {
                                        "label": "Dynamic Channel (V2)",
                                        "value": "v2",
                                        "emoji": "➕",
                                        "description": "Classic dynamic voice channels"
                                    },
                                    {
                                        "label": "Dynamic Channel (V3)",
                                        "value": "v3",
                                        "emoji": "✨",
                                        "description": "Enhanced dynamic channels with more features"
                                    },
                                    {
                                        "label": "Auto-Scaling Channel",
                                        "value": "scaling",
                                        "emoji": "📈",
                                        "description": "Automatically scales based on member count"
                                    },
                                    {
                                        "label": "Team Lobby",
                                        "value": "lobby",
                                        "emoji": "🎮",
                                        "description": "Split one channel into team rooms or groups"
                                    }
                                ]
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupMasterEditElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/SetupMasterEditSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupMasterEditSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "Edit a master channel",
                                "header": "Master Channels"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/ServerOptionsElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/ServerOptionsEditSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/ServerOptionsEditSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "⚙️ ∙ Select Edit Options",
                                "selectOptions": [
                                    {
                                        "label": "Voice Role",
                                        "value": "editVoiceRole",
                                        "emoji": "🎙️",
                                        "description": "Given while a member is in a dynamic channel, an auto-scaling channel or a team lobby"
                                    },
                                    {
                                        "label": "Verified Roles",
                                        "value": "editVerifiedRoles",
                                        "emoji": "🛡️",
                                        "description": "Who the dynamic channels are for"
                                    },
                                    {
                                        "label": "Staff Roles",
                                        "value": "editStaffRoles",
                                        "emoji": "🔑",
                                        "description": "Who no channel or team lobby room can shut out, and no owner can block or kick"
                                    },
                                    {
                                        "label": "Bad Words",
                                        "value": "editBadwords",
                                        "emoji": "🙊",
                                        "description": "Words a member cannot put in a channel name"
                                    },
                                    {
                                        "label": "Claim",
                                        "value": "editClaim",
                                        "emoji": "😈",
                                        "description": "How long an abandoned channel waits, and how long the vote runs"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DoneButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DoneButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✓ Done",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/VoiceRoleElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VoiceRoleMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VoiceRoleMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🎙️ ∙ Select Voice Role"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/VoiceRoleClearButton",
                            "definition": {
                                "name": "VertixBot/UI-General/VoiceRoleClearButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Clear",
                                "style": "danger",
                                "emoji": "🧹"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/ServerOptionsBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/ServerOptionsBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Back",
                                "style": "secondary",
                                "emoji": "◀"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/VerifiedRolesElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Verified Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesClearButton",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesClearButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Clear",
                                "style": "danger",
                                "emoji": "🧹"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/ServerOptionsBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/ServerOptionsBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Back",
                                "style": "secondary",
                                "emoji": "◀"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/StaffRolesElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/StaffRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/StaffRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🔑 ∙ Select Staff Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/StaffRolesClearButton",
                            "definition": {
                                "name": "VertixBot/UI-General/StaffRolesClearButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Clear",
                                "style": "danger",
                                "emoji": "🧹"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/ServerOptionsBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/ServerOptionsBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Back",
                                "style": "secondary",
                                "emoji": "◀"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/BadwordsElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/SetupBadwordsEditButton",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupBadwordsEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit Bad Words",
                                "style": "primary",
                                "emoji": "🙅"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/BadwordsClearButton",
                            "definition": {
                                "name": "VertixBot/UI-General/BadwordsClearButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Remove all",
                                "style": "danger",
                                "emoji": "🧹"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/ServerOptionsBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/ServerOptionsBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Back",
                                "style": "secondary",
                                "emoji": "◀"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupClaimElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/SetupClaimSelectOptionMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupClaimSelectOptionMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "◎ ∙ Select Value To Edit",
                                "selectOptions": [
                                    {
                                        "label": "∙ Owner Away Before Claimable",
                                        "value": "claim-owner-away",
                                        "emoji": "🚪"
                                    },
                                    {
                                        "label": "∙ Claim Check Interval",
                                        "value": "claim-check-interval",
                                        "emoji": "🔁"
                                    },
                                    {
                                        "label": "∙ Vote Duration",
                                        "value": "vote-duration",
                                        "emoji": "🗳️"
                                    },
                                    {
                                        "label": "∙ Vote Time Per Candidate",
                                        "value": "vote-time-per-candidate",
                                        "emoji": "➕"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/SetupClaimResetButton",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupClaimResetButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Reset to defaults",
                                "style": "danger",
                                "emoji": "🧹"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/SetupClaimBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/SetupClaimBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Back",
                                "style": "secondary",
                                "emoji": "◀"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/SetupEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🛠  Setup VoiceChannels",
                            "description": "Discover the limitless possibilities of **VoiceChannels**!\nCustomize and optimize your server to perfection.\n\nMaster Channels are dynamic voice channel generators, each with its own unique configuration.\n\nOur badwords feature enables guild-level configuration for limiting dynamic channel names.\n\n_**Current master channels**_:\n{masterChannelMessage}\n\n_**Server Badwords**_:\n{badwordsMessage}\n\n_**Server Voice Role**_:\n{voiceRoleMessage}\n\n_**Server Verified Roles**_:\n{verifiedRolesMessage}\n\n_**Server Staff Roles**_:\n{staffRolesMessage}",
                            "footer": "{tipMessage}",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "masterChannelMessage": {
                                    "{masterChannels}": "\n{masterChannels}",
                                    "{masterChannelMessageDefault}": "**None**"
                                },
                                "tipMessage": {
                                    "{tip-logs-channel}": "💡 You can set logs channel by editing the master channel.",
                                    "{tip-badwords}": "💡 Badwords are set once for the server and limit every dynamic channel name.",
                                    "{tip-inherited-roles}": "💡 A generator reads *(from the server options)* until you give it roles of its own.",
                                    "{tip-templates}": "💡 Members can save a channel's name, limit and privacy as a template and reuse it later.",
                                    "{tip-autosave}": "💡 With auto save on, a member's next channel opens the way they left their last one.",
                                    "{tip-lfm-pings}": "💡 A looking-for-more post only mentions the roles you allow — choose none and it never pings.",
                                    "{tip-privacy-default}": "💡 Pick what a new channel starts as: public, private or hidden."
                                },
                                "badwordsMessage": {
                                    "{badwords}": "`{badwords}`",
                                    "{badwordsMessageDefault}": "**None**"
                                },
                                "voiceRoleMessage": {
                                    "{voiceRoleId}": "<@&{voiceRoleId}>",
                                    "{voiceRoleMessageDefault}": "**None**"
                                },
                                "verifiedRolesMessage": {
                                    "{verifiedRoleIds}": "{verifiedRoleIds}",
                                    "{verifiedRolesMessageDefault}": "**@everyone** *(default)*"
                                },
                                "staffRolesMessage": {
                                    "{staffRoleIds}": "{staffRoleIds}",
                                    "{staffRolesMessageDefault}": "**None**"
                                },
                                "none": "**None**",
                                "inherited": "*(from the server options)*",
                                "privacyPublic": "🌐 Public",
                                "privacyPrivate": "🚫 Private",
                                "privacyHidden": "🙈 Hidden",
                                "autoSaveOn": "`🟢∙On`",
                                "autoSaveOff": "`🔴∙Off`"
                            },
                            "arrayOptions": {
                                "masterChannels": {
                                    "format": "{value}{separator}",
                                    "separator": "\n",
                                    "multiSeparator": "\n\n"
                                },
                                "badwords": {
                                    "format": "{value}{separator}",
                                    "separator": ", "
                                },
                                "verifiedRoleIds": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                },
                                "staffRoleIds": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "masterChannels": "{masterChannels}",
                                "masterChannelMessage": "{masterChannelMessage}",
                                "masterChannelMessageDefault": "{masterChannelMessageDefault}",
                                "masterChannelsOptions": {
                                    "index": "{index}",
                                    "name": "{name}",
                                    "id": "{id}",
                                    "channelsTemplateName": "{channelsTemplateName}",
                                    "channelsTemplateButtons": "{channelsTemplateButtons}",
                                    "channelsVerifiedRoles": "{channelsVerifiedRoles}",
                                    "channelsLogsChannelId": "{channelsLogsChannelId}",
                                    "channelsAutoSave": "{channelsAutoSave}",
                                    "scalingPrefix": "{scalingPrefix}",
                                    "scalingMaxMembers": "{scalingMaxMembers}",
                                    "version": "{version}"
                                },
                                "badwords": "{badwords}",
                                "badwordsMessage": "{badwordsMessage}",
                                "badwordsMessageDefault": "{badwordsMessageDefault}",
                                "voiceRoleId": "{voiceRoleId}",
                                "voiceRoleMessage": "{voiceRoleMessage}",
                                "voiceRoleMessageDefault": "{voiceRoleMessageDefault}",
                                "verifiedRoleIds": "{verifiedRoleIds}",
                                "verifiedRolesMessage": "{verifiedRolesMessage}",
                                "verifiedRolesMessageDefault": "{verifiedRolesMessageDefault}",
                                "staffRoleIds": "{staffRoleIds}",
                                "staffRolesMessage": "{staffRolesMessage}",
                                "staffRolesMessageDefault": "{staffRolesMessageDefault}",
                                "none": "{none}",
                                "inherited": "{inherited}",
                                "privacyPublic": "{privacyPublic}",
                                "privacyPrivate": "{privacyPrivate}",
                                "privacyHidden": "{privacyHidden}",
                                "autoSaveOn": "{autoSaveOn}",
                                "autoSaveOff": "{autoSaveOff}",
                                "tipMessage": "{tipMessage}",
                                "tip-logs-channel": "{tip-logs-channel}",
                                "tip-badwords": "{tip-badwords}",
                                "tip-inherited-roles": "{tip-inherited-roles}",
                                "tip-templates": "{tip-templates}",
                                "tip-autosave": "{tip-autosave}",
                                "tip-lfm-pings": "{tip-lfm-pings}",
                                "tip-privacy-default": "{tip-privacy-default}",
                                "labelName": "{labelName}",
                                "labelChannelId": "{labelChannelId}",
                                "labelDynamicChannelsName": "{labelDynamicChannelsName}",
                                "labelButtons": "{labelButtons}",
                                "labelVerifiedRoles": "{labelVerifiedRoles}",
                                "labelStaffRoles": "{labelStaffRoles}",
                                "labelVoiceRole": "{labelVoiceRole}",
                                "labelNewChannelPrivacy": "{labelNewChannelPrivacy}",
                                "labelNewChannelLimit": "{labelNewChannelLimit}",
                                "labelLogsChannel": "{labelLogsChannel}",
                                "labelAutoSave": "{labelAutoSave}",
                                "labelVersion": "{labelVersion}",
                                "labelScalingPrefix": "{labelScalingPrefix}",
                                "labelMaxMembers": "{labelMaxMembers}",
                                "labelNotCovered": "{labelNotCovered}"
                            },
                            "defaultVars": {
                                "none": "**None**",
                                "labelName": "▹ Name:",
                                "labelChannelId": "▹ Channel ID:",
                                "labelDynamicChannelsName": "▹ Dynamic Channels Name:",
                                "labelButtons": "▹ Buttons:",
                                "labelVerifiedRoles": "▹ Verified Roles:",
                                "labelStaffRoles": "▹ Staff Roles:",
                                "labelVoiceRole": "▹ Voice Role:",
                                "labelNewChannelPrivacy": "▹ New Channel Privacy:",
                                "labelNewChannelLimit": "▹ New Channel Limit:",
                                "labelLogsChannel": "▹ Logs Channel:",
                                "labelAutoSave": "▹ Auto Save:",
                                "labelVersion": "▹ UI Version:",
                                "labelNotCovered": "⏸️ **Paused** - past this server's plan",
                                "labelScalingPrefix": "▹ Scaling Prefix:",
                                "labelMaxMembers": "▹ Max Members:",
                                "labelType": "▹ Type:",
                                "labelTeamLobby": "🎮 Team Lobby",
                                "labelLobbyHosts": "▹ Hosts:",
                                "labelLobbyHostsAnyone": "Anyone in the lobby"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupMaxMasterChannelsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupMaxMasterChannelsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  You have reached your master channels limit",
                            "description": "You can create up to **{maxMasterChannels}** Master Channels in total.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "vars": {
                                "maxMasterChannels": "{maxMasterChannels}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  maxMasterChannels: args.maxMasterChannels\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupClaimEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupClaimEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⏱️  Claim Configuration",
                            "description": "When the owner of a dynamic channel leaves it, VoiceChannels waits a while before offering the channel to whoever is still inside. They then vote on who takes it over.\n\nPick a value below to change it. A value marked {defaultMarker} follows the bot's own configuration rather than a choice made here, and an empty field puts it back to that.\n\n**🚪 Owner Away Before Claimable** ∙ {valueClaimTimeout}\nHow long the owner can be gone before the channel is offered to the others.\n\n**🔁 Claim Check Interval** ∙ {valueClaimInterval}\nHow often VoiceChannels looks for abandoned channels, which is also how close to the wait above the offer actually lands.\n\n**🗳️ Vote Duration** ∙ {valueVoteTimeout}\nHow long a claim vote stays open once it starts.\n\n**➕ Vote Time Per Candidate** ∙ {valueVoteAddTime}\nAdded to the running vote each time someone new puts themselves forward.\n",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "defaultMarker": "*(default)*"
                            },
                            "vars": {
                                "valueClaimTimeout": "{valueClaimTimeout}",
                                "valueClaimInterval": "{valueClaimInterval}",
                                "valueVoteTimeout": "{valueVoteTimeout}",
                                "valueVoteAddTime": "{valueVoteAddTime}",
                                "defaultMarker": "{defaultMarker}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupMasterCreateEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupMasterCreateEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "➕  Create a channel generator",
                            "description": "A generator is a voice channel members join to get one of their own, made for them and removed when they leave.\n\n**✨ Dynamic Channel (V3)** — the current interface. Pick this unless you have a reason not to.\n**➕ Dynamic Channel (V2)** — the older interface, for servers already running it.\n**📈 Auto-Scaling Channel** — one channel that grows into several as it fills up.\n**🎮 Team Lobby** — one channel people gather in, split from into team rooms or groups, and called back to.\n\nChoose below, and the rest is a few questions.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupMasterEditEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupMasterEditEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔧  Edit a channel generator",
                            "description": "Pick the generator you want to change.\n\nIts settings open next — the name new channels get, who may see them, which buttons their owners have, and the rest.\n\n*Nothing here? The server has no generators yet — `/manage new-generator` makes one.*",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupServerOptionsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupServerOptionsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⚙️  Server settings",
                            "description": "Settings that belong to the whole server rather than to one generator.\n\n**Voice Role** — given to members while they are in a dynamic channel, an auto-scaling channel or a team lobby.\n**Verified Roles** — who dynamic channels are for.\n**Staff Roles** — who no channel can shut out, and no owner can block or kick. A team lobby's rooms let them in too.\n**Bad Words** — words a member cannot put in a channel name.\n**Claim** — how long an abandoned channel waits, and how long the vote runs.\n\nPick one to change it.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupServerOptionsRolesEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupServerOptionsRolesEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🛡️  Server roles",
                            "description": "Which roles this server's dynamic channels, auto-scaling channels and team lobbies answer to.\n\n**Voice Role** — given to members while they are in a dynamic channel, an auto-scaling channel or a team lobby, and taken back when they leave.\n**Verified Roles** — who a generator's channels are for. Everyone else is kept out.\n**Staff Roles** — who no channel can shut out, and no owner can block or kick. A team lobby's rooms let them in too.\n\nPick one to change it.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupBadwordsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupBadwordsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙅  Bad Words",
                            "description": "Words that cannot appear in the name of a dynamic channel, anywhere in this server.\n\nA member renaming their channel to something holding one of these is told no and the name is left as it was. The check is on names only - it does not read what anyone says.\n\n_**Current list**_:\n{badwordsMessage}\n\n`(🙅 Edit Bad Words)` replaces the whole list with what you type, separated by commas.\n`(🧹 Remove all)` empties it, which allows every name again.\n",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "badwordsMessage": {
                                    "{badwords}": "`{badwords}`",
                                    "{badwordsMessageDefault}": "**None** - every name is allowed."
                                }
                            },
                            "arrayOptions": {
                                "badwords": {
                                    "format": "{value}{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "badwords": "{badwords}",
                                "badwordsMessage": "{badwordsMessage}",
                                "badwordsMessageDefault": "{badwordsMessageDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => {\n  const result = {};\n  if (args?.badwords?.length) {\n    result.badwords = args.badwords;\n    result.badwordsMessage = vars.badwords;\n  } else\n    result.badwordsMessage = vars.badwordsMessageDefault;\n  return result;\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/BadwordsModal",
            "VertixBot/UI-General/SetupScalingConfigModal",
            "VertixBot/UI-General/SetupClaimTimeoutModal",
            "VertixBot/UI-General/SetupClaimSweepIntervalModal",
            "VertixBot/UI-General/SetupVoteTimeoutModal",
            "VertixBot/UI-General/SetupVoteAddTimeModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/BadwordsModal",
                "title": "Set bad words",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/BadwordsInput",
                        "label": "SEPARATE BY `,` FOR NON-EXACT MATCHES USE `*`",
                        "placeholder": "None",
                        "style": "paragraph",
                        "minLength": 0,
                        "maxLength": 2500
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupScalingConfigModal",
                "title": "📈 Configure Scaling Channel",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/SetupScalingPrefixInput",
                        "label": "Channel Name Prefix",
                        "placeholder": "### Room - {index} ###",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 50
                    },
                    {
                        "name": "VertixBot/UI-General/SetupScalingMaxMembersInput",
                        "label": "Max Members Per Channel",
                        "placeholder": "10",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 3
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupClaimTimeoutModal",
                "title": "⏱️ Owner Away Before Claimable",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/SetupClaimTimeoutInput",
                        "label": "Seconds, empty for the default",
                        "placeholder": "600",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 7
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupClaimSweepIntervalModal",
                "title": "⏱️ Claim Check Interval",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/SetupClaimSweepIntervalInput",
                        "label": "Seconds, empty for the default",
                        "placeholder": "60",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 7
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupVoteTimeoutModal",
                "title": "⏱️ Vote Duration",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/SetupVoteTimeoutInput",
                        "label": "Seconds, empty for the default",
                        "placeholder": "60",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 7
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupVoteAddTimeModal",
                "title": "⏱️ Vote Time Per Candidate",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/SetupVoteAddTimeInput",
                        "label": "Seconds, empty for the default",
                        "placeholder": "60",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 7
                    }
                ]
            }
        ],
        "defaultElementsGroup": "VertixBot/UI-General/SetupElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-General/SetupEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 8,
                "withDefinition": 8,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-General/WelcomeComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/WelcomeElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/WelcomeSupportButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WelcomeSupportButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Community Server",
                                "style": "link",
                                "url": "https://discord.gg/dEwKeQefUU"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WelcomeInviteButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WelcomeInviteButton",
                                "elementType": "button-url",
                                "instanceType": "Static",
                                "label": "Invite VoiceChannels",
                                "style": "link",
                                "url": "https://discord.com/oauth2/authorize?client_id=1538844311062581339&permissions=286354576&scope=bot%20applications.commands"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WelcomeSetupButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WelcomeSetupButton",
                                "elementType": "button",
                                "instanceType": "Static",
                                "label": "Setup",
                                "style": "primary",
                                "emoji": "🛠"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/WelcomeEmbed",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/WelcomeEmbed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "༄ VoiceChannels is here, let's get started!",
                            "description": "Welcome to VoiceChannels, an incredible addition to your server!\nLet's collaborate and make your server even better.\n\n**Bot Setup**\n- Type `/setup` or press `(🛠 Setup)` button.\n- Click on `(➕ Create Master Channel)`\n- Follow the steps.\n\nStill not sure? Check out our [step by step](https://voicechannels.online/posts/how-to-setup) guide.\n\nYou can always edit the configurations by using the `/setup` command.\n\nIf you need assistance or have any suggestions, feel free to join our Discord community server! We would be glad to help you and hear your feedback.\n\nJoin us at: https://discord.gg/dEwKeQefUU",
                            "image": "https://i.imgur.com/x8jMguN.gif",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-General/WelcomeElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-General/WelcomeEmbed",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-General/NotYourChannelComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/NotYourChannelComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NotYourChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⛔  This is not your channel!",
                            "description": "But you can open your own channel :)\n\n Just click here: <#{masterChannelId}>",
                            "color": 16732674,
                            "vars": {
                                "masterChannelId": "{masterChannelId}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  masterChannelId: args?.masterChannelId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-V3/DynamicChannelFlow",
                "description": "You pressed a control on a channel that somebody else owns."
            },
            {
                "source": "VertixBot/UI-V2/DynamicChannelFlow",
                "description": "You pressed a control on a channel that somebody else owns."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/NoActiveDynamicChannelComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/NoActiveDynamicChannelComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NoActiveDynamicChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⛔  No active dynamic channel",
                            "description": "You don't own an active dynamic channel.{masterChannelMessage}",
                            "color": 16732674,
                            "options": {
                                "masterChannelMessage": {
                                    "{masterChannelId}": "\n\nJoin <#{masterChannelId}> to create your own channel first.",
                                    "{masterChannelMessageDefault}": ""
                                }
                            },
                            "vars": {
                                "masterChannelId": "{masterChannelId}",
                                "masterChannelMessage": "{masterChannelMessage}",
                                "masterChannelMessageDefault": "{masterChannelMessageDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args?.masterChannelId) {\n    result.masterChannelId = String(args.masterChannelId);\n    result.masterChannelMessage = vars.masterChannelId;\n  } else\n    result.masterChannelMessage = vars.masterChannelMessageDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-V3/DynamicChannelFlow",
                "description": "You used a channel control while not standing in a dynamic channel."
            },
            {
                "source": "VertixBot/UI-V2/DynamicChannelFlow",
                "description": "You used a channel control while not standing in a dynamic channel."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/ClaimInChannelOnlyComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/ClaimInChannelOnlyComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/ClaimInChannelOnlyEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "😈  Claim works inside the channel",
                            "description": "This panel sits beside the generator rather than in any one channel, so there is nothing here to claim.\n\nJoin the voice channel you want to take over, open its chat, and press **Claim** on the message waiting there.",
                            "color": 16732674
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-V3/DynamicChannelFlow",
                "description": "You pressed Claim on the master channel's panel, which is not any one channel."
            },
            {
                "source": "VertixBot/UI-V2/DynamicChannelFlow",
                "description": "You pressed Claim on the master channel's panel, which is not any one channel."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/ChannelCreateFailedComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/ChannelCreateFailedComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/ChannelCreateFailedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⚠️  Your channel could not be created",
                            "description": "Joining <#{masterChannelId}> did not create a channel for you.\n\n{reason}",
                            "color": 14855469,
                            "options": {
                                "reason": {
                                    "{reasonCategoryFull}": "The category this channel lives in is full. Discord allows 50 channels per category, and it has reached that.\n\nPlease let a server admin know - they can free a channel or move the generator to another category.",
                                    "{reasonGeneratorFull}": "This generator already has {maxActiveDynamicChannels} channels open, which is as many as it may have at once.\n\nOne will free up when a channel empties out. If they are all in use, a server admin can set up another generator.",
                                    "{reasonNotCovered}": "This server has more generators than its plan allows, and this is one of the extra ones - so it is not making channels at the moment.\n\nThe generators it set up first are still working. A server admin can upgrade the plan to switch this one back on, or delete a generator it no longer uses.",
                                    "{reasonUnknown}": "This usually means the server reached one of Discord's limits, or that a permission the bot needs was removed.\n\nPlease let a server admin know. The reason is written to the bot logs."
                                }
                            },
                            "vars": {
                                "masterChannelId": "{masterChannelId}",
                                "reason": "{reason}",
                                "reasonCategoryFull": "{reasonCategoryFull}",
                                "reasonGeneratorFull": "{reasonGeneratorFull}",
                                "reasonNotCovered": "{reasonNotCovered}",
                                "maxActiveDynamicChannels": "{maxActiveDynamicChannels}",
                                "reasonUnknown": "{reasonUnknown}"
                            },
                            "defaultVars": {
                                "masterChannelId": "123456789",
                                "maxActiveDynamicChannels": "20"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const reason = args.isNotCovered ? CHANNEL_CREATE_FAILED_EMBED_VARS.reasonNotCovered : args.isGeneratorFull ? CHANNEL_CREATE_FAILED_EMBED_VARS.reasonGeneratorFull : args.isCategoryFull ? CHANNEL_CREATE_FAILED_EMBED_VARS.reasonCategoryFull : CHANNEL_CREATE_FAILED_EMBED_VARS.reasonUnknown;\n  return {\n    masterChannelId: args.masterChannelId,\n    maxActiveDynamicChannels: args.maxActiveDynamicChannels,\n    reason\n  };\n}",
                                        "binds": [
                                            "CHANNEL_CREATE_FAILED_EMBED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-General/Module",
                "description": "You joined a generator and the bot could not create your channel."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/UnassignableRoleComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/UnassignableRoleComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/UnassignableRoleEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎙️  That role cannot be used",
                            "description": "The role <@&{roleId}> was saved, but the bot cannot hand it out - {reason}.\n\nMove the bot's own role above it in **Server Settings → Roles**, or pick a different role.",
                            "color": 15548997,
                            "vars": {
                                "roleId": "{roleId}",
                                "reason": "{reason}"
                            },
                            "defaultVars": {
                                "roleId": "123456789",
                                "reason": "the role is above the bot in the role list"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  roleId: args.roleId,\n  reason: args.reason\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-General/SetupFlow",
                "description": "You picked a role during setup that the bot is not allowed to hand out."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/FeatureMissingInV2Component",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/FeatureMissingInV2Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/FeatureMissingInV2Embed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "⚠  Not in this generator's interface",
                            "description": "This channel comes from a generator running the older interface, which does not have that feature.\n\nA server admin can upgrade the generator to get it.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-General/CommandsFlow",
                "description": "You ran a command for something this server's older interface does not have."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/MissingAdminPermissionsComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/MissingAdminPermissionsComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/MissingAdminPermissionsEmbed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "⛔  You cannot configure this server",
                            "description": "This command is for server admins.\n\nIt needs the **Manage Server**, **Manage Channels** and **Manage Roles** permissions.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-General/CommandsFlow",
                "description": "You ran a command that only a server admin may run."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/NotClaimableComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/NotClaimableComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NotClaimableEmbed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "🔒  Nothing to claim here",
                            "description": "This channel is not up for claiming right now.\n\nA channel becomes claimable when its owner leaves it.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-General/CommandsFlow",
                "description": "You asked to claim a channel and nothing in the server is waiting for an owner."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/NotInAServerComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/NotInAServerComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NotInAServerEmbed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "🏠  Run this in a server",
                            "description": "These commands act on a server's voice channels, and a direct message has neither.\n\nOpen the server you want and run it there.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-General/CommandsFlow",
                "description": "You ran a command in a direct message rather than in a server."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/ChannelGoneComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/ChannelGoneComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/ChannelGoneEmbed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "🕳  That channel is gone",
                            "description": "The channel this screen was opened about no longer exists - a dynamic channel is removed once the last person leaves it.\n\nRun the command again to work on the one you have now.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-V3/DynamicChannelFlow",
                "description": "The channel this screen was opened about was removed while it was still on screen."
            },
            {
                "source": "VertixBot/UI-V2/DynamicChannelFlow",
                "description": "The channel this screen was opened about was removed while it was still on screen."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/CommandFailedComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/CommandFailedComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/CommandFailedEmbed",
                        "definition": {
                            "instanceType": "Static",
                            "title": "⚠  That did not work",
                            "description": "Something went wrong running that command.\n\nIt has been logged. Trying again is worth a go — if it keeps happening, tell us in the support server.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "shownWhen": [
            {
                "source": "VertixBot/UI-General/CommandsFlow",
                "description": "A command was run and something went wrong carrying it out."
            }
        ]
    },
    {
        "name": "VertixBot/UI-General/EventsComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/EventsComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/EventsChannelSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/EventsChannelSelectMenu",
                                "elementType": "channel-select",
                                "instanceType": "Dynamic",
                                "placeholder": "📅 ∙ Events-Channel"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/EventsEnableButton",
                            "definition": {
                                "name": "VertixBot/UI-General/EventsEnableButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "{displayText}",
                                "options": {
                                    "turnOnText": "Turn on",
                                    "turnOffText": "Turn off",
                                    "displayText": "{turnOnText}"
                                },
                                "style": "success",
                                "emoji": "▶️"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/EventsSubPostsButton",
                            "definition": {
                                "name": "VertixBot/UI-General/EventsSubPostsButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "{displayText}",
                                "options": {
                                    "subPostsOffText": "Stop sub posts",
                                    "subPostsOnText": "Post for subs",
                                    "displayText": "{subPostsOffText}"
                                },
                                "style": "secondary",
                                "emoji": "🙋"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/EventsDashboardButton",
                            "definition": {
                                "name": "VertixBot/UI-General/EventsDashboardButton",
                                "elementType": "button-url",
                                "instanceType": "Dynamic",
                                "label": "More options",
                                "style": "link",
                                "url": "https://dashboard.voicechannels.online/events"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/DoneButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DoneButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✓ Done",
                                "style": "success"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/EventsComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/EventsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "📅  Events",
                            "description": "When a scheduled event in a voice channel is about to start, a check-in board goes up. Whoever marked themselves **Interested** checks in by joining the voice channel. When check-in closes, whoever has not come is marked, a post asks for somebody to take their place, and the board ends as the attendance.\n\n**Events** {statusLine}\n**Posts in** {channelLine}\n**\"Need a sub\" posts** {subPostsLine}\n**Check-in** opens {checkInLeadMinutes} min before the start, closes {lateAfterMinutes} min after{errorLine}\n\nPick the channel, then turn it on. The timing, the pings, which events count and where the attendance is copied are under **More options**. An event held at a generator counts every room it opens.",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "statusLine": {
                                    "{enabledOn}": "🟢 On",
                                    "{enabledOff}": "⚪ Off"
                                },
                                "channelLine": {
                                    "{channelSet}": "<#{eventsChannelId}>",
                                    "{channelUnset}": "Not picked yet"
                                },
                                "subPostsLine": {
                                    "{subPostsOn}": "On",
                                    "{subPostsOff}": "Off"
                                },
                                "errorLine": {
                                    "{errorNone}": "",
                                    "{errorPostChannelMissing}": "\n\n⚠️ The channel it posts in is gone - pick another.",
                                    "{errorPostChannelForbidden}": "\n\n⚠️ The bot cannot post in that channel. It needs View Channel, Send Messages and Embed Links there.",
                                    "{errorEventChannelForbidden}": "\n\n⚠️ The bot could not see an event's voice channel, so it could not check anybody in. Give it View Channel there.",
                                    "{errorLogChannelMissing}": "\n\n⚠️ The channel the attendance is copied to is gone - pick another under More options.",
                                    "{errorLogChannelForbidden}": "\n\n⚠️ The bot cannot post the attendance copy. It needs View Channel, Send Messages and Embed Links in that channel."
                                }
                            },
                            "vars": {
                                "eventsChannelId": "{eventsChannelId}",
                                "checkInLeadMinutes": "{checkInLeadMinutes}",
                                "lateAfterMinutes": "{lateAfterMinutes}",
                                "statusLine": "{statusLine}",
                                "enabledOn": "{enabledOn}",
                                "enabledOff": "{enabledOff}",
                                "channelLine": "{channelLine}",
                                "channelSet": "{channelSet}",
                                "channelUnset": "{channelUnset}",
                                "subPostsLine": "{subPostsLine}",
                                "subPostsOn": "{subPostsOn}",
                                "subPostsOff": "{subPostsOff}",
                                "errorLine": "{errorLine}",
                                "errorNone": "{errorNone}",
                                "errorPostChannelMissing": "{errorPostChannelMissing}",
                                "errorPostChannelForbidden": "{errorPostChannelForbidden}",
                                "errorEventChannelForbidden": "{errorEventChannelForbidden}",
                                "errorLogChannelMissing": "{errorLogChannelMissing}",
                                "errorLogChannelForbidden": "{errorLogChannelForbidden}"
                            },
                            "defaultVars": {
                                "checkInLeadMinutes": 15,
                                "lateAfterMinutes": 10
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-General/EventBoardComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/EventBoardComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/EventJoinVoiceButton",
                            "definition": {
                                "name": "VertixBot/UI-General/EventJoinVoiceButton",
                                "elementType": "button-url",
                                "instanceType": "Dynamic",
                                "label": "🔊  Join voice",
                                "style": "link",
                                "url": "https://discord.com/channels/@me"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/EventBoardComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/EventBoardEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "📅  {eventName} · {stateTitle}",
                            "description": "{stateLine}{checkedInBlock}{waitingBlock}{onTimeBlock}{lateBlock}{noShowBlock}{walkInsBlock}",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "color": 3369963,
                            "options": {
                                "stateTitle": {
                                    "{stateCheckIn}": "Check-in",
                                    "{stateRunning}": "Under way",
                                    "{stateEnded}": "Attendance",
                                    "{stateCanceled}": "Canceled",
                                    "{stateMoved}": "Moved"
                                },
                                "stateLine": {
                                    "{stateCheckIn}": "Starts <t:{startsAt}:F> (<t:{startsAt}:R>) in <#{voiceChannelId}>.\nSaid you're coming? Join the voice channel to check in - by <t:{lateAt}:t> to count as on time.",
                                    "{stateRunning}": "Started <t:{startsAt}:R> in <#{voiceChannelId}>.\nCheck-in is closed - anybody from the list who comes now is late.",
                                    "{stateEnded}": "Held <t:{startsAt}:F> in <#{voiceChannelId}>.\nTimes are hours:minutes in voice.{minVoiceLine}",
                                    "{stateCanceled}": "Canceled - it was set for <t:{startsAt}:F>.",
                                    "{stateMoved}": "Moved to <t:{movedToAt}:F>. A new board goes up before then."
                                },
                                "checkedInBlock": {
                                    "{blockShown}": "\n\n**✅ Here ({checkedInCount})**\n{checkedIn}{checkedInMore}",
                                    "{blockHidden}": ""
                                },
                                "waitingBlock": {
                                    "{blockShown}": "\n\n**⏳ Not here yet ({waitingCount})**\n{waiting}{waitingMore}",
                                    "{blockHidden}": ""
                                },
                                "onTimeBlock": {
                                    "{blockShown}": "\n\n**✅ Came ({onTimeCount})**\n{onTime}{onTimeMore}",
                                    "{blockHidden}": ""
                                },
                                "lateBlock": {
                                    "{blockShown}": "\n\n**🕒 Late ({lateCount})**\n{late}{lateMore}",
                                    "{blockHidden}": ""
                                },
                                "noShowBlock": {
                                    "{blockShown}": "\n\n**❌ Didn't come ({noShowCount})**\n{noShow}{noShowMore}",
                                    "{blockHidden}": ""
                                },
                                "walkInsBlock": {
                                    "{blockShown}": "\n\n**👋 Walked in ({walkInsCount})**\n{walkIns}{walkInsMore}",
                                    "{blockHidden}": ""
                                },
                                "checkedInMore": {
                                    "{moreShown}": "\n+{checkedInHidden} more",
                                    "{moreHidden}": ""
                                },
                                "waitingMore": {
                                    "{moreShown}": "\n+{waitingHidden} more",
                                    "{moreHidden}": ""
                                },
                                "onTimeMore": {
                                    "{moreShown}": "\n+{onTimeHidden} more",
                                    "{moreHidden}": ""
                                },
                                "lateMore": {
                                    "{moreShown}": "\n+{lateHidden} more",
                                    "{moreHidden}": ""
                                },
                                "noShowMore": {
                                    "{moreShown}": "\n+{noShowHidden} more",
                                    "{moreHidden}": ""
                                },
                                "walkInsMore": {
                                    "{moreShown}": "\n+{walkInsHidden} more",
                                    "{moreHidden}": ""
                                },
                                "minVoiceLine": {
                                    "{minVoiceShown}": "\nLess than {minVoiceMinutes} min in voice counts as not coming.",
                                    "{minVoiceHidden}": ""
                                }
                            },
                            "arrayOptions": {
                                "checkedIn": {
                                    "format": "{value}{separator}",
                                    "separator": "\n"
                                },
                                "waiting": {
                                    "format": "{value}{separator}",
                                    "separator": "\n"
                                },
                                "onTime": {
                                    "format": "{value}{separator}",
                                    "separator": "\n"
                                },
                                "late": {
                                    "format": "{value}{separator}",
                                    "separator": "\n"
                                },
                                "noShow": {
                                    "format": "{value}{separator}",
                                    "separator": "\n"
                                },
                                "walkIns": {
                                    "format": "{value}{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "value": "{value}",
                                "separator": "{separator}",
                                "eventName": "{eventName}",
                                "startsAt": "{startsAt}",
                                "lateAt": "{lateAt}",
                                "movedToAt": "{movedToAt}",
                                "minVoiceMinutes": "{minVoiceMinutes}",
                                "voiceChannelId": "{voiceChannelId}",
                                "stateTitle": "{stateTitle}",
                                "stateLine": "{stateLine}",
                                "stateCheckIn": "{stateCheckIn}",
                                "stateRunning": "{stateRunning}",
                                "stateEnded": "{stateEnded}",
                                "stateCanceled": "{stateCanceled}",
                                "stateMoved": "{stateMoved}",
                                "blockShown": "{blockShown}",
                                "blockHidden": "{blockHidden}",
                                "moreShown": "{moreShown}",
                                "moreHidden": "{moreHidden}",
                                "minVoiceLine": "{minVoiceLine}",
                                "minVoiceShown": "{minVoiceShown}",
                                "minVoiceHidden": "{minVoiceHidden}",
                                "checkedIn": "{checkedIn}",
                                "checkedInCount": "{checkedInCount}",
                                "checkedInHidden": "{checkedInHidden}",
                                "checkedInBlock": "{checkedInBlock}",
                                "checkedInMore": "{checkedInMore}",
                                "waiting": "{waiting}",
                                "waitingCount": "{waitingCount}",
                                "waitingHidden": "{waitingHidden}",
                                "waitingBlock": "{waitingBlock}",
                                "waitingMore": "{waitingMore}",
                                "onTime": "{onTime}",
                                "onTimeCount": "{onTimeCount}",
                                "onTimeHidden": "{onTimeHidden}",
                                "onTimeBlock": "{onTimeBlock}",
                                "onTimeMore": "{onTimeMore}",
                                "late": "{late}",
                                "lateCount": "{lateCount}",
                                "lateHidden": "{lateHidden}",
                                "lateBlock": "{lateBlock}",
                                "lateMore": "{lateMore}",
                                "noShow": "{noShow}",
                                "noShowCount": "{noShowCount}",
                                "noShowHidden": "{noShowHidden}",
                                "noShowBlock": "{noShowBlock}",
                                "noShowMore": "{noShowMore}",
                                "walkIns": "{walkIns}",
                                "walkInsCount": "{walkInsCount}",
                                "walkInsHidden": "{walkInsHidden}",
                                "walkInsBlock": "{walkInsBlock}",
                                "walkInsMore": "{walkInsMore}"
                            },
                            "defaultVars": {
                                "eventName": "Raid Night",
                                "startsAt": 1791057600,
                                "lateAt": 1791058200,
                                "voiceChannelId": "123456789"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-General/EventNeedSubComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/EventNeedSubComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/EventJoinVoiceButton",
                            "definition": {
                                "name": "VertixBot/UI-General/EventJoinVoiceButton",
                                "elementType": "button-url",
                                "instanceType": "Dynamic",
                                "label": "🔊  Join voice",
                                "style": "link",
                                "url": "https://discord.com/channels/@me"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/EventNeedSubComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/EventNeedSubEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{stateTitle}",
                            "description": "{stateLine}",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "color": 3369963,
                            "options": {
                                "stateTitle": {
                                    "{stateOpen}": "🙋  {eventName} needs {stillNeeded} more",
                                    "{stateFilled}": "✅  {eventName} is full again"
                                },
                                "stateLine": {
                                    "{stateOpen}": "It started <t:{startsAt}:R> and some who said they would come did not.\nJoin <#{voiceChannelId}> to take a place.",
                                    "{stateFilled}": "Every place is taken - thanks to everybody who jumped in."
                                }
                            },
                            "vars": {
                                "eventName": "{eventName}",
                                "startsAt": "{startsAt}",
                                "voiceChannelId": "{voiceChannelId}",
                                "stillNeeded": "{stillNeeded}",
                                "stateTitle": "{stateTitle}",
                                "stateLine": "{stateLine}",
                                "stateOpen": "{stateOpen}",
                                "stateFilled": "{stateFilled}"
                            },
                            "defaultVars": {
                                "eventName": "Raid Night",
                                "startsAt": 1791057600,
                                "voiceChannelId": "123456789",
                                "stillNeeded": 2
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const stillNeeded = Number(args.stillNeeded ?? 0), state = stillNeeded > 0 ? vars.stateOpen : vars.stateFilled;\n  return {\n    eventName: args.eventName,\n    startsAt: args.startsAt,\n    voiceChannelId: args.voiceChannelId,\n    stillNeeded,\n    stateTitle: state,\n    stateLine: state\n  };\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-General/TrialEndingComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-General/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/TrialEndingComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/TrialEndingBillingButton",
                            "definition": {
                                "name": "VertixBot/UI-General/TrialEndingBillingButton",
                                "elementType": "button-url",
                                "instanceType": "Dynamic",
                                "label": "Open billing",
                                "style": "link",
                                "url": "https://dashboard.voicechannels.online/billing"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-General/TrialEndingComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/TrialEndingEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⏳  Your free {planName} trial is ending",
                            "description": "The free {planName} trial in **{guildName}** ends <t:{endsAt}:R>, on <t:{endsAt}:f>.\n\nWhen it ends:\n- **Custom bot look** - the name, avatar, banner and bio the bot wears in your server come off.\n- **Generators** - only your first {maxMasterChannels} keep making rooms.\n\nKeep {planName} for ${monthlyPriceUsd} a month on the dashboard.",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "color": 3369963,
                            "vars": {
                                "guildName": "{guildName}",
                                "planName": "{planName}",
                                "endsAt": "{endsAt}",
                                "maxMasterChannels": "{maxMasterChannels}",
                                "monthlyPriceUsd": "{monthlyPriceUsd}"
                            },
                            "defaultVars": {
                                "guildName": "My Server",
                                "planName": "Pro",
                                "endsAt": 1791057600,
                                "maxMasterChannels": 2,
                                "monthlyPriceUsd": 4
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  return {\n    guildName: args.guildName,\n    planName: args.planName,\n    endsAt: args.endsAt,\n    maxMasterChannels: args.maxMasterChannels,\n    monthlyPriceUsd: args.monthlyPriceUsd\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/ClaimResultComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/ClaimResultOwnerStopEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimResultOwnerStopEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  You're back in charge!",
                            "description": "Please be aware that if you don't return within **{absentMinutes}** minutes, the channel will once again become available for other members to claim.\n",
                            "vars": {
                                "absentMinutes": "{absentMinutes}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  absentMinutes: (args.absentInterval / 60000).toFixed(1)\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimResultVotedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimResultVotedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🗳️  You have voted for {userDisplayName}",
                            "description": "Your vote has been cast in favor of <@{userId}> taking ownership of this channel.",
                            "vars": {
                                "userDisplayName": "{userDisplayName}",
                                "userId": "{userId}"
                            },
                            "defaultVars": {
                                "userDisplayName": "User",
                                "userId": "123456789"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  userDisplayName: args.userDisplayName,\n  userId: args.userId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimResultVotedSameEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimResultVotedSameEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🗳️  You already voted for {userDisplayName}",
                            "description": "Your vote has been already cast in favor of <@{userId}>, you can vote for someone else if you changed your mind.",
                            "vars": {
                                "userDisplayName": "{userDisplayName}",
                                "userId": "{userId}"
                            },
                            "defaultVars": {
                                "userDisplayName": "User",
                                "userId": "123456789"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  userDisplayName: args.userDisplayName,\n  userId: args.userId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimResultVoteUpdatedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimResultVoteUpdatedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🗳️  Your vote has been updated",
                            "description": "You've just changed your vote from <@{prevUserId}> to <@{currentUserId}> for channel ownership.",
                            "vars": {
                                "prevUserId": "{prevUserId}",
                                "currentUserId": "{currentUserId}"
                            },
                            "defaultVars": {
                                "prevUserId": "123456789",
                                "currentUserId": "987654321"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  prevUserId: args.prevUserId,\n  currentUserId: args.currentUserId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimResultStepInEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimResultStepInEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "😈  Channel might be yours",
                            "description": "You've put yourself forward as a potential owner of this channel.\nGood luck!\n"
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimResultStepAlreadyInEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimResultStepAlreadyInEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  You are already in",
                            "description": "Your intentions are clear - you've already nominated yourself as a potential owner of this channel.",
                            "color": 16738560
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimResultVoteSelfEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimResultVoteSelfEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  You cannot vote for yourself",
                            "description": "It's great that you believe in yourself, but voting for yourself is not allowed in this election.",
                            "color": 16738560
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 7,
                "withDefinition": 7,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/ClaimStartComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/ClaimStartComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/ClaimStartButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/ClaimStartButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Claim",
                                "style": "secondary",
                                "emoji": "😈"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/ClaimStartComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimStartEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👋  {ownerDisplayName} abandoned his channel!",
                            "description": "<@{ownerId}> has been absent for more than {absentMinutes} minutes.\nWill you be the one to take charge? Step up and claim it for yourself!",
                            "vars": {
                                "ownerId": "{ownerId}",
                                "ownerDisplayName": "{ownerDisplayName}",
                                "absentMinutes": "{absentMinutes}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  ownerId: args.ownerId,\n  ownerDisplayName: args.ownerDisplayName,\n  absentMinutes: (args.absentInterval / 60000).toFixed(1)\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/ClaimVoteComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/ClaimVoteElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/ClaimVoteAddButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/ClaimVoteAddButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Vote {displayName}",
                                "options": {},
                                "style": "secondary",
                                "emoji": "🗳️"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/ClaimVoteStepInButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/ClaimVoteStepInButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Step in",
                                "style": "secondary",
                                "emoji": "😈"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimVoteStepInButtonGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/ClaimVoteStepInButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/ClaimVoteStepInButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Step in",
                                "style": "secondary",
                                "emoji": "😈"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/ClaimVoteStepInEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimVoteStepInEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  {userInitiatorDisplayName} wish to claim this channel",
                            "description": "Unless someone else steps up, <@{userInitiatorId}> will be the proud owner of this channel in just `{elapsedTimeFormatFraction}`.",
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "userInitiatorId": "{userInitiatorId}",
                                "userInitiatorDisplayName": "{userInitiatorDisplayName}"
                            },
                            "defaultVars": {
                                "userInitiatorId": "123456789",
                                "userInitiatorDisplayName": "User",
                                "elapsedTimeFormatFraction": "1.0 minutes"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    },
                                    {
                                        "source": "(args) => {\n  return {\n    userInitiatorId: args.userInitiatorId,\n    userInitiatorDisplayName: args.userInitiatorDisplayName\n  };\n}"
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(args.timeEnd)"
                                }
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimVoteEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimVoteEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  {candidatesCount} Candidates wish to claim this channel",
                            "description": "The countdown is on!\nIn just `{elapsedTimeFormatFraction}` , the voting will come to a close.\nIn case of a tie, <@{userInitiatorId}> will become the new owner.\n\n{candidatesState}",
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "candidatesState": {
                                    "{candidates}": "🏅 {candidates}",
                                    "{candidatesDefault}": "There are no candidates yet."
                                }
                            },
                            "arrayOptions": {
                                "candidates": {
                                    "format": "{value}{separator}",
                                    "separator": " - ",
                                    "multiSeparator": "\n",
                                    "options": {
                                        "userId": "<@{userId}>",
                                        "votes": "{votes} Votes"
                                    }
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "separator": "{separator}",
                                "value": "{value}",
                                "userInitiatorId": "{userInitiatorId}",
                                "candidates": "{candidates}",
                                "candidatesCount": "{candidatesCount}",
                                "candidatesState": "{candidatesState}",
                                "candidatesDefault": "{candidatesDefault}",
                                "userId": "{userId}",
                                "votes": "{votes}"
                            },
                            "defaultVars": {
                                "candidatesCount": "2",
                                "userInitiatorId": "123456789",
                                "candidatesState": "🏅 <@123456789> - 1 Votes\n🏅 <@987654321> - 0 Votes",
                                "elapsedTimeFormatFraction": "1.5 minutes"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    },
                                    {
                                        "source": "(args) => {\n  const result = {}, candidates = Object.entries(args.results || {}).map(([userId, votes]) => ({\n    userId,\n    votes\n  })).sort((a, b) => b.votes - a.votes);\n  result.candidatesCount = candidates.length;\n  result.userInitiatorId = args.userInitiatorId;\n  if (result.candidatesCount) {\n    result.candidates = candidates;\n    result.candidatesState = vars.candidates;\n  } else\n    result.candidatesState = vars.candidatesDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(args.timeEnd)"
                                }
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/ClaimVoteWonEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/ClaimVoteWonEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  {userWonDisplayName} has claimed the channel",
                            "description": "{wonMessage}",
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "wonMessage": {
                                    "{wonSomeoneElse}": "<@{userWonId}> has claimed ownership of this channel, superseding ~~{previousOwnerDisplayName}~~ as the new owner!{results}",
                                    "{wonSameOwner}": "<@{userWonId}> has claimed ownership of this channel, he was already the owner! 😊{results}"
                                },
                                "results": {
                                    "{resultsDefault}": "",
                                    "{resultsLink}": "\n\nFor more details click [here]({resultsLink})"
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "userWonId": "{userWonId}",
                                "userWonDisplayName": "{userWonDisplayName}",
                                "previousOwnerId": "{previousOwnerId}",
                                "previousOwnerDisplayName": "{previousOwnerDisplayName}",
                                "candidatesCount": "{candidatesCount}",
                                "wonMessage": "{wonMessage}",
                                "wonSameOwner": "{wonSameOwner}",
                                "wonSomeoneElse": "{wonSomeoneElse}",
                                "results": "{results}",
                                "resultsLink": "{resultsLink}",
                                "resultsDefault": "{resultsDefault}"
                            },
                            "defaultVars": {
                                "userWonId": "123456789",
                                "userWonDisplayName": "New Owner",
                                "previousOwnerId": "987654321",
                                "previousOwnerDisplayName": "Old Owner",
                                "wonMessage": "wonSomeoneElse",
                                "results": "resultsDefault"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(Date.now() + (args.elapsedTime || 0))"
                                }
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannel",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaRenameButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaRenameButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Rename",
                                "style": "secondary",
                                "emoji": "✏️"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaLimitButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaLimitButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Limit",
                                "style": "secondary",
                                "emoji": "✋"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaClearChatButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaClearChatButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Clear Chat",
                                "style": "secondary",
                                "emoji": "🧹"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsStateButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsStateButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "{displayText}",
                                "options": {
                                    "publicText": "Public",
                                    "privateText": "Private",
                                    "displayText": "{privateText}"
                                },
                                "style": "secondary",
                                "emoji": "🚫"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsVisibilityButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsVisibilityButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "{displayText}",
                                "options": {
                                    "shownText": "Shown",
                                    "hiddenText": "Hidden",
                                    "displayText": "{hiddenText}"
                                },
                                "style": "secondary",
                                "emoji": "🐵"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsAccessButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsAccessButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "style": "secondary",
                                "emoji": "👥",
                                "label": "Access"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Reset",
                                "style": "secondary",
                                "emoji": "🔃"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelTransferOwnerButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelTransferOwnerButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Transfer",
                                "style": "secondary",
                                "emoji": "🔀"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelRegionButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelRegionButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Region",
                                "style": "secondary",
                                "emoji": "🌍"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaStatusButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaStatusButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Status",
                                "style": "secondary",
                                "emoji": "📣"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelLfmButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelLfmButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "LFM",
                                "style": "secondary",
                                "emoji": "🔎"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPremiumClaimChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPremiumClaimChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Claim",
                                "style": "secondary",
                                "emoji": "😈"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannel/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "༄ Manage your Dynamic Channel",
                            "description": "Embrace the responsibility of overseeing your dynamic channel, diligently customizing it according to your discerning preferences.\n\nPlease be advised that the privilege to make alterations is vested solely of the channel owner.\n\n_Current settings_:\n- Name: **{name}**\n- User Limit: ✋ **{limit}**\n- State: {state}\n- Visibility State: {visibilityState}\n- Region: 🌍 **{region}**\n- Bitrate: 🎚 **{bitrate} kbps**",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "options": {
                                "limit": {
                                    "{limitDisplayValue}": "{limitValue}",
                                    "{limitDisplayUnlimited}": "Unlimited"
                                },
                                "state": {
                                    "{statePublic}": "🌐 **Public**",
                                    "{statePrivate}": "🚫 **Private**"
                                },
                                "visibilityState": {
                                    "{visibilityStateShown}": "🐵 **Shown**",
                                    "{visibilityStateHidden}": "🙈 **Hidden**"
                                },
                                "region": {
                                    "{region-auto}": "Automatic",
                                    "{region-brazil}": "Brazil",
                                    "{region-hongkong}": "HongKong",
                                    "{region-india}": "India",
                                    "{region-japan}": "Japan",
                                    "{region-rotterdam}": "Rotterdam",
                                    "{region-russia}": "Russia",
                                    "{region-singapore}": "Singapore",
                                    "{region-southafrica}": "SouthAfrica",
                                    "{region-sydney}": "Sydney",
                                    "{region-us-central}": "US Central",
                                    "{region-us-east}": "US East",
                                    "{region-us-south}": "US South",
                                    "{region-us-west}": "US West"
                                }
                            },
                            "vars": {
                                "region-auto": "{region-auto}",
                                "region-brazil": "{region-brazil}",
                                "region-hongkong": "{region-hongkong}",
                                "region-india": "{region-india}",
                                "region-japan": "{region-japan}",
                                "region-rotterdam": "{region-rotterdam}",
                                "region-russia": "{region-russia}",
                                "region-singapore": "{region-singapore}",
                                "region-southafrica": "{region-southafrica}",
                                "region-sydney": "{region-sydney}",
                                "region-us-central": "{region-us-central}",
                                "region-us-east": "{region-us-east}",
                                "region-us-south": "{region-us-south}",
                                "region-us-west": "{region-us-west}",
                                "name": "{name}",
                                "limit": "{limit}",
                                "state": "{state}",
                                "region": "{region}",
                                "bitrate": "{bitrate}",
                                "limitDisplayValue": "{limitDisplayValue}",
                                "limitDisplayUnlimited": "{limitDisplayUnlimited}",
                                "limitValue": "{limitValue}",
                                "statePublic": "{statePublic}",
                                "statePrivate": "{statePrivate}",
                                "visibilityState": "{visibilityState}",
                                "visibilityStateShown": "{visibilityStateShown}",
                                "visibilityStateHidden": "{visibilityStateHidden}",
                                "regionDisplayValue": "{regionDisplayValue}",
                                "regionDisplayAuto": "{regionDisplayAuto}",
                                "regionValue": "{regionValue}"
                            },
                            "defaultVars": {
                                "name": "Channel Name",
                                "limit": "Unlimited",
                                "state": "🌐 **Public**",
                                "visibilityState": "🐵 **Shown**",
                                "region": "Automatic"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V2/DynamicChannelElementsGroup",
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelLfmComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelLfmChannelMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelLfmChannelMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelLfmChannelMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🔎 Select Channel"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelLfmSelectChannelEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelLfmSelectChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "color": 3369963,
                            "title": "🔎  Where should it go?",
                            "description": "Pick the channel your call for members is posted to.\n\nIt shows who is hosting, what they are playing and how many are in, and it is taken down when your channel fills up or empties."
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelLfmPostedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelLfmPostedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔎  Your channel is on the board",
                            "description": "Posted to <#{lfmChannelId}>.\n\nIt keeps its member count up to date, and comes down on its own when your channel fills up or empties.",
                            "color": 16766720,
                            "vars": {
                                "lfmChannelId": "{lfmChannelId}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  lfmChannelId: args.lfmChannelId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelLfmCooldownEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelLfmCooldownEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔎  Not just yet",
                            "description": "This server limits how often these channels advertise, and the last post went up recently. The next one can go up in about {retryMinutes} minutes.",
                            "color": 16738560,
                            "vars": {
                                "retryMinutes": "{retryMinutes}"
                            },
                            "defaultVars": {
                                "retryMinutes": "10"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  retryMinutes: args.retryMinutes\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelLfmUnavailableEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelLfmUnavailableEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔎  Nothing to post",
                            "description": "{reason}",
                            "color": 16738560,
                            "options": {
                                "reason": {
                                    "{reasonNotConfigured}": "Nobody has set this up yet. An admin runs `/setup`, turns the **LFM** button on in the channel interface, and picks the channels these posts go to.",
                                    "{reasonDestinationUnavailable}": "The channels these posts go to are not ones you can see. An admin picks them in the setup screen.",
                                    "{reasonHidden}": "Your channel is hidden, so nobody could find it anyway. Show it first.",
                                    "{reasonPrivate}": "Your channel is private, so nobody you invite could get in. Make it public first.",
                                    "{reasonFull}": "Your channel is already full.",
                                    "{reasonAlreadyPosted}": "Your channel is already on the board.",
                                    "{reasonFailed}": "Something went wrong while posting. Try again in a moment."
                                }
                            },
                            "vars": {
                                "reason": "{reason}",
                                "reasonNotConfigured": "{reasonNotConfigured}",
                                "reasonDestinationUnavailable": "{reasonDestinationUnavailable}",
                                "reasonHidden": "{reasonHidden}",
                                "reasonPrivate": "{reasonPrivate}",
                                "reasonFull": "{reasonFull}",
                                "reasonAlreadyPosted": "{reasonAlreadyPosted}",
                                "reasonFailed": "{reasonFailed}"
                            },
                            "defaultVars": {
                                "reason": "{reasonNotConfigured}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  return {\n    reason: {\n      [DynamicChannelLfmPostResultCode.NotConfigured]: vars.reasonNotConfigured,\n      [DynamicChannelLfmPostResultCode.DestinationUnavailable]: vars.reasonDestinationUnavailable,\n      [DynamicChannelLfmPostResultCode.ChannelHidden]: vars.reasonHidden,\n      [DynamicChannelLfmPostResultCode.ChannelPrivate]: vars.reasonPrivate,\n      [DynamicChannelLfmPostResultCode.ChannelFull]: vars.reasonFull,\n      [DynamicChannelLfmPostResultCode.AlreadyPosted]: vars.reasonAlreadyPosted,\n      [DynamicChannelLfmPostResultCode.Error]: vars.reasonFailed\n    }[args.reasonCode] ?? vars.reasonFailed\n  };\n}",
                                        "binds": [
                                            "DynamicChannelLfmPostResultCode",
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V2/DynamicChannelLfmNoteModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelLfmNoteModal",
                "title": "Looking for members",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V2/DynamicChannelLfmNoteInput",
                        "label": "WHO ARE YOU LOOKING FOR",
                        "placeholder": "Need 2 for ranked, mic required",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 128
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 4,
                "withDefinition": 4,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelLfmPostComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelLfmPostComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelLfmPostEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔎  {channelName} is looking for members",
                            "description": "{noteLine}{gameLine}**Members** {occupancy}\n**Host** <@{ownerId}>\n\nJoin them in <#{channelId}> · closes in `{elapsedTimeFormatFraction}`",
                            "thumbnail": "{ownerAvatarUrl}",
                            "color": 3369963,
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "gameLine": {
                                    "{gameKnown}": "**Playing** {gameName}\n",
                                    "{gameUnknown}": ""
                                },
                                "noteLine": {
                                    "{noteKnown}": "> {note}\n\n",
                                    "{noteUnknown}": ""
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "channelId": "{channelId}",
                                "channelName": "{channelName}",
                                "ownerId": "{ownerId}",
                                "ownerAvatarUrl": "{ownerAvatarUrl}",
                                "occupancy": "{occupancy}",
                                "gameName": "{gameName}",
                                "gameLine": "{gameLine}",
                                "gameKnown": "{gameKnown}",
                                "gameUnknown": "{gameUnknown}",
                                "note": "{note}",
                                "noteLine": "{noteLine}",
                                "noteKnown": "{noteKnown}",
                                "noteUnknown": "{noteUnknown}"
                            },
                            "defaultVars": {
                                "channelName": "Leo's Channel",
                                "occupancy": "●●○○○  2/5",
                                "gameName": "Valorant",
                                "note": "Need 2 for ranked, mic required",
                                "elapsedTimeFormatFraction": "30.0 minutes"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(Number(args.expiresAt))"
                                }
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelMetaClearChatComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaClearChatButtonGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaClearChatButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaClearChatButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Clear Chat",
                                "style": "secondary",
                                "emoji": "🧹"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaClearChatSuccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaClearChatSuccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🧹  Chat was cleared the by {ownerDisplayName}!",
                            "description": "Total of {totalMessages} messages.",
                            "color": 12954723,
                            "vars": {
                                "ownerDisplayName": "{ownerDisplayName}",
                                "totalMessages": "{totalMessages}"
                            },
                            "defaultVars": {
                                "ownerDisplayName": "User",
                                "totalMessages": "0"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  ownerDisplayName: args.ownerDisplayName,\n  totalMessages: args.totalMessages\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaClearChatNothingToClearEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaClearChatNothingToClearEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "color": 12954723,
                            "title": "🧹  There are no messages available to clear",
                            "description": "Keep in mind, that only non-embeds messages can be deleted."
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelMetaLimitComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaLimitSuccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaLimitSuccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "✋  Your channel's user limit has changed to {userLimit}",
                            "color": 16109389,
                            "options": {
                                "userLimit": {
                                    "{userLimitValue}": "{userLimitValue}",
                                    "{userLimitUnlimited}": "Unlimited"
                                }
                            },
                            "vars": {
                                "userLimit": "{userLimit}",
                                "userLimitValue": "{userLimitValue}",
                                "userLimitUnlimited": "{userLimitUnlimited}"
                            },
                            "defaultVars": {
                                "userLimit": "Unlimited"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  userLimit: args.userLimit === 0 ? vars.userLimitUnlimited : vars.userLimitValue,\n  userLimitValue: args.userLimit\n})",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaLimitInvalidInputEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaLimitInvalidInputEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙅  User limit must be between {minValue} and {maxValue}",
                            "color": 16738560,
                            "vars": {
                                "minValue": "{minValue}",
                                "maxValue": "{maxValue}"
                            },
                            "defaultVars": {
                                "minValue": "0",
                                "maxValue": "99"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  minValue: args.minValue,\n  maxValue: args.maxValue\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V2/DynamicChannelMetaLimitModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaLimitModal",
                "title": "Set user limit",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V2/DynamicChannelMetaLimitInput",
                        "label": "SET USER LIMIT (0 FOR UNLIMITED)",
                        "placeholder": "0 - 99",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 99
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelMetaRenameComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaRenameBadwordEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaRenameBadwordEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙅  Failed to rename your channel",
                            "description": "The word `{badword}` has been classified as inappropriate by the server administrator.",
                            "color": 16738560,
                            "vars": {
                                "badword": "{badword}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  badword: args.badword\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaRenameLimitedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaRenameLimitedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙅 You renamed your channel too fast!",
                            "description": "Please wait `{elapsedTimeFormatFraction}` until the next rename{masterChannelMessage}",
                            "color": 16738560,
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "masterChannelMessage": {
                                    "{masterChannelId}": " or open a new channel: <#{masterChannelId}>",
                                    "{masterChannelMessageDefault}": ""
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "masterChannelId": "{masterChannelId}",
                                "masterChannelMessage": "{masterChannelMessage}",
                                "masterChannelMessageDefault": "{masterChannelMessageDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    },
                                    {
                                        "source": "(args) => {\n  const result = {}, masterChannelId = typeof args.masterChannelId === \"string\" ? args.masterChannelId : \"\";\n  if (masterChannelId) {\n    result.masterChannelId = masterChannelId;\n    result.masterChannelMessage = vars.masterChannelId;\n  } else\n    result.masterChannelMessage = vars.masterChannelMessageDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(Date.now() + args.retryAfter * 1000)"
                                }
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaRenameSuccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaRenameSuccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "✏️  Your channel's name has changed to '{channelName}'",
                            "color": 15248904,
                            "vars": {
                                "channelName": "{channelName}"
                            },
                            "defaultVars": {
                                "channelName": "New Channel Name"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  channelName: args.channelName\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V2/DynamicChannelMetaRenameModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaRenameModal",
                "title": "Rename dynamic channel",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V2/DynamicChannelMetaRenameInput",
                        "label": "CHOOSE NAME FOR YOUR CHANNEL",
                        "placeholder": "",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 50
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelMetaStatusComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaStatusBadwordEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaStatusBadwordEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙅  Failed to set your channel's status",
                            "description": "The word `{badword}` has been classified as inappropriate by the server administrator.",
                            "color": 16738560,
                            "vars": {
                                "badword": "{badword}"
                            },
                            "defaultVars": {
                                "badword": "example"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  badword: args.badword\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaStatusClearedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaStatusClearedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "📣  Your channel's status is automatic again",
                            "description": "It now shows '{channelStatus}' and updates itself as the channel changes.",
                            "color": 3369963,
                            "vars": {
                                "channelStatus": "{channelStatus}"
                            },
                            "defaultVars": {
                                "channelStatus": "Valorant · 3/5"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  channelStatus: args.channelStatus\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaStatusSuccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelMetaStatusSuccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "📣  Your channel's status is now '{channelStatus}'",
                            "description": "It stays until you clear it, submit an empty status to go back to automatic.",
                            "color": 16766720,
                            "vars": {
                                "channelStatus": "{channelStatus}"
                            },
                            "defaultVars": {
                                "channelStatus": "Ranked grind, need two"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  channelStatus: args.channelStatus\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V2/DynamicChannelMetaStatusModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelMetaStatusModal",
                "title": "Set dynamic channel status",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V2/DynamicChannelMetaStatusInput",
                        "label": "WHAT IS HAPPENING IN YOUR CHANNEL",
                        "placeholder": "",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 128
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelPanel",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaRenameButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaRenameButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Rename",
                                "style": "secondary",
                                "emoji": "✏️"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaLimitButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaLimitButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Limit",
                                "style": "secondary",
                                "emoji": "✋"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaClearChatButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaClearChatButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Clear Chat",
                                "style": "secondary",
                                "emoji": "🧹"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsStateButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsStateButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "{displayText}",
                                "options": {
                                    "publicText": "Public",
                                    "privateText": "Private",
                                    "displayText": "{privateText}"
                                },
                                "style": "secondary",
                                "emoji": "🚫"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsVisibilityButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsVisibilityButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "{displayText}",
                                "options": {
                                    "shownText": "Shown",
                                    "hiddenText": "Hidden",
                                    "displayText": "{hiddenText}"
                                },
                                "style": "secondary",
                                "emoji": "🐵"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsAccessButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsAccessButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "style": "secondary",
                                "emoji": "👥",
                                "label": "Access"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Reset",
                                "style": "secondary",
                                "emoji": "🔃"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelTransferOwnerButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelTransferOwnerButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Transfer",
                                "style": "secondary",
                                "emoji": "🔀"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelRegionButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelRegionButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Region",
                                "style": "secondary",
                                "emoji": "🌍"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelMetaStatusButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelMetaStatusButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Status",
                                "style": "secondary",
                                "emoji": "📣"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelLfmButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelLfmButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "LFM",
                                "style": "secondary",
                                "emoji": "🔎"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPremiumClaimChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPremiumClaimChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Claim",
                                "style": "secondary",
                                "emoji": "😈"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelPanel/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPanelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "༄ Manage your Dynamic Channel",
                            "description": "Embrace the responsibility of overseeing your dynamic channel, diligently customizing it according to your discerning preferences.\n\n",
                            "color": 3369963,
                            "vars": {}
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V2/DynamicChannelElementsGroup",
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "routesDrawnElsewhere": true
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelPermissionsAccessComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsAccessElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsGrantMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsGrantMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👍 Grant Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsDenyMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsDenyMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👎 Remove Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsBlockMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsBlockMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🫵 Block User Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsUnblockMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsUnblockMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🤙 Un-Block User Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsKickMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsKickMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👢 Kick User"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsAccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsAccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👥  Manage permissions of your channel",
                            "description": "**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 4943761,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}"
                            },
                            "defaultVars": {
                                "allowedUsersDisplay": "Currently there are no granted users.\n",
                                "blockedUsersDisplay": "Currently there are no blocked users.\n"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsGrantedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsGrantedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👍  Access granted",
                            "description": "**{userGrantedDisplayName}** added successfully and now has access to this channel!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 16109389,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userGrantedDisplayName": "{userGrantedDisplayName}"
                            },
                            "defaultVars": {
                                "userGrantedDisplayName": "User",
                                "allowedUsersDisplay": "• <@123456789>",
                                "blockedUsersDisplay": "Currently there are no blocked users."
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userGrantedDisplayName = args.userGrantedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsDeniedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsDeniedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👎  Access canceled",
                            "description": "**{userDeniedDisplayName}** successfully revoked and no longer has access to this channel!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 15548997,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userDeniedDisplayName": "{userDeniedDisplayName}"
                            },
                            "defaultVars": {
                                "userDeniedDisplayName": "User",
                                "allowedUsersDisplay": "Currently there are no granted users.",
                                "blockedUsersDisplay": "Currently there are no blocked users."
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userDeniedDisplayName = args.userDeniedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsBlockedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsBlockedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🫵  User blocked",
                            "description": "**{userBlockedDisplayName}** successfully blocked and no longer has access to this channel!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 10038562,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userBlockedDisplayName": "{userBlockedDisplayName}"
                            },
                            "defaultVars": {
                                "userBlockedDisplayName": "User",
                                "allowedUsersDisplay": "Currently there are no granted users.",
                                "blockedUsersDisplay": "• <@123456789>"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userBlockedDisplayName = args.userBlockedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsUnblockedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsUnblockedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤙  User unblocked",
                            "description": "**{userUnBlockedDisplayName}** successfully un-blocked!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 16705372,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userUnBlockedDisplayName": "{userUnBlockedDisplayName}"
                            },
                            "defaultVars": {
                                "userUnBlockedDisplayName": "User",
                                "allowedUsersDisplay": "Currently there are no granted users.",
                                "blockedUsersDisplay": "Currently there are no blocked users."
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userUnBlockedDisplayName = args.userUnBlockedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsKickEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsKickEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👢  User kicked",
                            "description": "**{userKickedDisplayName}** successfully kicked!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 16705372,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userKickedDisplayName": "{userKickedDisplayName}"
                            },
                            "defaultVars": {
                                "userKickedDisplayName": "User",
                                "allowedUsersDisplay": "Currently there are no granted users.",
                                "blockedUsersDisplay": "Currently there are no blocked users."
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userKickedDisplayName = args.userKickedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/NothingChangedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NothingChangedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  Nothing changed",
                            "description": "This is may occur when you try to change something that is not changeable or is the same as before.",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/StaffMemberEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/StaffMemberEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔑  Staff member",
                            "description": "**{staffMemberDisplayName}** holds a staff role of this server.\n\nStaff roles keep access to every dynamic channel whatever state its owner picks, so they cannot be blocked or kicked out of your channel.",
                            "color": 15548997,
                            "vars": {
                                "staffMemberDisplayName": "{staffMemberDisplayName}"
                            },
                            "defaultVars": {
                                "staffMemberDisplayName": "Example User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  staffMemberDisplayName: args.staffMemberDisplayName ?? \"Unknown\"\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 9,
                "withDefinition": 9,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelPermissionsComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsAccessElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsGrantMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsGrantMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👍 Grant Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsDenyMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsDenyMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👎 Remove Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsBlockMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsBlockMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🫵 Block User Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsUnblockMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsUnblockMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🤙 Un-Block User Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPermissionsKickMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPermissionsKickMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👢 Kick User"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsPrivateEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsPrivateEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🚫  The channel is private now",
                            "description": "Please be aware that only granted users can enter your channel.\n\n{allowedUsersDisplay}\n{message}",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 15829877,
                            "options": {
                                "message": {
                                    "{messageDefault}": "You can use **(`👥 Access`)** - _Button_ to manage the access of your channel.",
                                    "{messageAccessNotAvailable}": "There is no way to grant access to your channel for new members.\n\nThis is because the **(👥 Access)** Button has been disabled by the administrator"
                                },
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently no other user has access except you.\n",
                                    "{allowedUsers}": "**_Allowed users_**: \n{allowedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "message": "{message}",
                                "messageDefault": "{messageDefault}",
                                "messageAccessNotAvailable": "{messageAccessNotAvailable}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}"
                            },
                            "defaultVars": {
                                "message": "You can use **(`👥 Access`)** - _Button_ to manage the access of your channel.",
                                "allowedUsersDisplay": "Currently no other user has access except you.\n"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.dynamicChannelButtonsIsAccessButtonAvailable)\n    result.message = vars.messageDefault;\n  else\n    result.message = vars.messageAccessNotAvailable;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsPublicEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsPublicEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 7719137,
                            "title": "🌐  The channel is public now",
                            "description": "Please be aware that your room is currently accessible to anyone.\n\nMembers **without** access will be able to enter the room unless it is hidden or set to private."
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsHiddenEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsHiddenEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙈  The channel is hidden now",
                            "description": "Please be aware that only granted users can see your channel.\n\n{allowedUsersDisplay}\n{message}",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 13081951,
                            "options": {
                                "message": {
                                    "{messageDefault}": "You can use **(`👥 Access`)** - _Button_ to manage the access of your channel.",
                                    "{messageAccessNotAvailable}": "There is no way to grant access to your channel for new members.\n\nThis is because the **(👥 Access)** Button has been disabled by the administrator"
                                },
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently no other user has access except you.\n",
                                    "{allowedUsers}": "**_Allowed users_**: \n{allowedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "message": "{message}",
                                "messageDefault": "{messageDefault}",
                                "messageAccessNotAvailable": "{messageAccessNotAvailable}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}"
                            },
                            "defaultVars": {
                                "message": "You can use **(`👥 Access`)** - _Button_ to manage the access of your channel.",
                                "allowedUsersDisplay": "Currently no other user has access except you.\n"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.dynamicChannelButtonsIsAccessButtonAvailable)\n    result.message = vars.messageDefault;\n  else\n    result.message = vars.messageAccessNotAvailable;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsShownEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsShownEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "color": 13081951,
                            "title": "🐵  The channel is visible now"
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsGrantedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsGrantedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👍  Access granted",
                            "description": "**{userGrantedDisplayName}** added successfully and now has access to this channel!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 16109389,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userGrantedDisplayName": "{userGrantedDisplayName}"
                            },
                            "defaultVars": {
                                "userGrantedDisplayName": "User",
                                "allowedUsersDisplay": "• <@123456789>",
                                "blockedUsersDisplay": "Currently there are no blocked users."
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userGrantedDisplayName = args.userGrantedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsDeniedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsDeniedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👎  Access canceled",
                            "description": "**{userDeniedDisplayName}** successfully revoked and no longer has access to this channel!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 15548997,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userDeniedDisplayName": "{userDeniedDisplayName}"
                            },
                            "defaultVars": {
                                "userDeniedDisplayName": "User",
                                "allowedUsersDisplay": "Currently there are no granted users.",
                                "blockedUsersDisplay": "Currently there are no blocked users."
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userDeniedDisplayName = args.userDeniedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsBlockedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsBlockedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🫵  User blocked",
                            "description": "**{userBlockedDisplayName}** successfully blocked and no longer has access to this channel!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 10038562,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userBlockedDisplayName": "{userBlockedDisplayName}"
                            },
                            "defaultVars": {
                                "userBlockedDisplayName": "User",
                                "allowedUsersDisplay": "Currently there are no granted users.",
                                "blockedUsersDisplay": "• <@123456789>"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userBlockedDisplayName = args.userBlockedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsUnblockedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsUnblockedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤙  User unblocked",
                            "description": "**{userUnBlockedDisplayName}** successfully un-blocked!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 16705372,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userUnBlockedDisplayName": "{userUnBlockedDisplayName}"
                            },
                            "defaultVars": {
                                "userUnBlockedDisplayName": "User",
                                "allowedUsersDisplay": "Currently there are no granted users.",
                                "blockedUsersDisplay": "Currently there are no blocked users."
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userUnBlockedDisplayName = args.userUnBlockedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsKickEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsKickEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👢  User kicked",
                            "description": "**{userKickedDisplayName}** successfully kicked!\n\n**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 16705372,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userKickedDisplayName": "{userKickedDisplayName}"
                            },
                            "defaultVars": {
                                "userKickedDisplayName": "User",
                                "allowedUsersDisplay": "Currently there are no granted users.",
                                "blockedUsersDisplay": "Currently there are no blocked users."
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  result.userKickedDisplayName = args.userKickedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelPermissionsAccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPermissionsAccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👥  Manage permissions of your channel",
                            "description": "**Allowed Users**: {allowedUsersDisplay}\n**Blocked Users**: {blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 4943761,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no granted users.",
                                    "{allowedUsers}": "{allowedUsers}"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.",
                                    "{blockedUsers}": "{blockedUsers}"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                },
                                "blockedUsers": {
                                    "format": "• <@{value}>{separator}",
                                    "separator": " "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}"
                            },
                            "defaultVars": {
                                "allowedUsersDisplay": "Currently there are no granted users.\n",
                                "blockedUsersDisplay": "Currently there are no blocked users.\n"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/NothingChangedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NothingChangedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  Nothing changed",
                            "description": "This is may occur when you try to change something that is not changeable or is the same as before.",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/StaffMemberEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/StaffMemberEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔑  Staff member",
                            "description": "**{staffMemberDisplayName}** holds a staff role of this server.\n\nStaff roles keep access to every dynamic channel whatever state its owner picks, so they cannot be blocked or kicked out of your channel.",
                            "color": 15548997,
                            "vars": {
                                "staffMemberDisplayName": "{staffMemberDisplayName}"
                            },
                            "defaultVars": {
                                "staffMemberDisplayName": "Example User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  staffMemberDisplayName: args.staffMemberDisplayName ?? \"Unknown\"\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 13,
                "withDefinition": 13,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelButtonGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Reset",
                                "style": "secondary",
                                "emoji": "🔃"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelPremiumResetChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔃  Dynamic Channel has been reset to default settings! ",
                            "description": "Settings has been reset to default:\n\n- Name: **{name}** {nameChanged}\n- User limit: ✋**{userLimit}** {userLimitChanged}\n- State: {state} {stateChanged}\n- Visibility State: {visibilityState} {visibilityStateChanged}\n- Allowed Users: {allowedUsers} {allowedUsersChanged}\n- Blocked Users: {blockedUsers} {blockedUsersChanged}{rateLimited}",
                            "color": 8035517,
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "changedDisplay": "(__restored__)",
                                "unchangedDisplay": "(__unchanged__)",
                                "userLimit": {
                                    "{userLimitValue}": "{userLimitValue}",
                                    "{userLimitUnlimited}": "Unlimited"
                                },
                                "state": {
                                    "{statePublic}": "🌐 **Public**",
                                    "{statePrivate}": "🚫 **Private**"
                                },
                                "visibilityState": {
                                    "{visibilityStateShown}": "🐵 **Shown**",
                                    "{visibilityStateHidden}": "🙈 **Hidden**"
                                },
                                "rateLimited": {
                                    "{rateLimitedNone}": "",
                                    "{rateLimitedDisplay}": "\n\n⚠️ Renaming cannot be performed at the moment due to rate limit restrictions.\n\nPlease wait for {elapsedTimeFormatFraction} seconds or create a new channel instead."
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "<@{value}>{separator}",
                                    "separator": ", "
                                },
                                "blockedUsers": {
                                    "format": "<@{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "separator": "{separator}",
                                "value": "{value}",
                                "changedDisplay": "{changedDisplay}",
                                "unchangedDisplay": "{unchangedDisplay}",
                                "name": "{name}",
                                "nameChanged": "{nameChanged}",
                                "userLimit": "{userLimit}",
                                "userLimitValue": "{userLimitValue}",
                                "userLimitUnlimited": "{userLimitUnlimited}",
                                "userLimitChanged": "{userLimitChanged}",
                                "state": "{state}",
                                "statePublic": "{statePublic}",
                                "statePrivate": "{statePrivate}",
                                "stateChanged": "{stateChanged}",
                                "visibilityState": "{visibilityState}",
                                "visibilityStateShown": "{visibilityStateShown}",
                                "visibilityStateHidden": "{visibilityStateHidden}",
                                "visibilityStateChanged": "{visibilityStateChanged}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersChanged": "{allowedUsersChanged}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersChanged": "{blockedUsersChanged}",
                                "rateLimited": "{rateLimited}",
                                "rateLimitedNone": "{rateLimitedNone}",
                                "rateLimitedDisplay": "{rateLimitedDisplay}"
                            },
                            "defaultVars": {
                                "name": "My Channel",
                                "nameChanged": "(__unchanged__)",
                                "userLimit": "Unlimited",
                                "userLimitChanged": "(__unchanged__)",
                                "state": "🌐 **Public**",
                                "stateChanged": "(__unchanged__)",
                                "visibilityState": "🐵 **Shown**",
                                "visibilityStateChanged": "(__unchanged__)",
                                "allowedUsers": "None",
                                "allowedUsersChanged": "(__unchanged__)",
                                "blockedUsers": "None",
                                "blockedUsersChanged": "(__unchanged__)",
                                "rateLimited": ""
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    },
                                    {
                                        "source": "(args) => {\n  const {\n    changedDisplay,\n    unchangedDisplay,\n    userLimitUnlimited,\n    userLimitValue,\n    statePublic,\n    statePrivate,\n    visibilityStateShown,\n    visibilityStateHidden,\n    rateLimitedNone,\n    rateLimitedDisplay\n  } = vars, { newState, oldState } = args;\n  return {\n    name: newState?.name ?? null,\n    nameChanged: newState?.name !== oldState?.name ? changedDisplay : unchangedDisplay,\n    userLimit: newState?.userLimit === 0 ? userLimitUnlimited : userLimitValue,\n    userLimitChanged: newState?.userLimit !== oldState?.userLimit ? changedDisplay : unchangedDisplay,\n    userLimitValue: newState?.userLimit ?? 0,\n    state: newState?.state === \"public\" ? statePublic : statePrivate,\n    stateChanged: newState?.state !== oldState?.state ? changedDisplay : unchangedDisplay,\n    visibilityState: newState?.visibilityState === \"shown\" ? visibilityStateShown : visibilityStateHidden,\n    visibilityStateChanged: newState?.visibilityState !== oldState?.visibilityState ? changedDisplay : unchangedDisplay,\n    allowedUsers: newState?.allowedUserIds ?? [],\n    allowedUsersChanged: JSON.stringify(newState?.allowedUserIds) !== JSON.stringify(oldState?.allowedUserIds) ? changedDisplay : unchangedDisplay,\n    blockedUsers: newState?.blockedUserIds ?? [],\n    blockedUsersChanged: JSON.stringify(newState?.blockedUserIds) !== JSON.stringify(oldState?.blockedUserIds) ? changedDisplay : unchangedDisplay,\n    rateLimited: args.rateLimitRetryAfter ? rateLimitedDisplay : rateLimitedNone\n  };\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(Date.now() + (args.rateLimitRetryAfter || 30000) * 1000)"
                                }
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 2,
                "withDefinition": 2,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelRegionComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelRegionElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelRegionSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelRegionSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "⌖ ∙ Select Region",
                                "selectOptions": [
                                    {
                                        "label": "Automatic",
                                        "value": "auto"
                                    },
                                    {
                                        "label": "Brazil",
                                        "value": "brazil"
                                    },
                                    {
                                        "label": "HongKong",
                                        "value": "hongkong"
                                    },
                                    {
                                        "label": "India",
                                        "value": "india"
                                    },
                                    {
                                        "label": "Japan",
                                        "value": "japan"
                                    },
                                    {
                                        "label": "Rotterdam",
                                        "value": "rotterdam"
                                    },
                                    {
                                        "label": "Russia",
                                        "value": "russia"
                                    },
                                    {
                                        "label": "Singapore",
                                        "value": "singapore"
                                    },
                                    {
                                        "label": "SouthAfrica",
                                        "value": "southafrica"
                                    },
                                    {
                                        "label": "Sydney",
                                        "value": "sydney"
                                    },
                                    {
                                        "label": "US Central",
                                        "value": "us-central"
                                    },
                                    {
                                        "label": "US East",
                                        "value": "us-east"
                                    },
                                    {
                                        "label": "US South",
                                        "value": "us-south"
                                    },
                                    {
                                        "label": "US West",
                                        "value": "us-west"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelBitrateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelBitrateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 ∙ Select Bitrate",
                                "selectOptions": [
                                    {
                                        "label": "Generator default",
                                        "value": "inherit"
                                    },
                                    {
                                        "label": "8 kbps",
                                        "value": "8000"
                                    },
                                    {
                                        "label": "16 kbps",
                                        "value": "16000"
                                    },
                                    {
                                        "label": "32 kbps",
                                        "value": "32000"
                                    },
                                    {
                                        "label": "64 kbps",
                                        "value": "64000"
                                    },
                                    {
                                        "label": "96 kbps",
                                        "value": "96000"
                                    },
                                    {
                                        "label": "128 kbps",
                                        "value": "128000"
                                    },
                                    {
                                        "label": "256 kbps",
                                        "value": "256000"
                                    },
                                    {
                                        "label": "384 kbps",
                                        "value": "384000"
                                    }
                                ]
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelRegionEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelRegionEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🌍  Set voice region and quality for your channel",
                            "description": "-# The region determines the voice server's location.\n-# It should be the closest to all voice channel members.\n-# The recommended is `Automatic`\n-# A higher bitrate sounds better and asks more of everyone's connection.\n\nCurrent voice region: `{region}`\nCurrent bitrate: `{bitrate} kbps`",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 4943761,
                            "options": {
                                "region": {
                                    "{region-auto}": "Automatic",
                                    "{region-brazil}": "Brazil",
                                    "{region-hongkong}": "HongKong",
                                    "{region-india}": "India",
                                    "{region-japan}": "Japan",
                                    "{region-rotterdam}": "Rotterdam",
                                    "{region-russia}": "Russia",
                                    "{region-singapore}": "Singapore",
                                    "{region-southafrica}": "SouthAfrica",
                                    "{region-sydney}": "Sydney",
                                    "{region-us-central}": "US Central",
                                    "{region-us-east}": "US East",
                                    "{region-us-south}": "US South",
                                    "{region-us-west}": "US West"
                                }
                            },
                            "vars": {
                                "region": "{region}",
                                "bitrate": "{bitrate}",
                                "region-auto": "{region-auto}",
                                "region-brazil": "{region-brazil}",
                                "region-hongkong": "{region-hongkong}",
                                "region-india": "{region-india}",
                                "region-japan": "{region-japan}",
                                "region-rotterdam": "{region-rotterdam}",
                                "region-russia": "{region-russia}",
                                "region-singapore": "{region-singapore}",
                                "region-southafrica": "{region-southafrica}",
                                "region-sydney": "{region-sydney}",
                                "region-us-central": "{region-us-central}",
                                "region-us-east": "{region-us-east}",
                                "region-us-south": "{region-us-south}",
                                "region-us-west": "{region-us-west}"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V2/DynamicChannelRegionElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V2/DynamicChannelRegionEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/DynamicChannelTransferOwnerComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelTransferOwnerUserMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/DynamicChannelTransferOwnerUserMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/DynamicChannelTransferOwnerUserMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🔀 Select User"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/YesNoElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/YesButton",
                            "definition": {
                                "name": "VertixBot/UI-General/YesButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "👍 Yes",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/NoButton",
                            "definition": {
                                "name": "VertixBot/UI-General/NoButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "👎 No",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/DynamicChannelTransferOwnerEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelTransferOwnerEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔀  Transfer channel ownership",
                            "description": "Transfer channel ownership to another user.\n\nSelect the user to whom you want to transfer the channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelTransferOwnerUserSelectedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelTransferOwnerUserSelectedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔀  Transfer channel ownership",
                            "description": "Transfer channel ownership to {userDisplayName}.\n\n⚠️ By transferring the channel ownership to another user, you will lose your ownership privileges.\n\nAre you sure you want to transfer the channel ownership to **{userDisplayName}?**",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "vars": {
                                "userDisplayName": "{userDisplayName}"
                            },
                            "defaultVars": {
                                "userDisplayName": "User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  userDisplayName: args.userDisplayName\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/DynamicChannelTransferOwnerTransferredEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/DynamicChannelTransferOwnerTransferredEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔀  Transfer channel ownership succeeded!",
                            "description": "You are no longer the owner of this channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/DisabledWhileClaimEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/DisabledWhileClaimEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "😈 The action is disabled",
                            "description": "The action is disabled while the claim is in progress.\n\nPlease wait until the claim is completed.",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/ChoiceExpiredEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/ChoiceExpiredEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⌛ That choice expired",
                            "description": "Nothing was changed.\n\nStart over to pick again.",
                            "color": 16705372
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 6,
                "withDefinition": 6,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/ConfigComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupEditElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/SetupEditSelectEditOptionMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/SetupEditSelectEditOptionMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "◎ ∙ Select Edit Option",
                                "selectOptions": [
                                    {
                                        "label": "∙ Edit Channel's Name",
                                        "value": "edit-dynamic-channel-name",
                                        "emoji": "#️⃣"
                                    },
                                    {
                                        "label": "∙ Edit Channel's Buttons",
                                        "value": "edit-dynamic-channel-buttons",
                                        "emoji": "🎚"
                                    },
                                    {
                                        "label": "∙ Edit Channel's Verified Roles",
                                        "value": "edit-dynamic-channel-verified-roles",
                                        "emoji": "🛡️"
                                    },
                                    {
                                        "label": "∙ Edit Channel's Staff Roles",
                                        "value": "edit-dynamic-channel-staff-roles",
                                        "emoji": "🔑"
                                    },
                                    {
                                        "label": "∙ Edit Channel's Voice Role",
                                        "value": "edit-dynamic-channel-voice-role",
                                        "emoji": "🎙️"
                                    },
                                    {
                                        "label": "∙ Edit LFM",
                                        "value": "edit-dynamic-channel-lfm-channels",
                                        "emoji": "🔎"
                                    },
                                    {
                                        "label": "∙ Edit Privacy State",
                                        "value": "edit-dynamic-channel-default-privacy",
                                        "emoji": "🛡️"
                                    },
                                    {
                                        "label": "∙ Edit User Limit",
                                        "value": "edit-dynamic-channel-default-user-limit",
                                        "emoji": "✋"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelMentionableLabel": "@ ∙ Mention user in primary message",
                                    "dynamicChannelAutoSaveLabel": "⫸ ∙ Auto save dynamic channel",
                                    "dynamicChannelAutoStatusLabel": "📢 ∙ Automatic channel status",
                                    "dynamicChannelLogsChannelLabel": "❯❯ ∙ Send logs to custom channel"
                                },
                                "placeholder": "⌘ ∙ Configuration",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelMentionableLabel} {state}",
                                        "value": "dynamicChannelMentionable:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoSaveLabel} {state}",
                                        "value": "dynamicChannelAutoSave:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoStatusLabel} {state}",
                                        "value": "dynamicChannelAutoStatus:0"
                                    },
                                    {
                                        "label": "{dynamicChannelLogsChannelLabel} {state}",
                                        "value": "dynamicChannelLogsChannel:0"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/LogChannelSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/LogChannelSelectMenu",
                                "elementType": "channel-select",
                                "instanceType": "Dynamic",
                                "placeholder": "❯❯ ∙ Logs-Channel"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DoneButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DoneButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✓ Done",
                                "style": "success"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/DeleteButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DeleteButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Delete",
                                "style": "danger"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditButtonsElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/SetupEditButtonsScopeSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/SetupEditButtonsScopeSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 Editing",
                                "header": "Editing",
                                "selectOptions": [
                                    {
                                        "label": "Default buttons",
                                        "value": "default",
                                        "emoji": "🌐"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/SetupEditButtonsRoleSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/SetupEditButtonsRoleSelectMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "➕ Give a role its own buttons",
                                "header": "Role Overrides"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/ChannelButtonsTemplateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/ChannelButtonsTemplateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 Select Buttons",
                                "header": "Buttons In This Set",
                                "selectOptions": [
                                    {
                                        "label": "Rename",
                                        "value": "0",
                                        "emoji": "✏️"
                                    },
                                    {
                                        "label": "Limit",
                                        "value": "1",
                                        "emoji": "✋"
                                    },
                                    {
                                        "label": "Clear Chat",
                                        "value": "2",
                                        "emoji": "🧹"
                                    },
                                    {
                                        "label": "Public/Private",
                                        "value": "3",
                                        "emoji": "🚫"
                                    },
                                    {
                                        "label": "Shown/Hidden",
                                        "value": "4",
                                        "emoji": "🐵"
                                    },
                                    {
                                        "label": "Access",
                                        "value": "5",
                                        "emoji": "👥"
                                    },
                                    {
                                        "label": "Reset",
                                        "value": "6",
                                        "emoji": "🔃"
                                    },
                                    {
                                        "label": "Transfer",
                                        "value": "12",
                                        "emoji": "🔀"
                                    },
                                    {
                                        "label": "Region",
                                        "value": "19",
                                        "emoji": "🌍"
                                    },
                                    {
                                        "label": "Status",
                                        "value": "13",
                                        "emoji": "📣"
                                    },
                                    {
                                        "label": "LFM",
                                        "value": "15",
                                        "emoji": "🔎"
                                    },
                                    {
                                        "label": "Claim",
                                        "value": "7",
                                        "emoji": "😈"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/SetupEditButtonsClearRoleOverrideButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/SetupEditButtonsClearRoleOverrideButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Use The Default For This Role",
                                "style": "secondary",
                                "emoji": "↩️"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/SetupEditButtonsUpdateExistingButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/SetupEditButtonsUpdateExistingButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Update Existing Channels",
                                "style": "success",
                                "emoji": "🔄"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditVerifiedRolesElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Verified Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelIncludeEveryoneRoleLabel": "Include everyone role"
                                },
                                "placeholder": "🛡️ ∙ Everyone role",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelIncludeEveryoneRoleLabel} {state}",
                                        "value": "dynamicChannelIncludeEveryoneRole:1",
                                        "emoji": "🛡️"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditStaffRolesElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/StaffRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/StaffRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🔑 ∙ Select Staff Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditVoiceRoleElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VoiceRoleMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VoiceRoleMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🎙️ ∙ Select Voice Role"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditLfmChannelsElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/LfmChannelsSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/LfmChannelsSelectMenu",
                                "elementType": "channel-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🔎 ∙ LFM-Channels"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V2/LfmPingRolesSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/LfmPingRolesSelectMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🔔 ∙ Roles to ping"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V2/SetupEditLfmTimingsButton",
                            "definition": {
                                "name": "VertixBot/UI-V2/SetupEditLfmTimingsButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit Timings",
                                "style": "secondary",
                                "emoji": "⏱️"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditDefaultPrivacyElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/DefaultPrivacyStateMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/DefaultPrivacyStateMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Privacy State",
                                "selectOptions": [
                                    {
                                        "label": "∙ Public",
                                        "value": "public",
                                        "emoji": "🌐",
                                        "description": "Anyone in the audience can see and join"
                                    },
                                    {
                                        "label": "∙ Private",
                                        "value": "private",
                                        "emoji": "🚫",
                                        "description": "Visible, but only the owner lets people in"
                                    },
                                    {
                                        "label": "∙ Hidden",
                                        "value": "hidden",
                                        "emoji": "🙈",
                                        "description": "Not visible at all until the owner shows it"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DefaultPrivacyResetButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DefaultPrivacyResetButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Reset To Default",
                                "style": "secondary",
                                "emoji": "🔃"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditDefaultUserLimitElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/DefaultUserLimitMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/DefaultUserLimitMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "✋ ∙ Select User Limit",
                                "selectOptions": [
                                    {
                                        "label": "∙ No limit",
                                        "value": "0"
                                    },
                                    {
                                        "label": "∙ 2 users",
                                        "value": "2"
                                    },
                                    {
                                        "label": "∙ 3 users",
                                        "value": "3"
                                    },
                                    {
                                        "label": "∙ 4 users",
                                        "value": "4"
                                    },
                                    {
                                        "label": "∙ 5 users",
                                        "value": "5"
                                    },
                                    {
                                        "label": "∙ 6 users",
                                        "value": "6"
                                    },
                                    {
                                        "label": "∙ 8 users",
                                        "value": "8"
                                    },
                                    {
                                        "label": "∙ 10 users",
                                        "value": "10"
                                    },
                                    {
                                        "label": "∙ 15 users",
                                        "value": "15"
                                    },
                                    {
                                        "label": "∙ 20 users",
                                        "value": "20"
                                    },
                                    {
                                        "label": "∙ 25 users",
                                        "value": "25"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DefaultUserLimitInheritButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DefaultUserLimitInheritButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Copy Generator Channel",
                                "style": "secondary",
                                "emoji": "🔃"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupEditEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupEditEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔧  Configure Master Channel #{index}",
                            "description": "Configure master channel according to your preferences.\n\n**_🎛️ General_**\n\n➤ ∙ Name: <#{masterChannelId}>\n➤ ∙ Channel ID: `{masterChannelId}`\n➤ ∙ Dynamic Channels Name: `{dynamicChannelNameTemplate}`\n➤ ∙ New Channel Privacy: {newChannelPrivacy}\n➤ ∙ New Channel Limit: {newChannelLimit}\n➤ ∙ Logs Channel: {dynamicChannelLogsChannelDisplay}\n\n**_🎚 Buttons Interface_**\n\n{dynamicChannelButtonsTemplate}\n\n**_🛡️ Verified Roles_**\n\n▹ {verifiedRolesDisplay}\n\n**_🔑 Staff Roles_**\n\n▹ {staffRolesDisplay}\n\n**_🎙️ Voice Role_**\n\n▹ {voiceRoleDisplay}\n\n**_⚙️ Configuration_**\n\n@ ∙ Mention user in primary message: {configUserMention}\n⫸ ∙ Auto save dynamic channels: {configAutoSave}\n📢 ∙ Automatic channel status: {configAutoStatus}\n❯❯ ∙ Send logs to custom channel: {configLogs}\n▥ ∙ Auto create control panel channel: {configControlChannelAutoCreate}\n\n",
                            "footer": "Note: Changing user mention will not affect already created dynamic channels.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "on": "`🟢∙On`",
                                "off": "`🔴∙Off`",
                                "dynamicChannelLogsChannelDisplay": {
                                    "{dynamicChannelLogsChannelDefault}": "**None**",
                                    "{dynamicChannelLogsChannelSelected}": "<#{dynamicChannelLogsChannelId}>"
                                },
                                "configUserMention": {
                                    "{configUserMentionEnabled}": "{on}",
                                    "{configUserMentionDisabled}": "{off}"
                                },
                                "configAutoSave": {
                                    "{configAutoSaveEnabled}": "{on}",
                                    "{configAutoSaveDisabled}": "{off}"
                                },
                                "configAutoStatus": {
                                    "{configAutoStatusEnabled}": "{on}",
                                    "{configAutoStatusDisabled}": "{off}"
                                },
                                "configLogs": {
                                    "{configLogsEnabled}": "{on}",
                                    "{configLogsDisabled}": "{off}"
                                },
                                "configControlChannelAutoCreate": {
                                    "{configControlChannelAutoCreateEnabled}": "{on}",
                                    "{configControlChannelAutoCreateDisabled}": "{off}"
                                },
                                "verifiedRolesDisplay": {
                                    "{verifiedRoles}": "{verifiedRoles}",
                                    "{verifiedRolesGuild}": "{verifiedRoles} *(from the server options)*"
                                },
                                "staffRolesDisplay": {
                                    "{staffRoles}": "{staffRoles}",
                                    "{staffRolesGuild}": "{staffRoles} *(from the server options)*",
                                    "{staffRolesNone}": "**None** *(from the server options)*"
                                },
                                "newChannelLimit": {
                                    "{newChannelLimitUnlimited}": "No limit",
                                    "{newChannelLimitValue}": "{newChannelLimitCount} users"
                                },
                                "newChannelPrivacy": {
                                    "{privacyPublic}": "🌐 Public",
                                    "{privacyPrivate}": "🚫 Private",
                                    "{privacyHidden}": "🙈 Hidden"
                                },
                                "voiceRoleDisplay": {
                                    "{voiceRoleId}": "<@&{voiceRoleId}>",
                                    "{voiceRoleGuild}": "<@&{voiceRoleId}> *(from the server options)*",
                                    "{voiceRoleNone}": "**None** *(from the server options)*"
                                }
                            },
                            "arrayOptions": {
                                "dynamicChannelButtonsTemplate": {
                                    "format": "- ( {value} ){separator}",
                                    "separator": "\n",
                                    "options": {
                                        "0": "✏️ ∙ **Rename**",
                                        "1": "✋ ∙ **User Limit**",
                                        "2": "🧹 ∙ **Clear Chat**",
                                        "3": "🚫 ∙ **Private** / 🌐 ∙ **Public**",
                                        "4": "🙈 ∙ **Hidden** / 🐵 ∙ **Shown**",
                                        "5": "👥 ∙ **Access**",
                                        "6": "🔃 ∙ **Reset**",
                                        "7": "😈 ∙ **Claim**",
                                        "12": "🔀 ∙ **Transfer**",
                                        "13": "📣 ∙ **Status**",
                                        "15": "🔎 ∙ **LFM**",
                                        "19": "🌍 ∙ **Region**"
                                    }
                                },
                                "verifiedRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                },
                                "staffRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "on": "{on}",
                                "off": "{off}",
                                "index": "{index}",
                                "masterChannelId": "{masterChannelId}",
                                "configUserMention": "{configUserMention}",
                                "configUserMentionEnabled": "{configUserMentionEnabled}",
                                "configUserMentionDisabled": "{configUserMentionDisabled}",
                                "configAutoSave": "{configAutoSave}",
                                "configAutoSaveEnabled": "{configAutoSaveEnabled}",
                                "configAutoSaveDisabled": "{configAutoSaveDisabled}",
                                "configAutoStatus": "{configAutoStatus}",
                                "configAutoStatusEnabled": "{configAutoStatusEnabled}",
                                "configAutoStatusDisabled": "{configAutoStatusDisabled}",
                                "configLogs": "{configLogs}",
                                "configLogsEnabled": "{configLogsEnabled}",
                                "configLogsDisabled": "{configLogsDisabled}",
                                "configControlChannelAutoCreate": "{configControlChannelAutoCreate}",
                                "configControlChannelAutoCreateEnabled": "{configControlChannelAutoCreateEnabled}",
                                "configControlChannelAutoCreateDisabled": "{configControlChannelAutoCreateDisabled}",
                                "dynamicChannelNameTemplate": "{dynamicChannelNameTemplate}",
                                "dynamicChannelLogsChannelId": "{dynamicChannelLogsChannelId}",
                                "dynamicChannelLogsChannelDefault": "{dynamicChannelLogsChannelDefault}",
                                "dynamicChannelLogsChannelSelected": "{dynamicChannelLogsChannelSelected}",
                                "dynamicChannelLogsChannelDisplay": "{dynamicChannelLogsChannelDisplay}",
                                "verifiedRoles": "{verifiedRoles}",
                                "verifiedRolesDisplay": "{verifiedRolesDisplay}",
                                "verifiedRolesGuild": "{verifiedRolesGuild}",
                                "staffRoles": "{staffRoles}",
                                "staffRolesDisplay": "{staffRolesDisplay}",
                                "staffRolesGuild": "{staffRolesGuild}",
                                "staffRolesNone": "{staffRolesNone}",
                                "voiceRoleId": "{voiceRoleId}",
                                "voiceRoleDisplay": "{voiceRoleDisplay}",
                                "voiceRoleGuild": "{voiceRoleGuild}",
                                "voiceRoleNone": "{voiceRoleNone}",
                                "newChannelPrivacy": "{newChannelPrivacy}",
                                "newChannelLimit": "{newChannelLimit}",
                                "privacyPublic": "{privacyPublic}",
                                "privacyPrivate": "{privacyPrivate}",
                                "privacyHidden": "{privacyHidden}",
                                "newChannelLimitCount": "{newChannelLimitCount}",
                                "newChannelLimitUnlimited": "{newChannelLimitUnlimited}",
                                "newChannelLimitValue": "{newChannelLimitValue}",
                                "dynamicChannelButtonsTemplate": "{dynamicChannelButtonsTemplate}"
                            },
                            "defaultVars": {
                                "dynamicChannelButtonsTemplate": "Button list"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditButtonsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupEditButtonsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎚  Buttons Of Master Channel #{index}",
                            "description": "{scopeDisplay}\n\n{listHeadingDisplay}\n{buttonsList}\n\n{rosterHeading}\n{rosterDisplay}\n\n{hintDisplay}",
                            "footer": "Every pick is saved straight away. Channels that are already open keep their buttons until you press Update Existing Channels.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "buttonsNone": "> - *None. Owners would see a panel with no buttons on it.*",
                                "rosterHeading": "**Roles with buttons of their own**",
                                "rosterButtonsWord": "Buttons",
                                "panelNote": "Role sets reach only the panel inside the voice channel. A **control-panel** channel always shows the default set.",
                                "rosterMore": "> - *… and {rosterMoreCount} more. Every one of them is in the top menu.*",
                                "scopeDisplay": {
                                    "{scopeDefault}": "**You are editing the default buttons of <#{masterChannelId}>.**\nWhoever owns a channel created here sees these buttons — unless they have one of the roles listed further down, which replaces this set for them.",
                                    "{scopeDefaultVerified}": "**You are editing the default buttons of <#{masterChannelId}>.**\nOnly {verifiedRolesList} can open a channel here, so these are the buttons their owners see — unless they also have one of the roles listed further down, which replaces this set for them.",
                                    "{scopeRoleOwn}": "**You are editing the buttons for <@&{roleId}>.**\nAn owner who has this role sees these buttons **instead of** the default set. Every other owner keeps the default set, and it is not changed.\n{panelNote}",
                                    "{scopeRoleNew}": "**<@&{roleId}> has no buttons of its own yet.**\nIts owners follow the default set, which is what is ticked in the button menu right now. Tick or untick anything and this role gets a set of its own from that moment on — the default set stays exactly as it is.\n{panelNote}",
                                    "{scopeRoleMissing}": "**This role no longer exists on this server.**\nNobody can have it, so its saved buttons never reach anyone. Press **Use The Default For This Role** to clear it away."
                                },
                                "listHeadingDisplay": {
                                    "{listDefault}": "**On every panel**",
                                    "{listRoleOwn}": "**On the panel of an owner who has this role**",
                                    "{listRoleNew}": "**The default set — change it here to turn it into this role's own set**"
                                },
                                "rosterDisplay": {
                                    "{rosterNone}": "> - *None yet. Every owner gets the default set.*\n> - *For example: let one role claim and reset channels while everyone else can only rename.*",
                                    "{rosterOne}": "{rosterList}",
                                    "{rosterMany}": "{rosterList}\nAn owner who has two of these roles gets the set of whichever role sits higher in **Server Settings → Roles**."
                                },
                                "hintDisplay": {
                                    "{hintDefault}": "To give one role a different set, pick it in **➕ Give a role its own buttons**.",
                                    "{hintRoleOwn}": "**Use The Default For This Role** deletes this set and puts its owners back on the default one.",
                                    "{hintRoleNew}": "Nothing is saved for this role until you change a button.",
                                    "{hintEveryone}": "⚠️ **@everyone** cannot have a set of its own — every member has that role, so its set would replace the default one for every single owner. Edit the default set instead, or pick a narrower role.",
                                    "{hintPushed}": "✅ Sent to every channel this master channel has open. Each one now shows the set its own owner should get."
                                }
                            },
                            "arrayOptions": {
                                "buttonsList": {
                                    "format": "> - {value}{separator}",
                                    "separator": "\n",
                                    "options": {
                                        "0": "✏️ ∙ **Rename**",
                                        "1": "✋ ∙ **User Limit**",
                                        "2": "🧹 ∙ **Clear Chat**",
                                        "3": "🚫 ∙ **Private** / 🌐 ∙ **Public**",
                                        "4": "🙈 ∙ **Hidden** / 🐵 ∙ **Shown**",
                                        "5": "👥 ∙ **Access**",
                                        "6": "🔃 ∙ **Reset**",
                                        "7": "😈 ∙ **Claim**",
                                        "12": "🔀 ∙ **Transfer**",
                                        "13": "📣 ∙ **Status**",
                                        "15": "🔎 ∙ **LFM**",
                                        "19": "🌍 ∙ **Region**"
                                    }
                                }
                            },
                            "vars": {
                                "index": "{index}",
                                "masterChannelId": "{masterChannelId}",
                                "roleId": "{roleId}",
                                "scopeDisplay": "{scopeDisplay}",
                                "scopeDefault": "{scopeDefault}",
                                "scopeDefaultVerified": "{scopeDefaultVerified}",
                                "verifiedRolesList": "{verifiedRolesList}",
                                "scopeRoleOwn": "{scopeRoleOwn}",
                                "scopeRoleNew": "{scopeRoleNew}",
                                "scopeRoleMissing": "{scopeRoleMissing}",
                                "panelNote": "{panelNote}",
                                "listHeadingDisplay": "{listHeadingDisplay}",
                                "listDefault": "{listDefault}",
                                "listRoleOwn": "{listRoleOwn}",
                                "listRoleNew": "{listRoleNew}",
                                "buttonsList": "{buttonsList}",
                                "buttonsNone": "{buttonsNone}",
                                "rosterHeading": "{rosterHeading}",
                                "rosterButtonsWord": "{rosterButtonsWord}",
                                "rosterDisplay": "{rosterDisplay}",
                                "rosterNone": "{rosterNone}",
                                "rosterOne": "{rosterOne}",
                                "rosterMany": "{rosterMany}",
                                "rosterList": "{rosterList}",
                                "rosterMore": "{rosterMore}",
                                "rosterMoreCount": "{rosterMoreCount}",
                                "hintDisplay": "{hintDisplay}",
                                "hintDefault": "{hintDefault}",
                                "hintRoleOwn": "{hintRoleOwn}",
                                "hintRoleNew": "{hintRoleNew}",
                                "hintEveryone": "{hintEveryone}",
                                "hintPushed": "{hintPushed}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditVerifiedRolesEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupEditVerifiedRolesEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🛡️  Edit Verified Roles Of Master Channel #{index}",
                            "description": "Editing verified roles will impact the dynamic channels created by Master Channel #{index}.\n\nLeaving it empty falls back to the server wide verified roles.\n\n**_Current Verified Roles_**\n\n> {verifiedRolesDisplay}",
                            "footer": "Note: The changes are applied immediately to the existing dynamic channels.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "verifiedRolesDisplay": {
                                    "{verifiedRoles}": "{verifiedRoles}",
                                    "{verifiedRolesGuild}": "{verifiedRoles} *(from the server options)*",
                                    "{verifiedRolesDefault}": "**None** *(from the server options)*"
                                }
                            },
                            "arrayOptions": {
                                "verifiedRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "verifiedRoles": "{verifiedRoles}",
                                "verifiedRolesDisplay": "{verifiedRolesDisplay}",
                                "verifiedRolesDefault": "{verifiedRolesDefault}",
                                "verifiedRolesGuild": "{verifiedRolesGuild}",
                                "index": "{index}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {\n    index: args.index + 1\n  }, ownRoles = Array.isArray(args.dynamicChannelVerifiedRoles) ? args.dynamicChannelVerifiedRoles : [], guildRoles = Array.isArray(args.guildVerifiedRoleIds) ? args.guildVerifiedRoleIds : [];\n  if (ownRoles.length) {\n    result.verifiedRoles = ownRoles;\n    result.verifiedRolesDisplay = vars.verifiedRoles;\n  } else if (guildRoles.length) {\n    result.verifiedRoles = guildRoles;\n    result.verifiedRolesDisplay = vars.verifiedRolesGuild;\n  } else\n    result.verifiedRolesDisplay = vars.verifiedRolesDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditStaffRolesEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupEditStaffRolesEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔑  Edit Staff Roles Of Master Channel #{index}",
                            "description": "Staff roles are the mirror of the verified roles: the verified roles are the audience a channel can shut out, the staff roles are the ones it never can.\n\nA role selected here keeps access to every dynamic channel of Master Channel #{index}, whatever privacy state its owner picks - so a moderator can reach a private or hidden channel without being let in one at a time.\n\nLeaving it empty falls back to the server wide staff roles.\n\n**_Current Staff Roles_**\n\n> {staffRolesDisplay}",
                            "footer": "Note: The changes are applied immediately to the existing dynamic channels.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "staffRolesDisplay": {
                                    "{staffRoles}": "{staffRoles}",
                                    "{staffRolesGuild}": "{staffRoles} *(from the server options)*",
                                    "{staffRolesNone}": "**None** *(from the server options)*"
                                }
                            },
                            "arrayOptions": {
                                "staffRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "staffRoles": "{staffRoles}",
                                "staffRolesDisplay": "{staffRolesDisplay}",
                                "staffRolesNone": "{staffRolesNone}",
                                "staffRolesGuild": "{staffRolesGuild}",
                                "index": "{index}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {\n    index: args.index + 1\n  }, ownRoles = Array.isArray(args.dynamicChannelStaffRoles) ? args.dynamicChannelStaffRoles : [], guildRoles = Array.isArray(args.guildStaffRoleIds) ? args.guildStaffRoleIds : [];\n  if (ownRoles.length) {\n    result.staffRoles = ownRoles;\n    result.staffRolesDisplay = vars.staffRoles;\n  } else if (guildRoles.length) {\n    result.staffRoles = guildRoles;\n    result.staffRolesDisplay = vars.staffRolesGuild;\n  } else\n    result.staffRolesDisplay = vars.staffRolesNone;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditVoiceRoleEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupEditVoiceRoleEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎙️  Edit Voice Role Of Master Channel #{index}",
                            "description": "A member holds this role only while they sit in a dynamic channel of this master channel, and loses it the moment they leave.\n\nUse it to show a text channel to whoever is in voice right now, or to group them in the member list.\n\nLeaving it empty falls back to the server wide voice role.\n\n**_Current Voice Role_**\n\n> {voiceRoleDisplay}",
                            "footer": "Note: The bot's own role has to sit above the role it hands out, or discord refuses it.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "voiceRoleDisplay": {
                                    "{voiceRoleId}": "<@&{voiceRoleId}>",
                                    "{voiceRoleGuild}": "<@&{voiceRoleId}> *(from the server options)*",
                                    "{voiceRoleNone}": "**None** *(from the server options)*"
                                }
                            },
                            "vars": {
                                "index": "{index}",
                                "voiceRoleId": "{voiceRoleId}",
                                "voiceRoleDisplay": "{voiceRoleDisplay}",
                                "voiceRoleGuild": "{voiceRoleGuild}",
                                "voiceRoleNone": "{voiceRoleNone}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const { dynamicChannelVoiceRoleId: roleId, guildVoiceRoleId: guildRoleId } = args, result = {\n    index: args.index + 1\n  };\n  if (roleId) {\n    result.voiceRoleId = roleId;\n    result.voiceRoleDisplay = vars.voiceRoleId;\n  } else if (guildRoleId) {\n    result.voiceRoleId = guildRoleId;\n    result.voiceRoleDisplay = vars.voiceRoleGuild;\n  } else\n    result.voiceRoleDisplay = vars.voiceRoleNone;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditLfmChannelsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupEditLfmChannelsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔎  Edit LFM Of Master Channel #{index}",
                            "description": "A channel owner can advertise their channel to the text channels picked here, so members who are reading chat can see a room that is looking for people and join it.\n\nMembers choose between these when they post, and can reach no other channel.\n\nLeaving it empty turns the feature off for this master channel.\n\n**_Current LFM Channels_**\n\n> {lfmChannelsDisplay}\n\n**_Roles Pinged_**\n\n> {pingRolesDisplay}\n\n**_Timings_**\n\n> Post cooldown: {postCooldown}\n> Ping cooldown: {pingCooldown}\n> Post expiry: {postExpiry}\n> Member count refresh: {occupancyDebounce}",
                            "footer": "Note: The bot needs to view, send messages and embed links in every channel picked here.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "lfmChannelsDisplay": {
                                    "{lfmChannels}": "{lfmChannels}",
                                    "{lfmChannelsNone}": "**None** *(the feature is off)*"
                                },
                                "pingRolesDisplay": {
                                    "{pingRoles}": "{pingRoles}",
                                    "{pingRolesNone}": "**None** *(posts go up quietly)*"
                                }
                            },
                            "arrayOptions": {
                                "lfmChannels": {
                                    "format": "<#{value}>{separator}",
                                    "separator": ", "
                                },
                                "pingRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "index": "{index}",
                                "lfmChannels": "{lfmChannels}",
                                "lfmChannelsDisplay": "{lfmChannelsDisplay}",
                                "lfmChannelsNone": "{lfmChannelsNone}",
                                "pingRoles": "{pingRoles}",
                                "pingRolesDisplay": "{pingRolesDisplay}",
                                "pingRolesNone": "{pingRolesNone}",
                                "postCooldown": "{postCooldown}",
                                "pingCooldown": "{pingCooldown}",
                                "postExpiry": "{postExpiry}",
                                "occupancyDebounce": "{occupancyDebounce}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditDefaultPrivacyEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupEditDefaultPrivacyEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🛡️  Edit Default Privacy Of Master Channel #{index}",
                            "description": "This is the state a **newly created** dynamic channel starts in. It does not touch channels that already exist, and the owner can still change their own channel afterwards.\n\n**Public** - anyone in the audience can see and join.\n**Private** - visible, but only the owner lets people in.\n**Hidden** - not visible at all until the owner shows it.\n\nWith auto save on, a returning owner gets their own last state instead of this.\n\n**_Current Default_**\n\n> {privacyState}",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "privacyState": {
                                    "{privacyPublic}": "🌐 **Public**",
                                    "{privacyPrivate}": "🚫 **Private**",
                                    "{privacyHidden}": "🙈 **Hidden**"
                                }
                            },
                            "vars": {
                                "index": "{index}",
                                "privacyState": "{privacyState}",
                                "privacyPublic": "{privacyPublic}",
                                "privacyPrivate": "{privacyPrivate}",
                                "privacyHidden": "{privacyHidden}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const state = args.dynamicChannelDefaultPrivacyState;\n  return {\n    index: args.index + 1,\n    privacyState: state === \"private\" ? vars.privacyPrivate : state === \"hidden\" ? vars.privacyHidden : vars.privacyPublic\n  };\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditDefaultUserLimitEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupEditDefaultUserLimitEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "✋  Edit Default User Limit Of Master Channel #{index}",
                            "description": "This is the user limit a **newly created** dynamic channel starts with. It does not touch channels that already exist, and the owner can still change their own channel afterwards.\n\nCopying the generator channel is the old behaviour. Setting a number here is usually better, because the generator's own limit also caps how many people can wait in it at once.\n\nWith auto save on, a returning owner gets their own last limit instead of this.\n\n**_Current Default_**\n\n> {userLimitDisplay}",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "userLimitDisplay": {
                                    "{userLimitUnlimited}": "**No limit**",
                                    "{userLimitValue}": "**{userLimit} users**"
                                }
                            },
                            "vars": {
                                "index": "{index}",
                                "userLimit": "{userLimit}",
                                "userLimitDisplay": "{userLimitDisplay}",
                                "userLimitInherit": "{userLimitInherit}",
                                "userLimitUnlimited": "{userLimitUnlimited}",
                                "userLimitValue": "{userLimitValue}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const own = args.dynamicChannelDefaultUserLimit, limit = (own === null || own === void 0 ? Number(args.masterChannelUserLimit) : own) || 0, result = {\n    index: args.index + 1,\n    userLimitDisplay: limit ? vars.userLimitValue : vars.userLimitUnlimited\n  };\n  if (limit)\n    result.userLimit = String(limit);\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/ChannelNameTemplateModal",
            "VertixBot/UI-General/DeleteConfirmModal",
            "VertixBot/UI-V2/SetupEditLfmTimingsModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/ChannelNameTemplateModal",
                "title": "Set dynamic channels name",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/ChannelNameTemplateInput",
                        "label": "SET DEFAULT DYNAMIC CHANNELS NAME",
                        "placeholder": "{user}'s Channel",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 50
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/DeleteConfirmModal",
                "title": "Confirm deletion",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/DeleteConfirmInput",
                        "label": "TYPE DELETE TO CONFIRM",
                        "placeholder": "DELETE",
                        "style": "short",
                        "minLength": 6,
                        "maxLength": 6
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupEditLfmTimingsModal",
                "title": "⏱️ LFM Timings",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V2/SetupEditLfmPostCooldownInput",
                        "label": "Post cooldown (minutes, 0 for none)",
                        "placeholder": "10",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 6
                    },
                    {
                        "name": "VertixBot/UI-V2/SetupEditLfmPingCooldownInput",
                        "label": "Ping cooldown (minutes, 0 for none)",
                        "placeholder": "60",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 6
                    },
                    {
                        "name": "VertixBot/UI-V2/SetupEditLfmPostExpiryInput",
                        "label": "Post expiry (minutes)",
                        "placeholder": "30",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 6
                    },
                    {
                        "name": "VertixBot/UI-V2/SetupEditLfmOccupancyDebounceInput",
                        "label": "Member count refresh delay (seconds)",
                        "placeholder": "1.5",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 6
                    }
                ]
            }
        ],
        "defaultElementsGroup": "VertixBot/UI-V2/SetupEditElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V2/SetupEditEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 8,
                "withDefinition": 8,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/SetupNewWizardComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupStep1Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/ChannelNameTemplateEditButton",
                            "definition": {
                                "name": "VertixBot/UI-General/ChannelNameTemplateEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit Channel Name",
                                "style": "secondary",
                                "emoji": "#️⃣"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardNextButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardNextButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Next ▶",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupStep2Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/ChannelButtonsTemplateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/ChannelButtonsTemplateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 Select Buttons",
                                "header": "Buttons In This Set",
                                "selectOptions": [
                                    {
                                        "label": "Rename",
                                        "value": "0",
                                        "emoji": "✏️"
                                    },
                                    {
                                        "label": "Limit",
                                        "value": "1",
                                        "emoji": "✋"
                                    },
                                    {
                                        "label": "Clear Chat",
                                        "value": "2",
                                        "emoji": "🧹"
                                    },
                                    {
                                        "label": "Public/Private",
                                        "value": "3",
                                        "emoji": "🚫"
                                    },
                                    {
                                        "label": "Shown/Hidden",
                                        "value": "4",
                                        "emoji": "🐵"
                                    },
                                    {
                                        "label": "Access",
                                        "value": "5",
                                        "emoji": "👥"
                                    },
                                    {
                                        "label": "Reset",
                                        "value": "6",
                                        "emoji": "🔃"
                                    },
                                    {
                                        "label": "Transfer",
                                        "value": "12",
                                        "emoji": "🔀"
                                    },
                                    {
                                        "label": "Region",
                                        "value": "19",
                                        "emoji": "🌍"
                                    },
                                    {
                                        "label": "Status",
                                        "value": "13",
                                        "emoji": "📣"
                                    },
                                    {
                                        "label": "LFM",
                                        "value": "15",
                                        "emoji": "🔎"
                                    },
                                    {
                                        "label": "Claim",
                                        "value": "7",
                                        "emoji": "😈"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelMentionableLabel": "@ ∙ Mention user in primary message",
                                    "dynamicChannelAutoSaveLabel": "⫸ ∙ Auto save dynamic channel",
                                    "dynamicChannelAutoStatusLabel": "📢 ∙ Automatic channel status",
                                    "dynamicChannelLogsChannelLabel": "❯❯ ∙ Send logs to custom channel"
                                },
                                "placeholder": "⌘ ∙ Configuration",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelMentionableLabel} {state}",
                                        "value": "dynamicChannelMentionable:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoSaveLabel} {state}",
                                        "value": "dynamicChannelAutoSave:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoStatusLabel} {state}",
                                        "value": "dynamicChannelAutoStatus:0"
                                    },
                                    {
                                        "label": "{dynamicChannelLogsChannelLabel} {state}",
                                        "value": "dynamicChannelLogsChannel:0"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardNextButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardNextButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Next ▶",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupStep3Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Verified Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelIncludeEveryoneRoleLabel": "Include everyone role"
                                },
                                "placeholder": "🛡️ ∙ Everyone role",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelIncludeEveryoneRoleLabel} {state}",
                                        "value": "dynamicChannelIncludeEveryoneRole:1",
                                        "emoji": "🛡️"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardNextButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardNextButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Next ▶",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupStep1Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupStep1Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 1 - Set Dynamic Channels Template Name",
                            "description": "You can specify a default name for dynamic channels that will be used when they are opened.\n\n_Current template name_:\n`{dynamicChannelNameTemplate}`\n\nYou can keep the default settings by pressing **( `Next ▶` )** button.\n\nNot sure how it works? Check out the [explanation](https://voicechannels.online/setup/1).",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "vars": {
                                "dynamicChannelNameTemplate": "{dynamicChannelNameTemplate}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupStep2Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupStep2Embed",
                        "definition": {
                            "description": "Setup dynamic channel management interface.\n\n**_🎚 Buttons Interface_**\n\n{message}\n**_⚙️ Configuration_**\n\n> @ ∙ Mention user in primary message: {configUserMention}\n> ⫸ ∙ Auto save dynamic channels: {configAutoSave}\n> 📢 ∙ Automatic channel status: {configAutoStatus}\n> ▥ ∙ Auto create panel channel: {configControlChannelAutoCreate}\n\nYou can keep the default settings by pressing **( `Next ▶` )** button.\n\nNot sure what buttons do? check out the [explanation](https://voicechannels.online/features/dynamic-channel-v2).",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "arrayOptions": {
                                "dynamicChannelButtonsTemplate": {
                                    "format": "- ( {value} ){separator}",
                                    "separator": "\n",
                                    "options": {
                                        "0": "✏️ ∙ **Rename**",
                                        "1": "✋ ∙ **User Limit**",
                                        "2": "🧹 ∙ **Clear Chat**",
                                        "3": "🚫 ∙ **Private** / 🌐 ∙ **Public**",
                                        "4": "🙈 ∙ **Hidden** / 🐵 ∙ **Shown**",
                                        "5": "👥 ∙ **Access**",
                                        "6": "🔃 ∙ **Reset**",
                                        "7": "😈 ∙ **Claim**",
                                        "12": "🔀 ∙ **Transfer**",
                                        "13": "📣 ∙ **Status**",
                                        "15": "🔎 ∙ **LFM**",
                                        "19": "🌍 ∙ **Region**"
                                    }
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "dynamicChannelButtonsTemplate": "{dynamicChannelButtonsTemplate}"
                            },
                            "defaultVars": {
                                "dynamicChannelButtonsTemplate": "Button list"
                            },
                            "title": "Step 2 - Dynamic Channels Setup",
                            "footer": "{footer}"
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V2/SetupStep3Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupStep3Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 3 - Select Verified Roles",
                            "description": "Verified roles are the roles that the privacy buttons work on.\n\nWhen a channel owner presses **Private** or **Hidden**, the bot changes the permissions of these roles. They decide who can see the channel and who can join it.\n\n⚠️ **Not sure what to pick? Keep `@everyone`.** It is the right choice for almost every server.\n\n**_When you need a different role_**\n\nOnly if new members cannot see your channels until somebody gives them a role.\n\n_Example_: a new member joins your server and sees nothing until they get the `Member` role. If verified roles stay `@everyone`, a public dynamic channel shows up for that new member too. Pick `Member` instead, and only members who passed your gate can see and join.\n\n**_🛡️ Verified Roles_**\n\n> {verifiedRolesDisplay}\n\nStill not sure? check out the [explanation](https://voicechannels.online/setup/3).\n\nYou can keep the default settings by pressing **( `✓ Finish` )** button.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "verifiedRolesDisplay": {
                                    "{verifiedRoles}": "{verifiedRoles}",
                                    "{verifiedRolesDefault}": "**None**"
                                }
                            },
                            "arrayOptions": {
                                "verifiedRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "verifiedRoles": "{verifiedRoles}",
                                "verifiedRolesDisplay": "{verifiedRolesDisplay}",
                                "verifiedRolesEmpty": "{verifiedRolesDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {}, verifiedRoles = Array.isArray(args.dynamicChannelVerifiedRoles) ? args.dynamicChannelVerifiedRoles : [];\n  if (verifiedRoles.length) {\n    result.verifiedRoles = verifiedRoles;\n    result.verifiedRolesDisplay = SETUP_STEP_3_VARS.verifiedRoles;\n  } else\n    result.verifiedRolesDisplay = SETUP_STEP_3_VARS.verifiedRolesEmpty;\n  return result;\n}",
                                        "binds": [
                                            "SETUP_STEP_3_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupMaxMasterChannelsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupMaxMasterChannelsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  You have reached your master channels limit",
                            "description": "You can create up to **{maxMasterChannels}** Master Channels in total.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "vars": {
                                "maxMasterChannels": "{maxMasterChannels}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  maxMasterChannels: args.maxMasterChannels\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/ChannelNameTemplateModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/ChannelNameTemplateModal",
                "title": "Set dynamic channels name",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/ChannelNameTemplateInput",
                        "label": "SET DEFAULT DYNAMIC CHANNELS NAME",
                        "placeholder": "{user}'s Channel",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 50
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 5,
                "withDefinition": 5,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/SetupStep1Component",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupStep1Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/ChannelNameTemplateEditButton",
                            "definition": {
                                "name": "VertixBot/UI-General/ChannelNameTemplateEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit Channel Name",
                                "style": "secondary",
                                "emoji": "#️⃣"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupStep1Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupStep1Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 1 - Set Dynamic Channels Template Name",
                            "description": "You can specify a default name for dynamic channels that will be used when they are opened.\n\n_Current template name_:\n`{dynamicChannelNameTemplate}`\n\nYou can keep the default settings by pressing **( `Next ▶` )** button.\n\nNot sure how it works? Check out the [explanation](https://voicechannels.online/setup/1).",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "vars": {
                                "dynamicChannelNameTemplate": "{dynamicChannelNameTemplate}"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/ChannelNameTemplateModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/ChannelNameTemplateModal",
                "title": "Set dynamic channels name",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/ChannelNameTemplateInput",
                        "label": "SET DEFAULT DYNAMIC CHANNELS NAME",
                        "placeholder": "{user}'s Channel",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 50
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/SetupStep2Component",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupStep2Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V2/ChannelButtonsTemplateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V2/ChannelButtonsTemplateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 Select Buttons",
                                "header": "Buttons In This Set",
                                "selectOptions": [
                                    {
                                        "label": "Rename",
                                        "value": "0",
                                        "emoji": "✏️"
                                    },
                                    {
                                        "label": "Limit",
                                        "value": "1",
                                        "emoji": "✋"
                                    },
                                    {
                                        "label": "Clear Chat",
                                        "value": "2",
                                        "emoji": "🧹"
                                    },
                                    {
                                        "label": "Public/Private",
                                        "value": "3",
                                        "emoji": "🚫"
                                    },
                                    {
                                        "label": "Shown/Hidden",
                                        "value": "4",
                                        "emoji": "🐵"
                                    },
                                    {
                                        "label": "Access",
                                        "value": "5",
                                        "emoji": "👥"
                                    },
                                    {
                                        "label": "Reset",
                                        "value": "6",
                                        "emoji": "🔃"
                                    },
                                    {
                                        "label": "Transfer",
                                        "value": "12",
                                        "emoji": "🔀"
                                    },
                                    {
                                        "label": "Region",
                                        "value": "19",
                                        "emoji": "🌍"
                                    },
                                    {
                                        "label": "Status",
                                        "value": "13",
                                        "emoji": "📣"
                                    },
                                    {
                                        "label": "LFM",
                                        "value": "15",
                                        "emoji": "🔎"
                                    },
                                    {
                                        "label": "Claim",
                                        "value": "7",
                                        "emoji": "😈"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelMentionableLabel": "@ ∙ Mention user in primary message",
                                    "dynamicChannelAutoSaveLabel": "⫸ ∙ Auto save dynamic channel",
                                    "dynamicChannelAutoStatusLabel": "📢 ∙ Automatic channel status",
                                    "dynamicChannelLogsChannelLabel": "❯❯ ∙ Send logs to custom channel"
                                },
                                "placeholder": "⌘ ∙ Configuration",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelMentionableLabel} {state}",
                                        "value": "dynamicChannelMentionable:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoSaveLabel} {state}",
                                        "value": "dynamicChannelAutoSave:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoStatusLabel} {state}",
                                        "value": "dynamicChannelAutoStatus:0"
                                    },
                                    {
                                        "label": "{dynamicChannelLogsChannelLabel} {state}",
                                        "value": "dynamicChannelLogsChannel:0"
                                    }
                                ]
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupStep2Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupStep2Embed",
                        "definition": {
                            "description": "Setup dynamic channel management interface.\n\n**_🎚 Buttons Interface_**\n\n{message}\n**_⚙️ Configuration_**\n\n> @ ∙ Mention user in primary message: {configUserMention}\n> ⫸ ∙ Auto save dynamic channels: {configAutoSave}\n> 📢 ∙ Automatic channel status: {configAutoStatus}\n> ▥ ∙ Auto create panel channel: {configControlChannelAutoCreate}\n\nYou can keep the default settings by pressing **( `Next ▶` )** button.\n\nNot sure what buttons do? check out the [explanation](https://voicechannels.online/features/dynamic-channel-v2).",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "arrayOptions": {
                                "dynamicChannelButtonsTemplate": {
                                    "format": "- ( {value} ){separator}",
                                    "separator": "\n",
                                    "options": {
                                        "0": "✏️ ∙ **Rename**",
                                        "1": "✋ ∙ **User Limit**",
                                        "2": "🧹 ∙ **Clear Chat**",
                                        "3": "🚫 ∙ **Private** / 🌐 ∙ **Public**",
                                        "4": "🙈 ∙ **Hidden** / 🐵 ∙ **Shown**",
                                        "5": "👥 ∙ **Access**",
                                        "6": "🔃 ∙ **Reset**",
                                        "7": "😈 ∙ **Claim**",
                                        "12": "🔀 ∙ **Transfer**",
                                        "13": "📣 ∙ **Status**",
                                        "15": "🔎 ∙ **LFM**",
                                        "19": "🌍 ∙ **Region**"
                                    }
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "dynamicChannelButtonsTemplate": "{dynamicChannelButtonsTemplate}"
                            },
                            "defaultVars": {
                                "dynamicChannelButtonsTemplate": "Button list"
                            },
                            "title": "Step 2 - Dynamic Channels Setup",
                            "footer": "{footer}"
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V2/SetupStep3Component",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V2/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupStep3Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Verified Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelIncludeEveryoneRoleLabel": "Include everyone role"
                                },
                                "placeholder": "🛡️ ∙ Everyone role",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelIncludeEveryoneRoleLabel} {state}",
                                        "value": "dynamicChannelIncludeEveryoneRole:1",
                                        "emoji": "🛡️"
                                    }
                                ]
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V2/SetupStep3Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V2/SetupStep3Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 3 - Select Verified Roles",
                            "description": "Verified roles are the roles that the privacy buttons work on.\n\nWhen a channel owner presses **Private** or **Hidden**, the bot changes the permissions of these roles. They decide who can see the channel and who can join it.\n\n⚠️ **Not sure what to pick? Keep `@everyone`.** It is the right choice for almost every server.\n\n**_When you need a different role_**\n\nOnly if new members cannot see your channels until somebody gives them a role.\n\n_Example_: a new member joins your server and sees nothing until they get the `Member` role. If verified roles stay `@everyone`, a public dynamic channel shows up for that new member too. Pick `Member` instead, and only members who passed your gate can see and join.\n\n**_🛡️ Verified Roles_**\n\n> {verifiedRolesDisplay}\n\nStill not sure? check out the [explanation](https://voicechannels.online/setup/3).\n\nYou can keep the default settings by pressing **( `✓ Finish` )** button.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "verifiedRolesDisplay": {
                                    "{verifiedRoles}": "{verifiedRoles}",
                                    "{verifiedRolesDefault}": "**None**"
                                }
                            },
                            "arrayOptions": {
                                "verifiedRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "verifiedRoles": "{verifiedRoles}",
                                "verifiedRolesDisplay": "{verifiedRolesDisplay}",
                                "verifiedRolesEmpty": "{verifiedRolesDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {}, verifiedRoles = Array.isArray(args.dynamicChannelVerifiedRoles) ? args.dynamicChannelVerifiedRoles : [];\n  if (verifiedRoles.length) {\n    result.verifiedRoles = verifiedRoles;\n    result.verifiedRolesDisplay = SETUP_STEP_3_VARS.verifiedRoles;\n  } else\n    result.verifiedRolesDisplay = SETUP_STEP_3_VARS.verifiedRolesEmpty;\n  return result;\n}",
                                        "binds": [
                                            "SETUP_STEP_3_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/ClaimCommandComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/ClaimCommandChannelMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/ClaimCommandChannelMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/ClaimCommandChannelMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "👑 ∙ Select a channel"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/ClaimCommandSelectEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimCommandSelectEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  Channels you can claim",
                            "description": "There {claimableCount} waiting for a new owner.\n\nA channel becomes claimable when whoever owned it leaves and does not come back. Whoever is still inside votes on who takes it.\n\nPick one and you will be sent to where the vote is.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "claimableCount": {
                                    "1": "is **one channel**",
                                    "many": "are **{count} channels**"
                                }
                            },
                            "vars": {
                                "claimableCount": "{claimableCount}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const count = Array.isArray(args?.claimableChannels) ? args.claimableChannels.length : 0;\n  return {\n    claimableCount: count === 1 ? \"1\" : \"many\",\n    count\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimCommandPointedAtEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimCommandPointedAtEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  Claim it here",
                            "description": "**{claimedChannelName}** is waiting for a new owner.\n\n{claimMessageUrl}\n\nPress **Claim** there to put yourself forward. Everyone still inside votes.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "vars": {
                                "claimedChannelName": "{claimedChannelName}",
                                "claimMessageUrl": "{claimMessageUrl}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  claimedChannelName: args?.claimedChannelName,\n  claimMessageUrl: args?.claimMessageUrl\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/ClaimResultComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/ClaimResultOwnerStopEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimResultOwnerStopEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  You're back in charge!",
                            "description": "Please be aware that if you don't return within **{absentMinutes}** minutes, the channel will once again become available for other members to claim.\n",
                            "vars": {
                                "absentMinutes": "{absentMinutes}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  absentMinutes: (args.absentInterval / 60000).toFixed(1)\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimResultVotedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimResultVotedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🗳️  You have voted for {userDisplayName}",
                            "description": "Your vote has been cast in favor of <@{userId}> taking ownership of this channel.",
                            "vars": {
                                "userDisplayName": "{userDisplayName}",
                                "userId": "{userId}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  userDisplayName: args.userDisplayName,\n  userId: args.userId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimResultVotedSameEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimResultVotedSameEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🗳️  You already voted for {userDisplayName}",
                            "description": "Your vote has been already cast in favor of <@{userId}>, you can vote for someone else if you changed your mind.",
                            "vars": {
                                "userDisplayName": "{userDisplayName}",
                                "userId": "{userId}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  userDisplayName: args.userDisplayName,\n  userId: args.userId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimResultVoteUpdatedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimResultVoteUpdatedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🗳️  Your vote has been updated",
                            "description": "You've just changed your vote from <@{prevUserId}> to <@{currentUserId}> for channel ownership.",
                            "vars": {
                                "prevUserId": "{prevUserId}",
                                "currentUserId": "{currentUserId}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  prevUserId: args.prevUserId,\n  currentUserId: args.currentUserId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimResultStepInEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimResultStepInEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "😈  Channel might be yours",
                            "description": "You've put yourself forward as a potential owner of this channel.\nGood luck!\n"
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimResultStepAlreadyInEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimResultStepAlreadyInEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  You are already in",
                            "description": "Your intentions are clear - you've already nominated yourself as a potential owner of this channel.",
                            "color": 16738560
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimResultVoteSelfEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimResultVoteSelfEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  You cannot vote for yourself",
                            "description": "It's great that you believe in yourself, but voting for yourself is not allowed in this election.",
                            "color": 16738560
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 7,
                "withDefinition": 7,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/ClaimStartComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/ClaimStartComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/ClaimStartButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/ClaimStartButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ClaimChannel'>"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/ClaimStartComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimStartEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👋  {ownerDisplayName} abandoned his channel!",
                            "description": "<@{ownerId}> has been absent for more than {absentMinutes} minutes.\nWill you be the one to take charge? Step up and claim it for yourself!",
                            "vars": {
                                "ownerId": "{ownerId}",
                                "ownerDisplayName": "{ownerDisplayName}",
                                "absentMinutes": "{absentMinutes}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const { ownerDisplayName, ownerId, absentInterval } = args;\n  return {\n    ownerId,\n    ownerDisplayName,\n    absentMinutes: (absentInterval / 60000).toFixed(1)\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/ClaimVoteComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/ClaimVoteElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/ClaimVoteAddButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/ClaimVoteAddButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Vote {displayName}",
                                "options": {},
                                "style": "secondary",
                                "emoji": "🗳️"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/ClaimVoteStepInButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/ClaimVoteStepInButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Step in",
                                "style": "secondary",
                                "emoji": "😈"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimVoteStepInButtonGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/ClaimVoteStepInButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/ClaimVoteStepInButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Step in",
                                "style": "secondary",
                                "emoji": "😈"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/ClaimVoteStepInEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimVoteStepInEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  {userInitiatorDisplayName} wish to claim this channel",
                            "description": "Unless someone else steps up, <@{userInitiatorId}> will be the proud owner of this channel in just `{elapsedTimeFormatFraction}`.",
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "userInitiatorId": "{userInitiatorId}",
                                "userInitiatorDisplayName": "{userInitiatorDisplayName}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    },
                                    {
                                        "source": "(args) => ({\n  userInitiatorId: args.userInitiatorId,\n  userInitiatorDisplayName: args.userInitiatorDisplayName\n})"
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(args.timeEnd)"
                                }
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimVoteEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimVoteEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  {candidatesCount} Candidates wish to claim this channel",
                            "description": "The countdown is on!\nIn just `{elapsedTimeFormatFraction}`, the voting will come to a close.\nIn case of a tie, <@{userInitiatorId}> will become the new owner.\n\n{candidatesState}",
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "candidatesState": {
                                    "{candidates}": "🏅 {candidates}",
                                    "{candidatesDefault}": "There are no candidates yet."
                                }
                            },
                            "arrayOptions": {
                                "candidates": {
                                    "format": "{value}{separator}",
                                    "separator": " - ",
                                    "multiSeparator": "\n",
                                    "options": {
                                        "userId": "<@{userId}>",
                                        "votes": "{votes} Votes"
                                    }
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "separator": "{separator}",
                                "value": "{value}",
                                "userInitiatorId": "{userInitiatorId}",
                                "candidates": "{candidates}",
                                "candidatesCount": "{candidatesCount}",
                                "candidatesState": "{candidatesState}",
                                "candidatesDefault": "{candidatesDefault}",
                                "userId": "{userId}",
                                "votes": "{votes}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    },
                                    {
                                        "source": "(args) => {\n  const candidates = Object.entries(args.results || {}).map(([userId, votes]) => ({\n    userId,\n    votes\n  })).sort((a, b) => b.votes - a.votes);\n  return {\n    candidatesCount: candidates.length,\n    userInitiatorId: args.userInitiatorId,\n    candidates: candidates.length ? candidates : [],\n    candidatesState: candidates.length ? CLAIM_VOTE_EMBED_VARS.candidates : CLAIM_VOTE_EMBED_VARS.candidatesDefault\n  };\n}",
                                        "binds": [
                                            "CLAIM_VOTE_EMBED_VARS"
                                        ]
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(args.timeEnd)"
                                }
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/ClaimVoteWonEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ClaimVoteWonEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑  {userWonDisplayName} has claimed the channel",
                            "description": "{wonMessage}",
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "wonMessage": {
                                    "{wonSomeoneElse}": "<@{userWonId}> has claimed ownership of this channel, superseding ~~{previousOwnerDisplayName}~~ as the new owner!{results}",
                                    "{wonSameOwner}": "<@{userWonId}> has claimed ownership of this channel, he was already the owner! 😊{results}"
                                },
                                "results": {
                                    "{resultsDefault}": "",
                                    "{resultsLink}": "\n\nFor more details click [here]({resultsLink})"
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "userWonId": "{userWonId}",
                                "userWonDisplayName": "{userWonDisplayName}",
                                "previousOwnerId": "{previousOwnerId}",
                                "previousOwnerDisplayName": "{previousOwnerDisplayName}",
                                "candidatesCount": "{candidatesCount}",
                                "wonMessage": "{wonMessage}",
                                "wonSameOwner": "{wonSameOwner}",
                                "wonSomeoneElse": "{wonSomeoneElse}",
                                "results": "{results}",
                                "resultsLink": "{resultsLink}",
                                "resultsDefault": "{resultsDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(Date.now() + args.elapsedTime)"
                                }
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannel",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelRenameButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelRenameButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelRename'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelLimitMetaButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelLimitMetaButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='UserLimit'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPermissionsAccessButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPermissionsAccessButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelPermissions'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelInviteButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelInviteButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='InviteChannel'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrivacyButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrivacyButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelPrivacy'>"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelRegionButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelRegionButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelRegion'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='EditChannelMessage'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelClearChatButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelClearChatButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ClearChat'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelResetChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelResetChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ResetChannel'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTransferOwnerButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTransferOwnerButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='TransferChannel'>"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelTemplates'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelStatusButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelStatusButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='Megaphone'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelKnockButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelKnockButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='KnockChannel'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelLfmButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelLfmButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='LfmChannel'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelClaimChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelClaimChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ClaimChannel'>"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannel/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{title}",
                            "description": "{description}\n\n{renameEmoji} ・ Name: **{name}**\n\n{limitEmoji} ・ User Limit: **{limit}**\n\n{privacyEmoji} ・ Privacy State: **{state}**\n\n{regionEmoji} ・ Region:  **{region}**\n\n🎚 ・ Bitrate: **{bitrate} kbps**\n",
                            "image": "https://api.voicechannels.online/api/tools/button-sheet.png?cols=5&scale=3&items={dynamicChannelButtonsTemplate}&rows={dynamicChannelButtonsRowBreaks}",
                            "color": 3369963,
                            "options": {
                                "limit": {
                                    "{limitDisplayValue}": "{limitValue}",
                                    "{limitDisplayUnlimited}": "Unlimited"
                                },
                                "state": {
                                    "{statePublic}": "🌐 Public",
                                    "{statePrivate}": "🚫 Private",
                                    "{stateShown}": "🐵 Shown",
                                    "{stateHidden}": "🙈 Hidden"
                                },
                                "region": {
                                    "{region-auto}": "Automatic",
                                    "{region-brazil}": "Brazil",
                                    "{region-hongkong}": "HongKong",
                                    "{region-india}": "India",
                                    "{region-japan}": "Japan",
                                    "{region-rotterdam}": "Rotterdam",
                                    "{region-russia}": "Russia",
                                    "{region-singapore}": "Singapore",
                                    "{region-southafrica}": "SouthAfrica",
                                    "{region-sydney}": "Sydney",
                                    "{region-us-central}": "US Central",
                                    "{region-us-east}": "US East",
                                    "{region-us-south}": "US South",
                                    "{region-us-west}": "US West"
                                }
                            },
                            "arrayOptions": {
                                "dynamicChannelButtonsTemplate": {
                                    "format": "{value}{separator}",
                                    "separator": ",",
                                    "options": {}
                                },
                                "dynamicChannelButtonsRowBreaks": {
                                    "format": "{value}{separator}",
                                    "separator": ",",
                                    "options": {}
                                }
                            },
                            "vars": {
                                "name": "{name}",
                                "limit": "{limit}",
                                "limitDisplayValue": "{limitDisplayValue}",
                                "limitDisplayUnlimited": "{limitDisplayUnlimited}",
                                "limitValue": "{limitValue}",
                                "state": "{state}",
                                "statePublic": "{statePublic}",
                                "statePrivate": "{statePrivate}",
                                "stateShown": "{stateShown}",
                                "stateHidden": "{stateHidden}",
                                "renameEmoji": "{renameEmoji}",
                                "limitEmoji": "{limitEmoji}",
                                "privacyEmoji": "{privacyEmoji}",
                                "region": "{region}",
                                "regionEmoji": "{regionEmoji}",
                                "bitrate": "{bitrate}",
                                "regionAutomatic": "{regionAutomatic}",
                                "region-auto": "{region-auto}",
                                "region-brazil": "{region-brazil}",
                                "region-hongkong": "{region-hongkong}",
                                "region-india": "{region-india}",
                                "region-japan": "{region-japan}",
                                "region-rotterdam": "{region-rotterdam}",
                                "region-russia": "{region-russia}",
                                "region-singapore": "{region-singapore}",
                                "region-southafrica": "{region-southafrica}",
                                "region-sydney": "{region-sydney}",
                                "region-us-central": "{region-us-central}",
                                "region-us-east": "{region-us-east}",
                                "region-us-south": "{region-us-south}",
                                "region-us-west": "{region-us-west}",
                                "title": "{title}",
                                "description": "{description}",
                                "value": "{value}",
                                "separator": "{separator}",
                                "dynamicChannelButtonsTemplate": "{dynamicChannelButtonsTemplate}",
                                "dynamicChannelButtonsRowBreaks": "{dynamicChannelButtonsRowBreaks}"
                            },
                            "defaultVars": {
                                "renameEmoji": "<emoji name='ChannelRename'>",
                                "limitEmoji": "<emoji name='UserLimit'>",
                                "privacyEmoji": "<emoji name='ChannelPrivacy'>",
                                "regionEmoji": "<emoji name='ChannelRegion'>",
                                "regionAutomatic": "Automatic",
                                "limitDisplayValue": "value",
                                "limitDisplayUnlimited": "unlimited",
                                "statePublic": "public",
                                "statePrivate": "private",
                                "stateShown": "shown",
                                "stateHidden": "hidden",
                                "title": "༄ Manage your Dynamic Channel",
                                "description": "Embrace the responsibility of overseeing your dynamic channel,diligently customizing it according to your discerning preferences.\n\nPlease be advised that the privilege to make alterations is vested solely of the channel owner."
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V3/DynamicChannelPrimaryMessageElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannel/EmbedsGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelClearChatComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelClearChatButtonGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelClearChatButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelClearChatButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ClearChat'>"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelClearChatSuccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelClearChatSuccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{clearEmoji}  Chat was cleared the by {ownerDisplayName}!",
                            "description": "Total of {totalMessages} messages.",
                            "color": 4943761,
                            "vars": {
                                "clearEmoji": "{clearEmoji}",
                                "ownerDisplayName": "{ownerDisplayName}",
                                "totalMessages": "{totalMessages}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelClearChatNothingToClearEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelClearChatNothingToClearEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{clearEmoji}  There are no messages available to clear",
                            "description": "Keep in mind, that only non-embeds messages can be deleted.",
                            "color": 4943761,
                            "vars": {
                                "clearEmoji": "{clearEmoji}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V3/DynamicChannelClearChatButtonGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelClearChatSuccessEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelInviteComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelInviteUserMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelInviteUserMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelInviteUserMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "📨 Select User"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelInviteChannelMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelInviteChannelMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelInviteChannelMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "📨 Select Channel"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelInviteEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelInviteEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{inviteEmoji}  Invite someone to your channel",
                            "description": "Select the user you want in, and they can join whatever this channel is set to.\n\nThey are told where to find it, so a private channel does not have to be explained.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "vars": {
                                "inviteEmoji": "{inviteEmoji}"
                            },
                            "defaultVars": {
                                "inviteEmoji": "<emoji name='InviteChannel'>"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelInviteSentEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelInviteSentEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{inviteEmoji}  Invite sent",
                            "description": "**{invitedDisplayName}** can now join this channel.\n\n{deliveryDisplay}",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "options": {
                                "deliveryDisplay": {
                                    "{deliveryDelivered}": "They have been sent a link to it.",
                                    "{deliveryBlocked}": "Their direct messages are closed, so tell them yourself - the access is already theirs."
                                }
                            },
                            "vars": {
                                "inviteEmoji": "{inviteEmoji}",
                                "invitedDisplayName": "{invitedDisplayName}",
                                "deliveryDisplay": "{deliveryDisplay}",
                                "deliveryDelivered": "{deliveryDelivered}",
                                "deliveryBlocked": "{deliveryBlocked}"
                            },
                            "defaultVars": {
                                "inviteEmoji": "<emoji name='InviteChannel'>",
                                "invitedDisplayName": "The member",
                                "deliveryDisplay": "{deliveryDelivered}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {\n    deliveryDisplay: args?.isInviteDelivered ? DYNAMIC_CHANNEL_INVITE_SENT_VARS.deliveryDelivered : DYNAMIC_CHANNEL_INVITE_SENT_VARS.deliveryBlocked\n  };\n  if (args?.invitedDisplayName)\n    result.invitedDisplayName = args.invitedDisplayName;\n  return result;\n}",
                                        "binds": [
                                            "DYNAMIC_CHANNEL_INVITE_SENT_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelInviteSelectChannelEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelInviteSelectChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{inviteEmoji}  Which channel?",
                            "description": "You have more than one channel open here. Pick the one to invite someone into.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "vars": {
                                "inviteEmoji": "{inviteEmoji}"
                            },
                            "defaultVars": {
                                "inviteEmoji": "<emoji name='InviteChannel'>"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/NoActiveDynamicChannelEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NoActiveDynamicChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⛔  No active dynamic channel",
                            "description": "You don't own an active dynamic channel.{masterChannelMessage}",
                            "color": 16732674,
                            "options": {
                                "masterChannelMessage": {
                                    "{masterChannelId}": "\n\nJoin <#{masterChannelId}> to create your own channel first.",
                                    "{masterChannelMessageDefault}": ""
                                }
                            },
                            "vars": {
                                "masterChannelId": "{masterChannelId}",
                                "masterChannelMessage": "{masterChannelMessage}",
                                "masterChannelMessageDefault": "{masterChannelMessageDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args?.masterChannelId) {\n    result.masterChannelId = String(args.masterChannelId);\n    result.masterChannelMessage = vars.masterChannelId;\n  } else\n    result.masterChannelMessage = vars.masterChannelMessageDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/NothingChangedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NothingChangedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  Nothing changed",
                            "description": "This is may occur when you try to change something that is not changeable or is the same as before.",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 6,
                "withDefinition": 6,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelKnockComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelKnockChannelMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelKnockChannelMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelKnockChannelMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🚪 Select Channel"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelKnockEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelKnockEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{knockEmoji}  Ask to join a channel",
                            "description": "Pick the channel you want into and its owner is asked to let you in.\n\nThey decide, and you are told either way.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "vars": {
                                "knockEmoji": "{knockEmoji}"
                            },
                            "defaultVars": {
                                "knockEmoji": "<emoji name='KnockChannel'>"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelKnockSentEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelKnockSentEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{knockEmoji}  Your request was sent",
                            "description": "The owner of **{knockedChannelName}** has been asked to let you in.\n\nYou are told as soon as they answer.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "vars": {
                                "knockEmoji": "{knockEmoji}",
                                "knockedChannelName": "{knockedChannelName}"
                            },
                            "defaultVars": {
                                "knockEmoji": "<emoji name='KnockChannel'>",
                                "knockedChannelName": "Example Channel"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  knockedChannelName: args?.knockedChannelName\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelKnockNoneEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelKnockNoneEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{knockEmoji}  Nothing to knock on",
                            "description": "{openChannelsDisplay}",
                            "color": 4943761,
                            "options": {
                                "openChannelsDisplay": {
                                    "{openChannelsDefault}": "Every channel here is either open to you already or is one of your own.\n\nA channel you cannot see is not listed - if a friend has one, ask them for an invite.",
                                    "{openChannels}": "Nothing here is closed to you - these are open, walk straight in:\n\n{openChannels}"
                                }
                            },
                            "arrayOptions": {
                                "openChannels": {
                                    "format": "- <#{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "knockEmoji": "{knockEmoji}",
                                "openChannels": "{openChannels}",
                                "openChannelsDisplay": "{openChannelsDisplay}",
                                "openChannelsDefault": "{openChannelsDefault}",
                                "value": "{value}",
                                "separator": "{separator}"
                            },
                            "defaultVars": {
                                "knockEmoji": "<emoji name='KnockChannel'>",
                                "openChannelsDisplay": "{openChannelsDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const openChannels = Array.isArray(args?.openChannels) ? args.openChannels : [];\n  return {\n    openChannels,\n    openChannelsDisplay: openChannels.length ? vars.openChannels : vars.openChannelsDefault\n  };\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelKnockWaitingEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelKnockWaitingEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{knockEmoji}  You already asked",
                            "description": "That channel's owner has your request and has not answered it yet.\n\nGive them a few minutes before asking again.",
                            "color": 9807270,
                            "vars": {
                                "knockEmoji": "{knockEmoji}"
                            },
                            "defaultVars": {
                                "knockEmoji": "<emoji name='KnockChannel'>"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 5,
                "withDefinition": 5,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelKnockRequestComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-General/YesNoElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/YesButton",
                            "definition": {
                                "name": "VertixBot/UI-General/YesButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "👍 Yes",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/NoButton",
                            "definition": {
                                "name": "VertixBot/UI-General/NoButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "👎 No",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelKnockRequestEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelKnockRequestEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{knockEmoji}  Someone wants to join",
                            "description": "<@{knockerId}> is asking to be let into this channel.\n\nLetting them in grants them access the way the access menu would. Ignoring this is an answer too - the request expires on its own.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "vars": {
                                "knockEmoji": "{knockEmoji}",
                                "knockerId": "{knockerId}",
                                "knockerDisplayName": "{knockerDisplayName}"
                            },
                            "defaultVars": {
                                "knockEmoji": "<emoji name='KnockChannel'>",
                                "knockerId": "123456789",
                                "knockerDisplayName": "Example User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  knockerId: args?.knockerId,\n  knockerDisplayName: args?.knockerDisplayName\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelKnockAnsweredEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelKnockAnsweredEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{knockEmoji}  Request answered",
                            "description": "{answerDisplay}",
                            "color": 3369963,
                            "options": {
                                "answerDisplay": {
                                    "{answerAllowed}": "**{knockerDisplayName}** was let in.",
                                    "{answerDenied}": "**{knockerDisplayName}** was not let in."
                                }
                            },
                            "vars": {
                                "knockEmoji": "{knockEmoji}",
                                "knockerDisplayName": "{knockerDisplayName}",
                                "answerDisplay": "{answerDisplay}",
                                "answerAllowed": "{answerAllowed}",
                                "answerDenied": "{answerDenied}"
                            },
                            "defaultVars": {
                                "knockEmoji": "<emoji name='KnockChannel'>",
                                "knockerDisplayName": "Example User",
                                "answerDisplay": "{answerAllowed}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  knockerDisplayName: args?.knockerDisplayName,\n  answerDisplay: args?.isKnockAllowed ? DYNAMIC_CHANNEL_KNOCK_ANSWERED_VARS.answerAllowed : DYNAMIC_CHANNEL_KNOCK_ANSWERED_VARS.answerDenied\n})",
                                        "binds": [
                                            "DYNAMIC_CHANNEL_KNOCK_ANSWERED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-General/YesNoElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelKnockRequestEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelLfmComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelLfmChannelMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelLfmChannelMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelLfmChannelMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🔎 Select Channel"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelLfmSelectChannelEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelLfmSelectChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "color": 3369963,
                            "title": "🔎  Where should it go?",
                            "description": "Pick the channel your call for members is posted to.\n\nIt shows who is hosting, what they are playing and how many are in, and it is taken down when your channel fills up or empties."
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelLfmPostedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelLfmPostedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔎  Your channel is on the board",
                            "description": "Posted to <#{lfmChannelId}>.\n\nIt keeps its member count up to date, and comes down on its own when your channel fills up or empties.",
                            "color": 16766720,
                            "vars": {
                                "lfmChannelId": "{lfmChannelId}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  lfmChannelId: args.lfmChannelId\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelLfmCooldownEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelLfmCooldownEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔎  Not just yet",
                            "description": "This server limits how often these channels advertise, and the last post went up recently. The next one can go up in about {retryMinutes} minutes.",
                            "color": 16738560,
                            "vars": {
                                "retryMinutes": "{retryMinutes}"
                            },
                            "defaultVars": {
                                "retryMinutes": "10"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  retryMinutes: args.retryMinutes\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelLfmUnavailableEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelLfmUnavailableEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔎  Nothing to post",
                            "description": "{reason}",
                            "color": 16738560,
                            "options": {
                                "reason": {
                                    "{reasonNotConfigured}": "Nobody has set this up yet. An admin runs `/setup`, turns the **LFM** button on in the channel interface, and picks the channels these posts go to.",
                                    "{reasonDestinationUnavailable}": "The channels these posts go to are not ones you can see. An admin picks them in the setup screen.",
                                    "{reasonHidden}": "Your channel is hidden, so nobody could find it anyway. Show it first.",
                                    "{reasonPrivate}": "Your channel is private, so nobody you invite could get in. Make it public first.",
                                    "{reasonFull}": "Your channel is already full.",
                                    "{reasonAlreadyPosted}": "Your channel is already on the board.",
                                    "{reasonFailed}": "Something went wrong while posting. Try again in a moment."
                                }
                            },
                            "vars": {
                                "reason": "{reason}",
                                "reasonNotConfigured": "{reasonNotConfigured}",
                                "reasonDestinationUnavailable": "{reasonDestinationUnavailable}",
                                "reasonHidden": "{reasonHidden}",
                                "reasonPrivate": "{reasonPrivate}",
                                "reasonFull": "{reasonFull}",
                                "reasonAlreadyPosted": "{reasonAlreadyPosted}",
                                "reasonFailed": "{reasonFailed}"
                            },
                            "defaultVars": {
                                "reason": "{reasonNotConfigured}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  return {\n    reason: {\n      [DynamicChannelLfmPostResultCode.NotConfigured]: vars.reasonNotConfigured,\n      [DynamicChannelLfmPostResultCode.DestinationUnavailable]: vars.reasonDestinationUnavailable,\n      [DynamicChannelLfmPostResultCode.ChannelHidden]: vars.reasonHidden,\n      [DynamicChannelLfmPostResultCode.ChannelPrivate]: vars.reasonPrivate,\n      [DynamicChannelLfmPostResultCode.ChannelFull]: vars.reasonFull,\n      [DynamicChannelLfmPostResultCode.AlreadyPosted]: vars.reasonAlreadyPosted,\n      [DynamicChannelLfmPostResultCode.Error]: vars.reasonFailed\n    }[args.reasonCode] ?? vars.reasonFailed\n  };\n}",
                                        "binds": [
                                            "DynamicChannelLfmPostResultCode",
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V3/DynamicChannelLfmNoteModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelLfmNoteModal",
                "title": "Looking for members",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelLfmNoteInput",
                        "label": "WHO ARE YOU LOOKING FOR",
                        "placeholder": "Need 2 for ranked, mic required",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 128
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 4,
                "withDefinition": 4,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelLimitComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelLimitSuccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelLimitSuccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "✋  Your channel's user limit has changed to {userLimit}",
                            "color": 16109389,
                            "options": {
                                "userLimit": {
                                    "{userLimitValue}": "{userLimitValue}",
                                    "{userLimitUnlimited}": "Unlimited"
                                }
                            },
                            "vars": {
                                "userLimit": "{userLimit}",
                                "userLimitValue": "{userLimitValue}",
                                "userLimitUnlimited": "{userLimitUnlimited}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  userLimit: args.userLimit === 0 ? DYNAMIC_CHANNEL_LIMIT_SUCCESS_VARS.userLimitUnlimited : DYNAMIC_CHANNEL_LIMIT_SUCCESS_VARS.userLimitValue,\n  userLimitValue: args.userLimit\n})",
                                        "binds": [
                                            "DYNAMIC_CHANNEL_LIMIT_SUCCESS_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelLimitInvalidInputEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelLimitInvalidInputEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙅  User limit must be between {minValue} and {maxValue}",
                            "color": 16738560,
                            "vars": {
                                "minValue": "{minValue}",
                                "maxValue": "{maxValue}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  minValue: args.minValue,\n  maxValue: args.maxValue\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V3/DynamicChannelLimitModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelLimitModal",
                "title": "Set user limit",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelLimitInput",
                        "label": "SET USER LIMIT (0 FOR UNLIMITED)",
                        "placeholder": "0 - 99",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 99
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelLimitSuccessEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelPanel",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelRenameButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelRenameButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelRename'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelLimitMetaButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelLimitMetaButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='UserLimit'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPermissionsAccessButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPermissionsAccessButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelPermissions'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelInviteButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelInviteButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='InviteChannel'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrivacyButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrivacyButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelPrivacy'>"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelRegionButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelRegionButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelRegion'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='EditChannelMessage'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelClearChatButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelClearChatButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ClearChat'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelResetChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelResetChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ResetChannel'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTransferOwnerButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTransferOwnerButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='TransferChannel'>"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelTemplates'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelStatusButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelStatusButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='Megaphone'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelKnockButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelKnockButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='KnockChannel'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelLfmButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelLfmButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='LfmChannel'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelClaimChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelClaimChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ClaimChannel'>"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPanel/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPanelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "༄ Manage your Dynamic Channel",
                            "description": "Embrace the responsibility of overseeing your dynamic channel, diligently customizing it according to your discerning preferences.\n\n**Available Features:**\n\n",
                            "image": "https://api.voicechannels.online/api/tools/button-sheet.png?cols=5&scale=3&items={dynamicChannelButtonsTemplate}&rows={dynamicChannelButtonsRowBreaks}",
                            "color": 3369963,
                            "arrayOptions": {
                                "dynamicChannelButtonsTemplate": {
                                    "format": "{value}{separator}",
                                    "separator": ",",
                                    "options": {}
                                },
                                "dynamicChannelButtonsRowBreaks": {
                                    "format": "{value}{separator}",
                                    "separator": ",",
                                    "options": {}
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "dynamicChannelButtonsTemplate": "{dynamicChannelButtonsTemplate}",
                                "dynamicChannelButtonsRowBreaks": "{dynamicChannelButtonsRowBreaks}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  dynamicChannelButtonsTemplate: args.dynamicChannelButtonsTemplate,\n  dynamicChannelButtonsRowBreaks: args.dynamicChannelButtonsRowBreaks ?? []\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V3/DynamicChannelPrimaryMessageElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelPanel/EmbedsGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        },
        "routesDrawnElsewhere": true
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelPermissionsComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPermissionsAccessElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPermissionsGrantMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPermissionsGrantMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👍 Grant Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPermissionsDenyMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPermissionsDenyMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👎 Remove Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPermissionsBlockMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPermissionsBlockMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🫵 Block User Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPermissionsUnblockMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPermissionsUnblockMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🤙 Un-Block User Access"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPermissionsKickMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPermissionsKickMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👢 Kick User"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPermissionsGrantedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPermissionsGrantedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👍  Access granted",
                            "description": "**{userGrantedDisplayName}** added successfully and now has access to this channel!\n\n**_Trusted Users_**:\n{allowedUsersDisplay}\n**_Blocked Users_**:\n{blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "color": 4943761,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no trusted users.\n",
                                    "{allowedUsers}": "{allowedUsers}\n"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.\n",
                                    "{blockedUsers}": "{blockedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                },
                                "blockedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "vars": [
                                    "separator",
                                    "value",
                                    "allowedUsers",
                                    "allowedUsersDisplay",
                                    "allowedUsersDefault",
                                    "blockedUsers",
                                    "blockedUsersDisplay",
                                    "blockedUsersDefault",
                                    "userGrantedDisplayName"
                                ],
                                "varsObject": {
                                    "separator": "{separator}",
                                    "value": "{value}",
                                    "allowedUsers": "{allowedUsers}",
                                    "allowedUsersDisplay": "{allowedUsersDisplay}",
                                    "allowedUsersDefault": "{allowedUsersDefault}",
                                    "blockedUsers": "{blockedUsers}",
                                    "blockedUsersDisplay": "{blockedUsersDisplay}",
                                    "blockedUsersDefault": "{blockedUsersDefault}",
                                    "userGrantedDisplayName": "{userGrantedDisplayName}"
                                },
                                "varsObjectFreeze": {
                                    "separator": "{separator}",
                                    "value": "{value}",
                                    "allowedUsers": "{allowedUsers}",
                                    "allowedUsersDisplay": "{allowedUsersDisplay}",
                                    "allowedUsersDefault": "{allowedUsersDefault}",
                                    "blockedUsers": "{blockedUsers}",
                                    "blockedUsersDisplay": "{blockedUsersDisplay}",
                                    "blockedUsersDefault": "{blockedUsersDefault}",
                                    "userGrantedDisplayName": "{userGrantedDisplayName}"
                                }
                            },
                            "defaultVars": {
                                "userGrantedDisplayName": "Example User"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPermissionsDeniedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPermissionsDeniedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👎  Access canceled",
                            "description": "**{userDeniedDisplayName}** successfully revoked and no longer has access to this channel!\n\n**_Trusted Users_**:\n{allowedUsersDisplay}\n**_Blocked Users_**:\n{blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "color": 4943761,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no trusted users.\n",
                                    "{allowedUsers}": "{allowedUsers}\n"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.\n",
                                    "{blockedUsers}": "{blockedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                },
                                "blockedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userDeniedDisplayName": "{userDeniedDisplayName}"
                            },
                            "defaultVars": {
                                "userDeniedDisplayName": "Example User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const allowedUsers = Array.isArray(args.allowedUsers) ? args.allowedUsers.map((user) => user.id) : [], blockedUsers = Array.isArray(args.blockedUsers) ? args.blockedUsers.map((user) => user.id) : [];\n  return {\n    allowedUsers,\n    blockedUsers,\n    allowedUsersDisplay: allowedUsers.length ? DYNAMIC_CHANNEL_PERMISSIONS_DENIED_VARS.allowedUsers : DYNAMIC_CHANNEL_PERMISSIONS_DENIED_VARS.allowedUsersDefault,\n    blockedUsersDisplay: blockedUsers.length ? DYNAMIC_CHANNEL_PERMISSIONS_DENIED_VARS.blockedUsers : DYNAMIC_CHANNEL_PERMISSIONS_DENIED_VARS.blockedUsersDefault,\n    userDeniedDisplayName: args.userDeniedDisplayName ?? \"Unknown\"\n  };\n}",
                                        "binds": [
                                            "DYNAMIC_CHANNEL_PERMISSIONS_DENIED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPermissionsBlockedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPermissionsBlockedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🫵  User blocked",
                            "description": "**{userBlockedDisplayName}** successfully blocked and no longer has access to this channel!\n\n**_Trusted Users_**:\n{allowedUsersDisplay}\n**_Blocked Users_**:\n{blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "color": 4943761,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no trusted users.\n",
                                    "{allowedUsers}": "{allowedUsers}\n"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.\n",
                                    "{blockedUsers}": "{blockedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                },
                                "blockedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userBlockedDisplayName": "{userBlockedDisplayName}"
                            },
                            "defaultVars": {
                                "userBlockedDisplayName": "Example User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const allowedUsers = Array.isArray(args.allowedUsers) ? args.allowedUsers.map((user) => user.id) : [], blockedUsers = Array.isArray(args.blockedUsers) ? args.blockedUsers.map((user) => user.id) : [];\n  return {\n    allowedUsers,\n    blockedUsers,\n    allowedUsersDisplay: allowedUsers.length ? DYNAMIC_CHANNEL_PERMISSIONS_BLOCKED_VARS.allowedUsers : DYNAMIC_CHANNEL_PERMISSIONS_BLOCKED_VARS.allowedUsersDefault,\n    blockedUsersDisplay: blockedUsers.length ? DYNAMIC_CHANNEL_PERMISSIONS_BLOCKED_VARS.blockedUsers : DYNAMIC_CHANNEL_PERMISSIONS_BLOCKED_VARS.blockedUsersDefault,\n    userBlockedDisplayName: args.userBlockedDisplayName ?? \"Unknown\"\n  };\n}",
                                        "binds": [
                                            "DYNAMIC_CHANNEL_PERMISSIONS_BLOCKED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPermissionsUnblockedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPermissionsUnblockedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤙  User unblocked",
                            "description": "**{userUnBlockedDisplayName}** successfully un-blocked!\n\n**_Trusted Users_**:\n{allowedUsersDisplay}\n**_Blocked Users_**:\n{blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "color": 4943761,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no trusted users.\n",
                                    "{allowedUsers}": "{allowedUsers}\n"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.\n",
                                    "{blockedUsers}": "{blockedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                },
                                "blockedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userUnBlockedDisplayName": "{userUnBlockedDisplayName}"
                            },
                            "defaultVars": {
                                "userUnBlockedDisplayName": "Example User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const allowedUsers = Array.isArray(args.allowedUsers) ? args.allowedUsers.map((user) => user.id) : [], blockedUsers = Array.isArray(args.blockedUsers) ? args.blockedUsers.map((user) => user.id) : [];\n  return {\n    allowedUsers,\n    blockedUsers,\n    allowedUsersDisplay: allowedUsers.length ? DYNAMIC_CHANNEL_PERMISSIONS_UNBLOCKED_VARS.allowedUsers : DYNAMIC_CHANNEL_PERMISSIONS_UNBLOCKED_VARS.allowedUsersDefault,\n    blockedUsersDisplay: blockedUsers.length ? DYNAMIC_CHANNEL_PERMISSIONS_UNBLOCKED_VARS.blockedUsers : DYNAMIC_CHANNEL_PERMISSIONS_UNBLOCKED_VARS.blockedUsersDefault,\n    userUnBlockedDisplayName: args.userUnBlockedDisplayName ?? \"Unknown\"\n  };\n}",
                                        "binds": [
                                            "DYNAMIC_CHANNEL_PERMISSIONS_UNBLOCKED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPermissionsKickEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPermissionsKickEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👢  User kicked",
                            "description": "**{userKickedDisplayName}** successfully kicked!\n\n**_Trusted Users_**:\n{allowedUsersDisplay}\n**_Blocked Users_**:\n{blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 4943761,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no trusted users.\n",
                                    "{allowedUsers}": "{allowedUsers}\n"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.\n",
                                    "{blockedUsers}": "{blockedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                },
                                "blockedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "userKickedDisplayName": "{userKickedDisplayName}"
                            },
                            "defaultVars": {
                                "userKickedDisplayName": "Example User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const allowedUsers = Array.isArray(args.allowedUsers) ? args.allowedUsers.map((user) => user.id) : [], blockedUsers = Array.isArray(args.blockedUsers) ? args.blockedUsers.map((user) => user.id) : [];\n  return {\n    allowedUsers,\n    blockedUsers,\n    allowedUsersDisplay: allowedUsers.length ? DYNAMIC_CHANNEL_PERMISSIONS_KICK_VARS.allowedUsers : DYNAMIC_CHANNEL_PERMISSIONS_KICK_VARS.allowedUsersDefault,\n    blockedUsersDisplay: blockedUsers.length ? DYNAMIC_CHANNEL_PERMISSIONS_KICK_VARS.blockedUsers : DYNAMIC_CHANNEL_PERMISSIONS_KICK_VARS.blockedUsersDefault,\n    userKickedDisplayName: args.userKickedDisplayName ?? \"Unknown\"\n  };\n}",
                                        "binds": [
                                            "DYNAMIC_CHANNEL_PERMISSIONS_KICK_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPermissionsAccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPermissionsAccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{permissionsEmoji}  Manage permissions of your channel",
                            "description": "\n**_Trusted Users_**:\n{allowedUsersDisplay}\n**_Blocked Users_**:\n{blockedUsersDisplay}",
                            "footer": "Use the menu below to manage permissions of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 4943761,
                            "options": {
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no trusted users.\n",
                                    "{allowedUsers}": "{allowedUsers}\n"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.\n",
                                    "{blockedUsers}": "{blockedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                },
                                "blockedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "permissionsEmoji": "{permissionsEmoji}"
                            },
                            "defaultVars": {
                                "permissionsEmoji": "<emoji name='ChannelPermissions'>"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/NothingChangedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/NothingChangedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  Nothing changed",
                            "description": "This is may occur when you try to change something that is not changeable or is the same as before.",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/StaffMemberEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/StaffMemberEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔑  Staff member",
                            "description": "**{staffMemberDisplayName}** holds a staff role of this server.\n\nStaff roles keep access to every dynamic channel whatever state its owner picks, so they cannot be blocked or kicked out of your channel.",
                            "color": 15548997,
                            "vars": {
                                "staffMemberDisplayName": "{staffMemberDisplayName}"
                            },
                            "defaultVars": {
                                "staffMemberDisplayName": "Example User"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  staffMemberDisplayName: args.staffMemberDisplayName ?? \"Unknown\"\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V3/DynamicChannelPermissionsAccessElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelPermissionsAccessEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 9,
                "withDefinition": 9,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleEditButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit ✏️",
                                "style": "secondary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardNextButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardNextButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Next ▶",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionEditButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit ✏️",
                                "style": "secondary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardNextButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardNextButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Next ▶",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/YesNoElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/YesButton",
                            "definition": {
                                "name": "VertixBot/UI-General/YesButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "👍 Yes",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/NoButton",
                            "definition": {
                                "name": "VertixBot/UI-General/NoButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "👎 No",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{editPrimaryMessageEmoji}  •  Edit title of your channel",
                            "description": "\n _Title_:\n `{title}`\n\n### Do you want to change it?",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "color": 4943761,
                            "options": {
                                "title": {
                                    "{titleDisplayValue}": "{titleValue}",
                                    "{titleDisplayDefault}": "༄ Manage your Dynamic Channel"
                                }
                            },
                            "vars": {
                                "title": "{title}",
                                "titleDisplayDefault": "{titleDisplayDefault}",
                                "titleDisplayValue": "{titleDisplayValue}",
                                "titleValue": "{titleValue}",
                                "editPrimaryMessageEmoji": "{editPrimaryMessageEmoji}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{editPrimaryMessageEmoji}  •  Edit description of your channel",
                            "description": "\n _Description_:\n `{description}`\n\n### Do you want to change it?",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "color": 4943761,
                            "options": {
                                "description": {
                                    "{descriptionDisplayValue}": "{descriptionValue}",
                                    "{descriptionDisplayDefault}": "Embrace the responsibility of overseeing your dynamic channel,diligently customizing it according to your discerning preferences.\n\nPlease be advised that the privilege to make alterations is vested solely of the channel owner."
                                }
                            },
                            "vars": {
                                "description": "{description}",
                                "descriptionDisplayDefault": "{descriptionDisplayDefault}",
                                "descriptionDisplayValue": "{descriptionDisplayValue}",
                                "descriptionValue": "{descriptionValue}",
                                "editPrimaryMessageEmoji": "{editPrimaryMessageEmoji}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{editPrimaryMessageEmoji}  •  Edit primary message of your channel",
                            "description": "\n _Current_:\n\n• Title: `{title}`\n\n• Description: `{description}`\n\n### Do you want to change it?",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "color": 4943761,
                            "vars": {
                                "editPrimaryMessageEmoji": "{editPrimaryMessageEmoji}",
                                "title": "{title}",
                                "description": "{description}"
                            },
                            "defaultVars": {
                                "editPrimaryMessageEmoji": "<emoji name='EditChannelMessage'>"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleModal",
            "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleModal",
                "title": "Edit title",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditModalTitle",
                        "label": "Title",
                        "style": "paragraph",
                        "minLength": 0,
                        "maxLength": 256
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionModal",
                "title": "Edit Description",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditModalDescription",
                        "label": "Description",
                        "style": "paragraph",
                        "minLength": 0,
                        "maxLength": 4000
                    }
                ]
            }
        ],
        "defaultElementsGroup": "VertixBot/UI-General/YesNoElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleEditButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit ✏️",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{editPrimaryMessageEmoji}  •  Edit title of your channel",
                            "description": "\n _Title_:\n `{title}`\n\n### Do you want to change it?",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "color": 4943761,
                            "options": {
                                "title": {
                                    "{titleDisplayValue}": "{titleValue}",
                                    "{titleDisplayDefault}": "༄ Manage your Dynamic Channel"
                                }
                            },
                            "vars": {
                                "title": "{title}",
                                "titleDisplayDefault": "{titleDisplayDefault}",
                                "titleDisplayValue": "{titleDisplayValue}",
                                "titleValue": "{titleValue}",
                                "editPrimaryMessageEmoji": "{editPrimaryMessageEmoji}"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditTitleModal",
                "title": "Edit title",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditModalTitle",
                        "label": "Title",
                        "style": "paragraph",
                        "minLength": 0,
                        "maxLength": 256
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionComponent/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionEditButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit ✏️",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionComponent/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{editPrimaryMessageEmoji}  •  Edit description of your channel",
                            "description": "\n _Description_:\n `{description}`\n\n### Do you want to change it?",
                            "image": "https://i.imgur.com/sGjDVJ4.png",
                            "color": 4943761,
                            "options": {
                                "description": {
                                    "{descriptionDisplayValue}": "{descriptionValue}",
                                    "{descriptionDisplayDefault}": "Embrace the responsibility of overseeing your dynamic channel,diligently customizing it according to your discerning preferences.\n\nPlease be advised that the privilege to make alterations is vested solely of the channel owner."
                                }
                            },
                            "vars": {
                                "description": "{description}",
                                "descriptionDisplayDefault": "{descriptionDisplayDefault}",
                                "descriptionDisplayValue": "{descriptionDisplayValue}",
                                "descriptionValue": "{descriptionValue}",
                                "editPrimaryMessageEmoji": "{editPrimaryMessageEmoji}"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditDescriptionModal",
                "title": "Edit Description",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelPrimaryMessageEditModalDescription",
                        "label": "Description",
                        "style": "paragraph",
                        "minLength": 0,
                        "maxLength": 4000
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelPrivacyComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrivacyMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelPrivacyMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelPrivacyMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "⛉ ∙ Select Privacy State",
                                "selectOptions": [
                                    {
                                        "label": "Public",
                                        "value": "public",
                                        "emoji": "🌐"
                                    },
                                    {
                                        "label": "Private",
                                        "value": "private",
                                        "emoji": "🚫"
                                    },
                                    {
                                        "label": "Hidden",
                                        "value": "hidden",
                                        "emoji": "🙈"
                                    }
                                ]
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelPrivacyEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelPrivacyEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{privacyEmoji}  Manage privacy of your channel",
                            "description": "**_State_**: `{state}`\n**_Intends_**: `{stateMessage}`\n\n**_Trusted Users_**:\n{allowedUsersDisplay}\n**_Blocked Users_**:\n{blockedUsersDisplay}\n-# Blocked Users cannot join your channel in any state.",
                            "footer": "Use the menu below to manage privacy state of your channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 4943761,
                            "options": {
                                "state": {
                                    "{statePublic}": "🌐 Public",
                                    "{statePrivate}": "🚫 Private",
                                    "{stateShown}": "🐵 Shown",
                                    "{stateHidden}": "🙈 Hidden"
                                },
                                "stateMessage": {
                                    "{stateMessagePublic}": "Everyone can join your channel.",
                                    "{stateMessagePrivate}": "Only trusted users can join your channel.",
                                    "{stateMessageShown}": "Everyone can see and join your channel.",
                                    "{stateMessageHidden}": "Only trusted users can see and join your channel."
                                },
                                "allowedUsersDisplay": {
                                    "{allowedUsersDefault}": "Currently there are no trusted users.\n",
                                    "{allowedUsers}": "{allowedUsers}\n"
                                },
                                "blockedUsersDisplay": {
                                    "{blockedUsersDefault}": "Currently there are no blocked users.\n",
                                    "{blockedUsers}": "{blockedUsers}\n"
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                },
                                "blockedUsers": {
                                    "format": "- <@{value}>{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "state": "{state}",
                                "stateMessage": "{stateMessage}",
                                "statePublic": "{statePublic}",
                                "statePrivate": "{statePrivate}",
                                "stateShown": "{stateShown}",
                                "stateHidden": "{stateHidden}",
                                "stateMessagePublic": "{stateMessagePublic}",
                                "stateMessagePrivate": "{stateMessagePrivate}",
                                "stateMessageShown": "{stateMessageShown}",
                                "stateMessageHidden": "{stateMessageHidden}",
                                "privacyEmoji": "{privacyEmoji}",
                                "allowedUsersDisplay": "{allowedUsersDisplay}",
                                "blockedUsersDisplay": "{blockedUsersDisplay}",
                                "allowedUsers": "{allowedUsers}",
                                "blockedUsers": "{blockedUsers}",
                                "allowedUsersDefault": "{allowedUsersDefault}",
                                "blockedUsersDefault": "{blockedUsersDefault}",
                                "value": "{value}",
                                "separator": "{separator}"
                            },
                            "defaultVars": {
                                "privacyEmoji": "<emoji name='ChannelPrivacy'>",
                                "statePublic": "public",
                                "statePrivate": "private",
                                "stateShown": "shown",
                                "stateHidden": "hidden",
                                "stateMessagePublic": "public",
                                "stateMessagePrivate": "private",
                                "stateMessageShown": "shown",
                                "stateMessageHidden": "hidden",
                                "allowedUsersDefault": "none",
                                "blockedUsersDefault": "none"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  switch (args.state) {\n    default:\n    case \"public\":\n      result.state = vars.statePublic;\n      result.stateMessage = vars.stateMessagePublic;\n      break;\n    case \"private\":\n      result.state = vars.statePrivate;\n      result.stateMessage = vars.stateMessagePrivate;\n      break;\n    case \"shown\":\n      result.state = vars.stateShown;\n      result.stateMessage = vars.stateMessageShown;\n      break;\n    case \"hidden\":\n      result.state = vars.stateHidden;\n      result.stateMessage = vars.stateMessageHidden;\n      break;\n  }\n  if (args.allowedUsers?.length) {\n    result.allowedUsers = args.allowedUsers?.map((user) => user.id);\n    result.allowedUsersDisplay = vars.allowedUsers;\n  } else\n    result.allowedUsersDisplay = vars.allowedUsersDefault;\n  if (args.blockedUsers?.length) {\n    result.blockedUsers = args.blockedUsers?.map((user) => user.id);\n    result.blockedUsersDisplay = vars.blockedUsers;\n  } else\n    result.blockedUsersDisplay = vars.blockedUsersDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V3/DynamicChannelPrivacyMenuGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelPrivacyEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelRegionComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelRegionElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelRegionSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelRegionSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "⌖ ∙ Select Region",
                                "selectOptions": [
                                    {
                                        "label": "Automatic",
                                        "value": "auto"
                                    },
                                    {
                                        "label": "Brazil",
                                        "value": "brazil"
                                    },
                                    {
                                        "label": "HongKong",
                                        "value": "hongkong"
                                    },
                                    {
                                        "label": "India",
                                        "value": "india"
                                    },
                                    {
                                        "label": "Japan",
                                        "value": "japan"
                                    },
                                    {
                                        "label": "Rotterdam",
                                        "value": "rotterdam"
                                    },
                                    {
                                        "label": "Russia",
                                        "value": "russia"
                                    },
                                    {
                                        "label": "Singapore",
                                        "value": "singapore"
                                    },
                                    {
                                        "label": "SouthAfrica",
                                        "value": "southafrica"
                                    },
                                    {
                                        "label": "Sydney",
                                        "value": "sydney"
                                    },
                                    {
                                        "label": "US Central",
                                        "value": "us-central"
                                    },
                                    {
                                        "label": "US East",
                                        "value": "us-east"
                                    },
                                    {
                                        "label": "US South",
                                        "value": "us-south"
                                    },
                                    {
                                        "label": "US West",
                                        "value": "us-west"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelBitrateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelBitrateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 ∙ Select Bitrate",
                                "selectOptions": [
                                    {
                                        "label": "Generator default",
                                        "value": "inherit"
                                    },
                                    {
                                        "label": "8 kbps",
                                        "value": "8000"
                                    },
                                    {
                                        "label": "16 kbps",
                                        "value": "16000"
                                    },
                                    {
                                        "label": "32 kbps",
                                        "value": "32000"
                                    },
                                    {
                                        "label": "64 kbps",
                                        "value": "64000"
                                    },
                                    {
                                        "label": "96 kbps",
                                        "value": "96000"
                                    },
                                    {
                                        "label": "128 kbps",
                                        "value": "128000"
                                    },
                                    {
                                        "label": "256 kbps",
                                        "value": "256000"
                                    },
                                    {
                                        "label": "384 kbps",
                                        "value": "384000"
                                    }
                                ]
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelRegionEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelRegionEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{regionEmoji}  Set voice region and quality for your channel",
                            "description": "-# The region determines the voice server's location.\n-# It should be the closest to all voice channel members.\n-# The recommended is `Automatic`\n-# A higher bitrate sounds better and asks more of everyone's connection.\n\nCurrent voice region: `{region}`\nCurrent bitrate: `{bitrate} kbps`",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 4943761,
                            "options": {
                                "region": {
                                    "{region-auto}": "Automatic",
                                    "{region-brazil}": "Brazil",
                                    "{region-hongkong}": "HongKong",
                                    "{region-india}": "India",
                                    "{region-japan}": "Japan",
                                    "{region-rotterdam}": "Rotterdam",
                                    "{region-russia}": "Russia",
                                    "{region-singapore}": "Singapore",
                                    "{region-southafrica}": "SouthAfrica",
                                    "{region-sydney}": "Sydney",
                                    "{region-us-central}": "US Central",
                                    "{region-us-east}": "US East",
                                    "{region-us-south}": "US South",
                                    "{region-us-west}": "US West"
                                }
                            },
                            "vars": {
                                "region": "{region}",
                                "bitrate": "{bitrate}",
                                "regionOptions": "{regionOptions}",
                                "regionEmoji": "{regionEmoji}",
                                "region-auto": "{region-auto}",
                                "region-brazil": "{region-brazil}",
                                "region-hongkong": "{region-hongkong}",
                                "region-india": "{region-india}",
                                "region-japan": "{region-japan}",
                                "region-rotterdam": "{region-rotterdam}",
                                "region-russia": "{region-russia}",
                                "region-singapore": "{region-singapore}",
                                "region-southafrica": "{region-southafrica}",
                                "region-sydney": "{region-sydney}",
                                "region-us-central": "{region-us-central}",
                                "region-us-east": "{region-us-east}",
                                "region-us-south": "{region-us-south}",
                                "region-us-west": "{region-us-west}"
                            },
                            "defaultVars": {
                                "regionEmoji": "<emoji name='ChannelRegion'>"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "async (args) => {\n  const result = {};\n  if (args.bitrate)\n    result.bitrate = args.bitrate;\n  if (args.region)\n    result.region = vars[`region-${args.region}`];\n  else\n    result.region = vars[\"region-auto\"];\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V3/DynamicChannelRegionElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelRegionEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelRenameComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelRenameBadwordEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelRenameBadwordEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙅  Failed to rename your channel",
                            "description": "The word `{badword}` has been classified as inappropriate by the server administrator.",
                            "color": 16738560,
                            "vars": {
                                "badword": "{badword}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  badword: args.badword\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelRenameLimitedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelRenameLimitedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙅 You renamed your channel too fast!",
                            "description": "Please wait `{elapsedTimeFormatFraction}` until the next rename{masterChannelMessage}",
                            "color": 16738560,
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "masterChannelMessage": {
                                    "{masterChannelId}": " or open a new channel: <#{masterChannelId}>",
                                    "{masterChannelMessageDefault}": ""
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "masterChannelId": "{masterChannelId}",
                                "masterChannelMessage": "{masterChannelMessage}",
                                "masterChannelMessageDefault": "{masterChannelMessageDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    },
                                    {
                                        "source": "(args) => {\n  const result = {};\n  if (args.masterChannelId) {\n    result.masterChannelId = args.masterChannelId;\n    result.masterChannelMessage = DYNAMIC_CHANNEL_RENAME_LIMITED_VARS.masterChannelId;\n  } else\n    result.masterChannelMessage = DYNAMIC_CHANNEL_RENAME_LIMITED_VARS.masterChannelMessageDefault;\n  return result;\n}",
                                        "binds": [
                                            "DYNAMIC_CHANNEL_RENAME_LIMITED_VARS"
                                        ]
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(Date.now() + args.retryAfter * 1000)"
                                }
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelRenameSuccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelRenameSuccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "✏️  Your channel's name has changed to '{channelName}'",
                            "color": 15248904,
                            "vars": {
                                "channelName": "{channelName}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  channelName: args.channelName\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V3/DynamicChannelRenameModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelRenameModal",
                "title": "Rename dynamic channel",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelRenameInput",
                        "label": "CHOOSE NAME FOR YOUR CHANNEL",
                        "placeholder": "",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 50
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelResetChannelComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelResetChannelButtonGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelResetChannelButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelResetChannelButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "labelOmitted": true,
                                "style": "secondary",
                                "emoji": "<emoji name='ResetChannel'>"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelResetChannelEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelResetChannelEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{resetEmoji}  Dynamic Channel has been reset to default settings! ",
                            "description": "Settings has been reset to default:\n\n- Name: **{name}** {nameChanged}\n- User limit: ✋**{userLimit}** {userLimitChanged}\n- State: {state} {stateChanged}\n- Visibility State: {visibilityState} {visibilityStateChanged}\n- Region: {region} {regionChanged}\n- Primary Message: {primaryMessageChanged}\n- Allowed Users: {allowedUsers} {allowedUsersChanged}\n- Blocked Users: {blockedUsers} {blockedUsersChanged}{rateLimited}",
                            "color": 8035517,
                            "options": {
                                "formatSecondUnits": {
                                    "unit": "second",
                                    "units": "seconds"
                                },
                                "formatMinuteUnits": {
                                    "unit": "minute",
                                    "units": "minutes"
                                },
                                "elapsedTimeFormat": {
                                    "minutes": "{elapsedTimeValue} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValue} {formatSecondUnits}"
                                },
                                "elapsedTimeFormatFraction": {
                                    "minutes": "{elapsedTimeValueFraction} {formatMinuteUnits}",
                                    "seconds": "{elapsedTimeValueFraction} {formatSecondUnits}"
                                },
                                "changedDisplay": "(__restored__)",
                                "unchangedDisplay": "(__unchanged__)",
                                "userLimit": {
                                    "{userLimitValue}": "{userLimitValue}",
                                    "{userLimitUnlimited}": "Unlimited"
                                },
                                "state": {
                                    "{statePublic}": "🌐 **Public**",
                                    "{statePrivate}": "🚫 **Private**"
                                },
                                "visibilityState": {
                                    "{visibilityStateShown}": "🐵 **Shown**",
                                    "{visibilityStateHidden}": "🙈 **Hidden**"
                                },
                                "rateLimited": {
                                    "{rateLimitedNone}": "",
                                    "{rateLimitedDisplay}": "\n\n⚠️ Renaming cannot be performed at the moment due to rate limit restrictions.\n\nPlease wait for {elapsedTimeFormatFraction} seconds or create a new channel instead."
                                }
                            },
                            "arrayOptions": {
                                "allowedUsers": {
                                    "format": "<@{value}>{separator}",
                                    "separator": ", "
                                },
                                "blockedUsers": {
                                    "format": "<@{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "elapsedTimeValue": "{elapsedTimeValue}",
                                "elapsedTimeValueFraction": "{elapsedTimeValueFraction}",
                                "elapsedTimeFormat": "{elapsedTimeFormat}",
                                "elapsedTimeFormatFraction": "{elapsedTimeFormatFraction}",
                                "formatMinuteUnits": "{formatMinuteUnits}",
                                "formatSecondUnits": "{formatSecondUnits}",
                                "separator": "{separator}",
                                "value": "{value}",
                                "changedDisplay": "{changedDisplay}",
                                "unchangedDisplay": "{unchangedDisplay}",
                                "name": "{name}",
                                "nameChanged": "{nameChanged}",
                                "userLimit": "{userLimit}",
                                "userLimitValue": "{userLimitValue}",
                                "userLimitUnlimited": "{userLimitUnlimited}",
                                "userLimitChanged": "{userLimitChanged}",
                                "state": "{state}",
                                "statePublic": "{statePublic}",
                                "statePrivate": "{statePrivate}",
                                "stateChanged": "{stateChanged}",
                                "visibilityState": "{visibilityState}",
                                "visibilityStateShown": "{visibilityStateShown}",
                                "visibilityStateHidden": "{visibilityStateHidden}",
                                "visibilityStateChanged": "{visibilityStateChanged}",
                                "region": "{region}",
                                "regionChanged": "{regionChanged}",
                                "primaryMessageChanged": "{primaryMessageChanged}",
                                "allowedUsers": "{allowedUsers}",
                                "allowedUsersChanged": "{allowedUsersChanged}",
                                "blockedUsers": "{blockedUsers}",
                                "blockedUsersChanged": "{blockedUsersChanged}",
                                "rateLimited": "{rateLimited}",
                                "rateLimitedNone": "{rateLimitedNone}",
                                "rateLimitedDisplay": "{rateLimitedDisplay}",
                                "resetEmoji": "{resetEmoji}"
                            },
                            "defaultVars": {
                                "name": "My Channel",
                                "nameChanged": "(__unchanged__)",
                                "userLimit": "Unlimited",
                                "userLimitChanged": "(__unchanged__)",
                                "state": "🌐 **Public**",
                                "stateChanged": "(__unchanged__)",
                                "visibilityState": "🐵 **Shown**",
                                "visibilityStateChanged": "(__unchanged__)",
                                "region": "Automatic",
                                "regionChanged": "(__unchanged__)",
                                "primaryMessageChanged": "(__unchanged__)",
                                "allowedUsers": "None",
                                "allowedUsersChanged": "(__unchanged__)",
                                "blockedUsers": "None",
                                "blockedUsersChanged": "(__unchanged__)",
                                "rateLimited": "",
                                "resetEmoji": "<emoji name='ResetChannel'>"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "getElapsedTimeLogic(args) {\n    const result = {\n      formatMinuteUnits: null,\n      formatSecondUnits: null\n    }, timeValue = this.getEndTime(args).getTime() - Date.now();\n    if (timeValue <= 60000) {\n      result.elapsedTimeValue = Math.max(0, Math.floor(timeValue / 1000));\n      result.elapsedTimeFormat = \"seconds\";\n      result.elapsedTimeValueFraction = result.elapsedTimeValue;\n      result.formatSecondUnits = result.elapsedTimeValue > 1 ? \"units\" : \"unit\";\n    } else {\n      const minutes = Math.floor(timeValue / 1000 / 60), seconds = Math.floor(timeValue / 1000 % 60);\n      if (seconds > 0) {\n        const fraction = Math.ceil(seconds / 6);\n        result.elapsedTimeValueFraction = parseFloat(`${minutes}.${fraction > 9 ? 9 : fraction}`);\n      } else\n        result.elapsedTimeValueFraction = minutes;\n      result.elapsedTimeValue = minutes;\n      result.elapsedTimeFormat = \"minutes\";\n      result.formatMinuteUnits = result.elapsedTimeValueFraction > 1 ? \"units\" : \"unit\";\n    }\n    result.elapsedTimeFormatFraction = result.elapsedTimeFormat;\n    return result;\n  }"
                                    },
                                    {
                                        "source": "(args) => {\n  const {\n    changedDisplay,\n    unchangedDisplay,\n    userLimitUnlimited,\n    userLimitValue,\n    statePublic,\n    statePrivate,\n    visibilityStateShown,\n    visibilityStateHidden,\n    rateLimitedNone,\n    rateLimitedDisplay\n  } = vars, { newState, oldState } = args, primaryMessageChanged = () => {\n    const oldMessage = (oldState?.primaryMessageTitle || \"\") + (oldState?.primaryMessageDescription || \"\");\n    return (newState?.primaryMessageTitle || \"\") + (newState?.primaryMessageDescription || \"\") !== oldMessage ? changedDisplay : unchangedDisplay;\n  };\n  return {\n    name: newState?.name ?? null,\n    nameChanged: newState?.name !== oldState?.name ? changedDisplay : unchangedDisplay,\n    userLimit: newState?.userLimit === 0 ? userLimitUnlimited : userLimitValue,\n    userLimitChanged: newState?.userLimit !== oldState?.userLimit ? changedDisplay : unchangedDisplay,\n    userLimitValue: newState?.userLimit ?? 0,\n    state: newState?.state === \"public\" ? statePublic : statePrivate,\n    stateChanged: newState?.state !== oldState?.state ? changedDisplay : unchangedDisplay,\n    visibilityState: newState?.visibilityState === \"shown\" ? visibilityStateShown : visibilityStateHidden,\n    visibilityStateChanged: newState?.visibilityState !== oldState?.visibilityState ? changedDisplay : unchangedDisplay,\n    region: newState?.region ?? null,\n    regionChanged: newState?.region !== oldState?.region ? changedDisplay : unchangedDisplay,\n    primaryMessageChanged: primaryMessageChanged(),\n    allowedUsers: newState?.allowedUserIds ?? [],\n    allowedUsersChanged: JSON.stringify(newState?.allowedUserIds) !== JSON.stringify(oldState?.allowedUserIds) ? changedDisplay : unchangedDisplay,\n    blockedUsers: newState?.blockedUserIds ?? [],\n    blockedUsersChanged: JSON.stringify(newState?.blockedUserIds) !== JSON.stringify(oldState?.blockedUserIds) ? changedDisplay : unchangedDisplay,\n    rateLimited: args.rateLimitRetryAfter ? rateLimitedDisplay : rateLimitedNone\n  };\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ],
                                "endTime": {
                                    "source": "(args) => new Date(Date.now() + (args.rateLimitRetryAfter || 30000) * 1000)"
                                }
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/TopGGVoteEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/TopGGVoteEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👑 Vote for us to unlock this feature!",
                            "description": "This is a premium feature, but you can unlock it for free! [**Vote for us on top.gg!**]({voteUrl})",
                            "color": 15844367,
                            "vars": {
                                "voteUrl": "{voteUrl}"
                            },
                            "defaultVars": {
                                "voteUrl": "https://top.gg/bot/1538844311062581339/vote"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V3/DynamicChannelResetChannelButtonGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelResetChannelEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelStatusComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelStatusBadwordEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelStatusBadwordEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Failed to set your channel's status",
                            "description": "The word `{badword}` has been classified as inappropriate by the server administrator.",
                            "color": 16738560,
                            "vars": {
                                "badword": "{badword}"
                            },
                            "defaultVars": {
                                "badword": "example"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  badword: args.badword\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelStatusClearedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelStatusClearedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Your channel's status is automatic again",
                            "description": "It now shows '{channelStatus}' and updates itself as the channel changes.",
                            "color": 3369963,
                            "vars": {
                                "channelStatus": "{channelStatus}"
                            },
                            "defaultVars": {
                                "channelStatus": "Valorant · 3/5"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  channelStatus: args.channelStatus\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelStatusSuccessEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelStatusSuccessEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Your channel's status is now '{channelStatus}'",
                            "description": "It stays until you clear it, submit an empty status to go back to automatic.",
                            "color": 16766720,
                            "vars": {
                                "channelStatus": "{channelStatus}"
                            },
                            "defaultVars": {
                                "channelStatus": "Ranked grind, need two"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  channelStatus: args.channelStatus\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V3/DynamicChannelStatusModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelStatusModal",
                "title": "Set dynamic channel status",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelStatusInput",
                        "label": "WHAT IS HAPPENING IN YOUR CHANNEL",
                        "placeholder": "",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 128
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 3,
                "withDefinition": 3,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelTemplatesComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesCaptureButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesCaptureButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Capture Template",
                                "style": "secondary",
                                "emoji": "<emoji name='Capture'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesApplyButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesApplyButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Apply Template",
                                "style": "secondary",
                                "emoji": "<emoji name='ChannelTemplates'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesManageButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesManageButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Delete",
                                "style": "secondary",
                                "emoji": "<emoji name='Close'>"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesApplyElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesApplySelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesApplySelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "📂 Select a template to apply..."
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesBackButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesApplyConfirmElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesApplySelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesApplySelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "📂 Select a template to apply..."
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesApplyConfirmButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesApplyConfirmButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Apply Selected",
                                "style": "success",
                                "emoji": "<emoji name='ChannelTemplates'>"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesBackButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesManageElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesDeleteSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesDeleteSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🗑️ Select a template to delete..."
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesBackButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesManageConfirmElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesDeleteSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesDeleteSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🗑️ Select a template to delete..."
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesDeleteConfirmButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesDeleteConfirmButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Confirm Delete",
                                "style": "danger"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTemplatesBackButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTemplatesBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelTemplatesEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{templatesEmoji}  Channel Templates",
                            "description": "Save your current channel configuration as a template and apply it later with one click.\n\n**Templates**: `{templatesCount}/{maxTemplates}`\n\n{templatesListDisplay}",
                            "footer": "Use the buttons below to manage your templates.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 5793266,
                            "options": {
                                "templatesListDisplay": {
                                    "{templatesListDefault}": "-# You don't have any saved templates yet.",
                                    "{templatesList}": "**Your Templates:**\n{templatesList}"
                                }
                            },
                            "arrayOptions": {
                                "templatesList": {
                                    "format": "- {value}{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "templatesEmoji": "{templatesEmoji}",
                                "templatesCount": "{templatesCount}",
                                "maxTemplates": "{maxTemplates}",
                                "templatesList": "{templatesList}",
                                "templatesListDisplay": "{templatesListDisplay}",
                                "templatesListDefault": "{templatesListDefault}",
                                "value": "{value}",
                                "separator": "{separator}"
                            },
                            "defaultVars": {
                                "templatesEmoji": "<emoji name='ChannelTemplates'>"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  result.templatesCount = args.templates?.length ?? 0;\n  result.maxTemplates = args.maxTemplates ?? 5;\n  if (args.templates?.length) {\n    result.templatesList = args.templates.map((t) => t.name);\n    result.templatesListDisplay = vars.templatesList;\n  } else\n    result.templatesListDisplay = vars.templatesListDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesSavedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelTemplatesSavedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{templatesEmoji}  Template Saved!",
                            "description": "Your template **\"{templateName}\"** has been saved successfully!\n\n**Templates**: `{templatesCount}/{maxTemplates}`\n\n{templatesListDisplay}\n-# You can apply this template anytime using the **Apply Template** button.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 5763719,
                            "options": {
                                "templatesListDisplay": {
                                    "{templatesListDefault}": "",
                                    "{templatesList}": "**Your Templates:**\n{templatesList}\n"
                                }
                            },
                            "arrayOptions": {
                                "templatesList": {
                                    "format": "- {value}{separator}",
                                    "separator": "\n"
                                }
                            },
                            "vars": {
                                "templatesEmoji": "{templatesEmoji}",
                                "templateName": "{templateName}",
                                "templatesCount": "{templatesCount}",
                                "maxTemplates": "{maxTemplates}",
                                "templatesList": "{templatesList}",
                                "templatesListDisplay": "{templatesListDisplay}",
                                "templatesListDefault": "{templatesListDefault}",
                                "value": "{value}",
                                "separator": "{separator}"
                            },
                            "defaultVars": {
                                "templatesEmoji": "<emoji name='ChannelTemplates'>"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const result = {};\n  result.templateName = args.templateName ?? \"Unknown\";\n  result.templatesCount = args.templates?.length ?? 0;\n  result.maxTemplates = args.maxTemplates ?? 5;\n  if (args.templates?.length) {\n    result.templatesList = args.templates.map((t) => t.name);\n    result.templatesListDisplay = vars.templatesList;\n  } else\n    result.templatesListDisplay = vars.templatesListDefault;\n  return result;\n}",
                                        "binds": [
                                            "vars"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesAppliedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelTemplatesAppliedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{templatesEmoji}  Template Applied!",
                            "description": "Template **\"{templateName}\"** has been applied to your channel!\n\n**Applied Settings:**\n{appliedSettings}\n\n-# Note: Channel name changes may take a moment due to rate limits.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 5763719,
                            "vars": {
                                "templatesEmoji": "{templatesEmoji}",
                                "templateName": "{templateName}",
                                "appliedSettings": "{appliedSettings}",
                                "labelName": "{labelName}",
                                "labelLimit": "{labelLimit}",
                                "labelPrivacy": "{labelPrivacy}",
                                "labelVisibility": "{labelVisibility}",
                                "labelRegion": "{labelRegion}",
                                "labelUnlimited": "{labelUnlimited}",
                                "labelAutomatic": "{labelAutomatic}",
                                "labelUnknown": "{labelUnknown}",
                                "labelNoSettings": "{labelNoSettings}"
                            },
                            "defaultVars": {
                                "templatesEmoji": "<emoji name='ChannelTemplates'>",
                                "labelName": "- **Name**:",
                                "labelLimit": "- **Limit**:",
                                "labelPrivacy": "- **Privacy**:",
                                "labelVisibility": "- **Visibility**:",
                                "labelRegion": "- **Region**:",
                                "labelUnlimited": "Unlimited",
                                "labelAutomatic": "Automatic",
                                "labelUnknown": "Unknown",
                                "labelNoSettings": "No settings applied"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, v) => {\n  const config = args.appliedTemplate?.config, settings = [];\n  if (config) {\n    if (config.nameTemplate)\n      settings.push(`${v.labelName} ${config.nameTemplate}`);\n    if (config.userLimit !== void 0)\n      settings.push(`${v.labelLimit} ${config.userLimit === 0 ? v.labelUnlimited : config.userLimit}`);\n    if (config.state)\n      settings.push(`${v.labelPrivacy} ${config.state}`);\n    if (config.visibilityState)\n      settings.push(`${v.labelVisibility} ${config.visibilityState}`);\n    if (typeof config.region === \"string\" && config.region.length)\n      settings.push(`${v.labelRegion} ${config.region === \"auto\" ? v.labelAutomatic : config.region}`);\n  }\n  return {\n    templateName: args.appliedTemplate?.name ?? v.labelUnknown,\n    appliedSettings: settings.length > 0 ? settings.join(`\n`) : v.labelNoSettings\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesManageEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelTemplatesManageEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "{templatesEmoji}  Manage Templates",
                            "description": "Select a template from the menu below to delete it.\n\n**Templates**: `{templatesCount}/{maxTemplates}`\n\n-# ⚠️ This action cannot be undone.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 16705372,
                            "vars": {
                                "templatesEmoji": "{templatesEmoji}",
                                "templatesCount": "{templatesCount}",
                                "maxTemplates": "{maxTemplates}"
                            },
                            "defaultVars": {
                                "templatesEmoji": "<emoji name='Close'>"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  templatesCount: args.templates?.length ?? 0,\n  maxTemplates: args.maxTemplates ?? 5\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesDeletedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelTemplatesDeletedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🗑️  Template Deleted",
                            "description": "Template **\"{templateName}\"** has been deleted.\n\n**Templates**: `{templatesCount}/{maxTemplates}`",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 15548997,
                            "vars": {
                                "templatesEmoji": "{templatesEmoji}",
                                "templateName": "{templateName}",
                                "templatesCount": "{templatesCount}",
                                "maxTemplates": "{maxTemplates}"
                            },
                            "defaultVars": {
                                "templatesEmoji": "<emoji name='Close'>"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  templateName: args.deletedTemplateName ?? \"Unknown\",\n  templatesCount: args.templates?.length ?? 0,\n  maxTemplates: args.maxTemplates ?? 5\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-V3/DynamicChannelTemplatesSaveModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelTemplatesSaveModal",
                "title": "Save Template",
                "inputs": [
                    {
                        "name": "VertixBot/UI-V3/DynamicChannelTemplatesSaveInput",
                        "label": "TEMPLATE NAME",
                        "placeholder": "Enter a name for your template...",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 32
                    }
                ]
            }
        ],
        "defaultElementsGroup": "VertixBot/UI-V3/DynamicChannelTemplatesElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/DynamicChannelTemplatesEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 5,
                "withDefinition": 5,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/DynamicChannelTransferOwnerComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelTransferOwnerUserMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/DynamicChannelTransferOwnerUserMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/DynamicChannelTransferOwnerUserMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🔀 Select User"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-General/YesNoElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/YesButton",
                            "definition": {
                                "name": "VertixBot/UI-General/YesButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "👍 Yes",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/NoButton",
                            "definition": {
                                "name": "VertixBot/UI-General/NoButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "👎 No",
                                "style": "secondary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/DynamicChannelTransferOwnerEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelTransferOwnerEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔀  Transfer channel ownership",
                            "description": "Transfer channel ownership to another user.\n\nSelect the user to whom you want to transfer the channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTransferOwnerUserSelectedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelTransferOwnerUserSelectedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔀  Transfer channel ownership",
                            "description": "Transfer channel ownership to {userDisplayName}.\n\n⚠️ By transferring the channel ownership to another user, you will lose your ownership privileges.\n\nAre you sure you want to transfer the channel ownership to **{userDisplayName}?**",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963,
                            "vars": {
                                "userDisplayName": "{userDisplayName}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  userDisplayName: args.userDisplayName\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/DynamicChannelTransferOwnerTransferredEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/DynamicChannelTransferOwnerTransferredEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔀  Transfer channel ownership succeeded!",
                            "description": "You are no longer the owner of this channel.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "color": 3369963
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/DisabledWhileClaimEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/DisabledWhileClaimEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "😈 The action is disabled",
                            "description": "The action is disabled while the claim is in progress.\n\nPlease wait until the claim is completed.",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/ChoiceExpiredEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/ChoiceExpiredEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "⌛ That choice expired",
                            "description": "Nothing was changed.\n\nStart over to pick again.",
                            "color": 16705372
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 6,
                "withDefinition": 6,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/ScalingSetupEditComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/ScalingSetupEditElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/ScalingSetupEditConfigButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/ScalingSetupEditConfigButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit Settings",
                                "style": "primary",
                                "emoji": "⚙️"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DoneButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DoneButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✓ Done",
                                "style": "success"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/DeleteButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DeleteButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Delete",
                                "style": "danger"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/ScalingSetupEditEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/ScalingSetupEditEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "📈  Auto-Scaling Channels #{scalingIndex}",
                            "description": "Configure your auto-scaling voice channels.\n\n➤ ∙ Master Channel: <#{masterChannelId}>\n➤ ∙ Channel ID: `{masterChannelId}`\n➤ ∙ Prefix: `{scalingPrefix}`\n➤ ∙ Max Members: `{scalingMaxMembers}`\n\nPlaceholder: `{index}`\n",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "vars": {
                                "scalingIndex": "{scalingIndex}",
                                "masterChannelId": "{masterChannelId}",
                                "scalingPrefix": "{scalingPrefix}",
                                "scalingMaxMembers": "{scalingMaxMembers}"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/SetupScalingConfigModal",
            "VertixBot/UI-General/DeleteConfirmModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/SetupScalingConfigModal",
                "title": "📈 Configure Scaling Channel",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/SetupScalingPrefixInput",
                        "label": "Channel Name Prefix",
                        "placeholder": "### Room - {index} ###",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 50
                    },
                    {
                        "name": "VertixBot/UI-General/SetupScalingMaxMembersInput",
                        "label": "Max Members Per Channel",
                        "placeholder": "10",
                        "style": "short",
                        "minLength": 1,
                        "maxLength": 3
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/DeleteConfirmModal",
                "title": "Confirm deletion",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/DeleteConfirmInput",
                        "label": "TYPE DELETE TO CONFIRM",
                        "placeholder": "DELETE",
                        "style": "short",
                        "minLength": 6,
                        "maxLength": 6
                    }
                ]
            }
        ],
        "defaultElementsGroup": "VertixBot/UI-V3/ScalingSetupEditElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/ScalingSetupEditEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/ConfigComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupEditElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/SetupEditSelectEditOptionMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/SetupEditSelectEditOptionMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "◎ ∙ Select Edit Option",
                                "selectOptions": [
                                    {
                                        "label": "∙ Edit Channel's Name",
                                        "value": "edit-dynamic-channel-name",
                                        "emoji": "#️⃣"
                                    },
                                    {
                                        "label": "∙ Edit Channel's Buttons",
                                        "value": "edit-dynamic-channel-buttons",
                                        "emoji": "🎚"
                                    },
                                    {
                                        "label": "∙ Edit Channel's Verified Roles",
                                        "value": "edit-dynamic-channel-verified-roles",
                                        "emoji": "🛡️"
                                    },
                                    {
                                        "label": "∙ Edit Channel's Staff Roles",
                                        "value": "edit-dynamic-channel-staff-roles",
                                        "emoji": "🔑"
                                    },
                                    {
                                        "label": "∙ Edit Channel's Voice Role",
                                        "value": "edit-dynamic-channel-voice-role",
                                        "emoji": "🎙️"
                                    },
                                    {
                                        "label": "∙ Edit Privacy State",
                                        "value": "edit-dynamic-channel-default-privacy",
                                        "emoji": "🛡️"
                                    },
                                    {
                                        "label": "∙ Edit User Limit",
                                        "value": "edit-dynamic-channel-default-user-limit",
                                        "emoji": "✋"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelMentionableLabel": "@ ∙ Mention user in primary message",
                                    "dynamicChannelAutoSaveLabel": "⫸ ∙ Auto save dynamic channel",
                                    "dynamicChannelAutoStatusLabel": "📢 ∙ Automatic channel status",
                                    "dynamicChannelLogsChannelLabel": "❯❯ ∙ Send logs to custom channel"
                                },
                                "placeholder": "⌘ ∙ Configuration",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelMentionableLabel} {state}",
                                        "value": "dynamicChannelMentionable:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoSaveLabel} {state}",
                                        "value": "dynamicChannelAutoSave:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoStatusLabel} {state}",
                                        "value": "dynamicChannelAutoStatus:0"
                                    },
                                    {
                                        "label": "{dynamicChannelLogsChannelLabel} {state}",
                                        "value": "dynamicChannelLogsChannel:0"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/LogChannelSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/LogChannelSelectMenu",
                                "elementType": "channel-select",
                                "instanceType": "Dynamic",
                                "placeholder": "❯❯ ∙ Logs-Channel"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DoneButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DoneButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✓ Done",
                                "style": "success"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/DeleteButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DeleteButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Delete",
                                "style": "danger"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditButtonsElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/SetupEditButtonsScopeSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/SetupEditButtonsScopeSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 Editing",
                                "header": "Editing",
                                "selectOptions": [
                                    {
                                        "label": "Default buttons",
                                        "value": "default",
                                        "emoji": "🌐"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/SetupEditButtonsRoleSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/SetupEditButtonsRoleSelectMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "➕ Give a role its own buttons",
                                "header": "Role Overrides"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/ChannelButtonsTemplateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/ChannelButtonsTemplateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 Select Buttons",
                                "header": "Buttons In This Set",
                                "selectOptions": [
                                    {
                                        "label": "Rename",
                                        "value": "rename",
                                        "emoji": "<emoji name='ChannelRename'>"
                                    },
                                    {
                                        "label": "Limit",
                                        "value": "limit",
                                        "emoji": "<emoji name='UserLimit'>"
                                    },
                                    {
                                        "label": "Access",
                                        "value": "access",
                                        "emoji": "<emoji name='ChannelPermissions'>"
                                    },
                                    {
                                        "label": "Invite",
                                        "value": "invite",
                                        "emoji": "<emoji name='InviteChannel'>"
                                    },
                                    {
                                        "label": "Privacy",
                                        "value": "privacy",
                                        "emoji": "<emoji name='ChannelPrivacy'>"
                                    },
                                    {
                                        "label": "Region",
                                        "value": "region",
                                        "emoji": "<emoji name='ChannelRegion'>"
                                    },
                                    {
                                        "label": "Edit Primary Message",
                                        "value": "edit-primary-message",
                                        "emoji": "<emoji name='EditChannelMessage'>"
                                    },
                                    {
                                        "label": "Clear Chat",
                                        "value": "clear-chat",
                                        "emoji": "<emoji name='ClearChat'>"
                                    },
                                    {
                                        "label": "Reset",
                                        "value": "rest-channel",
                                        "emoji": "<emoji name='ResetChannel'>"
                                    },
                                    {
                                        "label": "Transfer",
                                        "value": "transfer",
                                        "emoji": "<emoji name='TransferChannel'>"
                                    },
                                    {
                                        "label": "Templates",
                                        "value": "templates",
                                        "emoji": "<emoji name='ChannelTemplates'>"
                                    },
                                    {
                                        "label": "Status",
                                        "value": "status",
                                        "emoji": "<emoji name='Megaphone'>"
                                    },
                                    {
                                        "label": "Knock",
                                        "value": "knock",
                                        "emoji": "<emoji name='KnockChannel'>"
                                    },
                                    {
                                        "label": "LFM",
                                        "value": "lfm",
                                        "emoji": "<emoji name='LfmChannel'>"
                                    },
                                    {
                                        "label": "Claim",
                                        "value": "claim-button",
                                        "emoji": "<emoji name='ClaimChannel'>"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/SetupEditButtonsClearRoleOverrideButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/SetupEditButtonsClearRoleOverrideButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Use The Default For This Role",
                                "style": "secondary",
                                "emoji": "↩️"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/SetupEditButtonsUpdateExistingButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/SetupEditButtonsUpdateExistingButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Update Existing Channels",
                                "style": "success",
                                "emoji": "🔄"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditVerifiedRolesElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Verified Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelIncludeEveryoneRoleLabel": "Include everyone role"
                                },
                                "placeholder": "🛡️ ∙ Everyone role",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelIncludeEveryoneRoleLabel} {state}",
                                        "value": "dynamicChannelIncludeEveryoneRole:1",
                                        "emoji": "🛡️"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditStaffRolesElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/StaffRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/StaffRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🔑 ∙ Select Staff Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditVoiceRoleElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VoiceRoleMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VoiceRoleMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🎙️ ∙ Select Voice Role"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditDefaultPrivacyElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/DefaultPrivacyStateMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/DefaultPrivacyStateMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Privacy State",
                                "selectOptions": [
                                    {
                                        "label": "∙ Public",
                                        "value": "public",
                                        "emoji": "🌐",
                                        "description": "Anyone in the audience can see and join"
                                    },
                                    {
                                        "label": "∙ Private",
                                        "value": "private",
                                        "emoji": "🚫",
                                        "description": "Visible, but only the owner lets people in"
                                    },
                                    {
                                        "label": "∙ Hidden",
                                        "value": "hidden",
                                        "emoji": "🙈",
                                        "description": "Not visible at all until the owner shows it"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DefaultPrivacyResetButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DefaultPrivacyResetButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Reset To Default",
                                "style": "secondary",
                                "emoji": "🔃"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditDefaultUserLimitElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/DefaultUserLimitMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/DefaultUserLimitMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "✋ ∙ Select User Limit",
                                "selectOptions": [
                                    {
                                        "label": "∙ No limit",
                                        "value": "0"
                                    },
                                    {
                                        "label": "∙ 2 users",
                                        "value": "2"
                                    },
                                    {
                                        "label": "∙ 3 users",
                                        "value": "3"
                                    },
                                    {
                                        "label": "∙ 4 users",
                                        "value": "4"
                                    },
                                    {
                                        "label": "∙ 5 users",
                                        "value": "5"
                                    },
                                    {
                                        "label": "∙ 6 users",
                                        "value": "6"
                                    },
                                    {
                                        "label": "∙ 8 users",
                                        "value": "8"
                                    },
                                    {
                                        "label": "∙ 10 users",
                                        "value": "10"
                                    },
                                    {
                                        "label": "∙ 15 users",
                                        "value": "15"
                                    },
                                    {
                                        "label": "∙ 20 users",
                                        "value": "20"
                                    },
                                    {
                                        "label": "∙ 25 users",
                                        "value": "25"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DefaultUserLimitInheritButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DefaultUserLimitInheritButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Copy Generator Channel",
                                "style": "secondary",
                                "emoji": "🔃"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupEditEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupEditEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔧  Configure Master Channel #{index}",
                            "description": "Configure master channel according to your preferences.\n\n**_🎛️ General_**\n\n➤ ∙ Name: <#{masterChannelId}>\n➤ ∙ Channel ID: `{masterChannelId}`\n➤ ∙ Dynamic Channels Name: `{dynamicChannelNameTemplate}`\n➤ ∙ New Channel Privacy: {newChannelPrivacy}\n➤ ∙ New Channel Limit: {newChannelLimit}\n➤ ∙ Logs Channel: {dynamicChannelLogsChannelDisplay}\n\n**_🎚 Buttons Interface_**\n\n{dynamicChannelButtonsTemplate}\n\n**_🛡️ Verified Roles_**\n\n▹ {verifiedRolesDisplay}\n\n**_🔑 Staff Roles_**\n\n▹ {staffRolesDisplay}\n\n**_🎙️ Voice Role_**\n\n▹ {voiceRoleDisplay}\n\n**_⚙️ Configuration_**\n\n@ ∙ Mention user in primary message: {configUserMention}\n⫸ ∙ Auto save dynamic channels: {configAutoSave}\n📢 ∙ Automatic channel status: {configAutoStatus}\n❯❯ ∙ Send logs to custom channel: {configLogs}\n▥ ∙ Auto create control panel channel: {configControlChannelAutoCreate}\n\n",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "on": "`🟢∙On`",
                                "off": "`🔴∙Off`",
                                "dynamicChannelLogsChannelDisplay": {
                                    "{dynamicChannelLogsChannelDefault}": "**None**",
                                    "{dynamicChannelLogsChannelSelected}": "<#{dynamicChannelLogsChannelId}>"
                                },
                                "configUserMention": {
                                    "{configUserMentionEnabled}": "{on}",
                                    "{configUserMentionDisabled}": "{off}"
                                },
                                "configAutoSave": {
                                    "{configAutoSaveEnabled}": "{on}",
                                    "{configAutoSaveDisabled}": "{off}"
                                },
                                "configAutoStatus": {
                                    "{configAutoStatusEnabled}": "{on}",
                                    "{configAutoStatusDisabled}": "{off}"
                                },
                                "configLogs": {
                                    "{configLogsEnabled}": "{on}",
                                    "{configLogsDisabled}": "{off}"
                                },
                                "configControlChannelAutoCreate": {
                                    "{configControlChannelAutoCreateEnabled}": "{on}",
                                    "{configControlChannelAutoCreateDisabled}": "{off}"
                                },
                                "verifiedRolesDisplay": {
                                    "{verifiedRoles}": "{verifiedRoles}",
                                    "{verifiedRolesGuild}": "{verifiedRoles} *(from the server options)*"
                                },
                                "staffRolesDisplay": {
                                    "{staffRoles}": "{staffRoles}",
                                    "{staffRolesGuild}": "{staffRoles} *(from the server options)*",
                                    "{staffRolesNone}": "**None** *(from the server options)*"
                                },
                                "newChannelLimit": {
                                    "{newChannelLimitUnlimited}": "No limit",
                                    "{newChannelLimitValue}": "{newChannelLimitCount} users"
                                },
                                "newChannelPrivacy": {
                                    "{privacyPublic}": "🌐 Public",
                                    "{privacyPrivate}": "🚫 Private",
                                    "{privacyHidden}": "🙈 Hidden"
                                },
                                "voiceRoleDisplay": {
                                    "{voiceRoleId}": "<@&{voiceRoleId}>",
                                    "{voiceRoleGuild}": "<@&{voiceRoleId}> *(from the server options)*",
                                    "{voiceRoleNone}": "**None** *(from the server options)*"
                                }
                            },
                            "arrayOptions": {
                                "verifiedRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                },
                                "staffRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "on": "{on}",
                                "off": "{off}",
                                "index": "{index}",
                                "masterChannelId": "{masterChannelId}",
                                "configUserMention": "{configUserMention}",
                                "configUserMentionEnabled": "{configUserMentionEnabled}",
                                "configUserMentionDisabled": "{configUserMentionDisabled}",
                                "configAutoSave": "{configAutoSave}",
                                "configAutoSaveEnabled": "{configAutoSaveEnabled}",
                                "configAutoSaveDisabled": "{configAutoSaveDisabled}",
                                "configAutoStatus": "{configAutoStatus}",
                                "configAutoStatusEnabled": "{configAutoStatusEnabled}",
                                "configAutoStatusDisabled": "{configAutoStatusDisabled}",
                                "configLogs": "{configLogs}",
                                "configLogsEnabled": "{configLogsEnabled}",
                                "configLogsDisabled": "{configLogsDisabled}",
                                "configControlChannelAutoCreate": "{configControlChannelAutoCreate}",
                                "configControlChannelAutoCreateEnabled": "{configControlChannelAutoCreateEnabled}",
                                "configControlChannelAutoCreateDisabled": "{configControlChannelAutoCreateDisabled}",
                                "dynamicChannelNameTemplate": "{dynamicChannelNameTemplate}",
                                "dynamicChannelLogsChannelId": "{dynamicChannelLogsChannelId}",
                                "dynamicChannelLogsChannelDefault": "{dynamicChannelLogsChannelDefault}",
                                "dynamicChannelLogsChannelSelected": "{dynamicChannelLogsChannelSelected}",
                                "dynamicChannelLogsChannelDisplay": "{dynamicChannelLogsChannelDisplay}",
                                "dynamicChannelButtonsTemplate": "{dynamicChannelButtonsTemplate}",
                                "verifiedRoles": "{verifiedRoles}",
                                "verifiedRolesDisplay": "{verifiedRolesDisplay}",
                                "verifiedRolesGuild": "{verifiedRolesGuild}",
                                "staffRoles": "{staffRoles}",
                                "staffRolesDisplay": "{staffRolesDisplay}",
                                "staffRolesGuild": "{staffRolesGuild}",
                                "staffRolesNone": "{staffRolesNone}",
                                "voiceRoleId": "{voiceRoleId}",
                                "voiceRoleDisplay": "{voiceRoleDisplay}",
                                "voiceRoleGuild": "{voiceRoleGuild}",
                                "voiceRoleNone": "{voiceRoleNone}",
                                "newChannelPrivacy": "{newChannelPrivacy}",
                                "privacyPublic": "{privacyPublic}",
                                "privacyPrivate": "{privacyPrivate}",
                                "privacyHidden": "{privacyHidden}",
                                "newChannelLimit": "{newChannelLimit}",
                                "newChannelLimitCount": "{newChannelLimitCount}",
                                "newChannelLimitUnlimited": "{newChannelLimitUnlimited}",
                                "newChannelLimitValue": "{newChannelLimitValue}",
                                "labelDefaultSettings": "{labelDefaultSettings}",
                                "labelRoleOverride": "{labelRoleOverride}",
                                "labelButtonPrefix": "{labelButtonPrefix}",
                                "labelButtonNone": "{labelButtonNone}"
                            },
                            "defaultVars": {
                                "labelDefaultSettings": "**Default Settings**",
                                "labelRoleOverride": "**Role Override:",
                                "labelButtonPrefix": "> -",
                                "labelButtonNone": "> - *None*"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditButtonsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupEditButtonsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎚  Buttons Of Master Channel #{index}",
                            "description": "{scopeDisplay}\n\n{listHeadingDisplay}\n{buttonsList}\n\n{rosterHeading}\n{rosterDisplay}\n\n{hintDisplay}",
                            "footer": "Every pick is saved straight away. Channels that are already open keep their buttons until you press Update Existing Channels.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "buttonsNone": "> - *None. Owners would see a panel with no buttons on it.*",
                                "rosterHeading": "**Roles with buttons of their own**",
                                "rosterButtonsWord": "Buttons",
                                "panelNote": "Role sets reach only the panel inside the voice channel. A **control-panel** channel always shows the default set.",
                                "rosterMore": "> - *… and {rosterMoreCount} more. Every one of them is in the top menu.*",
                                "scopeDisplay": {
                                    "{scopeDefault}": "**You are editing the default buttons of <#{masterChannelId}>.**\nWhoever owns a channel created here sees these buttons — unless they have one of the roles listed further down, which replaces this set for them.",
                                    "{scopeDefaultVerified}": "**You are editing the default buttons of <#{masterChannelId}>.**\nOnly {verifiedRolesList} can open a channel here, so these are the buttons their owners see — unless they also have one of the roles listed further down, which replaces this set for them.",
                                    "{scopeRoleOwn}": "**You are editing the buttons for <@&{roleId}>.**\nAn owner who has this role sees these buttons **instead of** the default set. Every other owner keeps the default set, and it is not changed.\n{panelNote}",
                                    "{scopeRoleNew}": "**<@&{roleId}> has no buttons of its own yet.**\nIts owners follow the default set, which is what is ticked in the button menu right now. Tick or untick anything and this role gets a set of its own from that moment on — the default set stays exactly as it is.\n{panelNote}",
                                    "{scopeRoleMissing}": "**This role no longer exists on this server.**\nNobody can have it, so its saved buttons never reach anyone. Press **Use The Default For This Role** to clear it away."
                                },
                                "listHeadingDisplay": {
                                    "{listDefault}": "**On every panel**",
                                    "{listRoleOwn}": "**On the panel of an owner who has this role**",
                                    "{listRoleNew}": "**The default set — change it here to turn it into this role's own set**"
                                },
                                "rosterDisplay": {
                                    "{rosterNone}": "> - *None yet. Every owner gets the default set.*\n> - *For example: let one role claim and reset channels while everyone else can only rename.*",
                                    "{rosterOne}": "{rosterList}",
                                    "{rosterMany}": "{rosterList}\nAn owner who has two of these roles gets the set of whichever role sits higher in **Server Settings → Roles**."
                                },
                                "hintDisplay": {
                                    "{hintDefault}": "To give one role a different set, pick it in **➕ Give a role its own buttons**.",
                                    "{hintRoleOwn}": "**Use The Default For This Role** deletes this set and puts its owners back on the default one.",
                                    "{hintRoleNew}": "Nothing is saved for this role until you change a button.",
                                    "{hintEveryone}": "⚠️ **@everyone** cannot have a set of its own — every member has that role, so its set would replace the default one for every single owner. Edit the default set instead, or pick a narrower role.",
                                    "{hintPushed}": "✅ Sent to every channel this master channel has open. Each one now shows the set its own owner should get."
                                }
                            },
                            "arrayOptions": {
                                "buttonsList": {
                                    "format": "> - {value}{separator}",
                                    "separator": "\n",
                                    "options": {
                                        "rename": "<emoji name='ChannelRename'>  ∙ **Rename**",
                                        "limit": "<emoji name='UserLimit'> ∙ **User Limit**",
                                        "access": "<emoji name='ChannelPermissions'> ∙ **Access**",
                                        "invite": "<emoji name='InviteChannel'> ∙ **Invite**",
                                        "privacy": "<emoji name='ChannelPrivacy'> ∙ **Privacy**",
                                        "region": "<emoji name='ChannelRegion'> ∙ **Region**",
                                        "edit-primary-message": "<emoji name='EditChannelMessage'> ∙ **Edit Primary Message**",
                                        "clear-chat": "<emoji name='ClearChat'> ∙ **Clear Chat**",
                                        "rest-channel": "<emoji name='ResetChannel'>  ∙ **Reset**",
                                        "transfer": "<emoji name='TransferChannel'> ∙ **Transfer**",
                                        "templates": "<emoji name='ChannelTemplates'> ∙ **Templates**",
                                        "status": "<emoji name='Megaphone'> ∙ **Status**",
                                        "knock": "<emoji name='KnockChannel'> ∙ **Knock**",
                                        "lfm": "<emoji name='LfmChannel'> ∙ **LFM**",
                                        "claim-button": "<emoji name='ClaimChannel'> ∙ **Claim**"
                                    }
                                }
                            },
                            "vars": {
                                "index": "{index}",
                                "masterChannelId": "{masterChannelId}",
                                "roleId": "{roleId}",
                                "scopeDisplay": "{scopeDisplay}",
                                "scopeDefault": "{scopeDefault}",
                                "scopeDefaultVerified": "{scopeDefaultVerified}",
                                "verifiedRolesList": "{verifiedRolesList}",
                                "scopeRoleOwn": "{scopeRoleOwn}",
                                "scopeRoleNew": "{scopeRoleNew}",
                                "scopeRoleMissing": "{scopeRoleMissing}",
                                "panelNote": "{panelNote}",
                                "listHeadingDisplay": "{listHeadingDisplay}",
                                "listDefault": "{listDefault}",
                                "listRoleOwn": "{listRoleOwn}",
                                "listRoleNew": "{listRoleNew}",
                                "buttonsList": "{buttonsList}",
                                "buttonsNone": "{buttonsNone}",
                                "rosterHeading": "{rosterHeading}",
                                "rosterButtonsWord": "{rosterButtonsWord}",
                                "rosterDisplay": "{rosterDisplay}",
                                "rosterNone": "{rosterNone}",
                                "rosterOne": "{rosterOne}",
                                "rosterMany": "{rosterMany}",
                                "rosterList": "{rosterList}",
                                "rosterMore": "{rosterMore}",
                                "rosterMoreCount": "{rosterMoreCount}",
                                "hintDisplay": "{hintDisplay}",
                                "hintDefault": "{hintDefault}",
                                "hintRoleOwn": "{hintRoleOwn}",
                                "hintRoleNew": "{hintRoleNew}",
                                "hintEveryone": "{hintEveryone}",
                                "hintPushed": "{hintPushed}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditVerifiedRolesEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupEditVerifiedRolesEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🛡️  Edit Verified Roles Of Master Channel #{index}",
                            "description": "Editing verified roles will impact the dynamic channels created by Master Channel #{index}.\n\nLeaving it empty falls back to the server wide verified roles.\n\n**_Current Verified Roles_**\n\n> {verifiedRolesDisplay}",
                            "footer": "Note: The changes are applied immediately to the existing dynamic channels.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "verifiedRolesDisplay": {
                                    "{verifiedRoles}": "{verifiedRoles}",
                                    "{verifiedRolesGuild}": "{verifiedRoles} *(from the server options)*"
                                }
                            },
                            "arrayOptions": {
                                "verifiedRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "index": "{index}",
                                "verifiedRoles": "{verifiedRoles}",
                                "verifiedRolesDisplay": "{verifiedRolesDisplay}",
                                "verifiedRolesGuild": "{verifiedRolesGuild}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, v) => {\n  const ownRoles = args.dynamicChannelVerifiedRoles || [], guildRoles = args.guildVerifiedRoleIds || [];\n  return {\n    index: (args.index || 0) + 1,\n    verifiedRoles: ownRoles.length ? ownRoles : guildRoles,\n    verifiedRolesDisplay: ownRoles.length ? v.verifiedRoles : v.verifiedRolesGuild\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditStaffRolesEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupEditStaffRolesEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🔑  Edit Staff Roles Of Master Channel #{index}",
                            "description": "Staff roles are the mirror of the verified roles: the verified roles are the audience a channel can shut out, the staff roles are the ones it never can.\n\nA role selected here keeps access to every dynamic channel of Master Channel #{index}, whatever privacy state its owner picks - so a moderator can reach a private or hidden channel without being let in one at a time.\n\nLeaving it empty falls back to the server wide staff roles.\n\n**_Current Staff Roles_**\n\n> {staffRolesDisplay}",
                            "footer": "Note: The changes are applied immediately to the existing dynamic channels.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "staffRolesDisplay": {
                                    "{staffRoles}": "{staffRoles}",
                                    "{staffRolesGuild}": "{staffRoles} *(from the server options)*",
                                    "{staffRolesNone}": "**None** *(from the server options)*"
                                }
                            },
                            "arrayOptions": {
                                "staffRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "index": "{index}",
                                "staffRoles": "{staffRoles}",
                                "staffRolesDisplay": "{staffRolesDisplay}",
                                "staffRolesGuild": "{staffRolesGuild}",
                                "staffRolesNone": "{staffRolesNone}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, v) => {\n  const ownRoles = args.dynamicChannelStaffRoles || [], guildRoles = args.guildStaffRoleIds || [], staffRoles = ownRoles.length ? ownRoles : guildRoles;\n  return {\n    index: (args.index || 0) + 1,\n    ...staffRoles.length ? { staffRoles } : {},\n    staffRolesDisplay: ownRoles.length ? v.staffRoles : guildRoles.length ? v.staffRolesGuild : v.staffRolesNone\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditVoiceRoleEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupEditVoiceRoleEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎙️  Edit Voice Role Of Master Channel #{index}",
                            "description": "A member holds this role only while they sit in a dynamic channel of this master channel, and loses it the moment they leave.\n\nUse it to show a text channel to whoever is in voice right now, or to group them in the member list.\n\nLeaving it empty falls back to the server wide voice role.\n\n**_Current Voice Role_**\n\n> {voiceRoleDisplay}",
                            "footer": "Note: The bot's own role has to sit above the role it hands out, or discord refuses it.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "voiceRoleDisplay": {
                                    "{voiceRoleId}": "<@&{voiceRoleId}>",
                                    "{voiceRoleGuild}": "<@&{voiceRoleId}> *(from the server options)*",
                                    "{voiceRoleNone}": "**None** *(from the server options)*"
                                }
                            },
                            "vars": {
                                "index": "{index}",
                                "voiceRoleId": "{voiceRoleId}",
                                "voiceRoleDisplay": "{voiceRoleDisplay}",
                                "voiceRoleGuild": "{voiceRoleGuild}",
                                "voiceRoleNone": "{voiceRoleNone}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, v) => {\n  const { dynamicChannelVoiceRoleId: roleId, guildVoiceRoleId: guildRoleId } = args, result = {\n    index: (args.index || 0) + 1\n  };\n  if (roleId) {\n    result.voiceRoleId = roleId;\n    result.voiceRoleDisplay = v.voiceRoleId;\n  } else if (guildRoleId) {\n    result.voiceRoleId = guildRoleId;\n    result.voiceRoleDisplay = v.voiceRoleGuild;\n  } else\n    result.voiceRoleDisplay = v.voiceRoleNone;\n  return result;\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditDefaultPrivacyEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupEditDefaultPrivacyEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🛡️  Edit Default Privacy Of Master Channel #{index}",
                            "description": "This is the state a **newly created** dynamic channel starts in. It does not touch channels that already exist, and the owner can still change their own channel afterwards.\n\n**Public** - anyone in the audience can see and join.\n**Private** - visible, but only the owner lets people in.\n**Hidden** - not visible at all until the owner shows it.\n\nWith auto save on, a returning owner gets their own last state instead of this.\n\n**_Current Default_**\n\n> {privacyState}",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "privacyState": {
                                    "{privacyPublic}": "🌐 **Public**",
                                    "{privacyPrivate}": "🚫 **Private**",
                                    "{privacyHidden}": "🙈 **Hidden**"
                                }
                            },
                            "vars": {
                                "index": "{index}",
                                "privacyState": "{privacyState}",
                                "privacyPublic": "{privacyPublic}",
                                "privacyPrivate": "{privacyPrivate}",
                                "privacyHidden": "{privacyHidden}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, v) => {\n  const state = args.dynamicChannelDefaultPrivacyState;\n  return {\n    index: (args.index || 0) + 1,\n    privacyState: state === \"private\" ? v.privacyPrivate : state === \"hidden\" ? v.privacyHidden : v.privacyPublic\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupEditDefaultUserLimitEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupEditDefaultUserLimitEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "✋  Edit Default User Limit Of Master Channel #{index}",
                            "description": "This is the user limit a **newly created** dynamic channel starts with. It does not touch channels that already exist, and the owner can still change their own channel afterwards.\n\nCopying the generator channel is the old behaviour. Setting a number here is usually better, because the generator's own limit also caps how many people can wait in it at once.\n\nWith auto save on, a returning owner gets their own last limit instead of this.\n\n**_Current Default_**\n\n> {userLimitDisplay}",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "userLimitDisplay": {
                                    "{userLimitUnlimited}": "**No limit**",
                                    "{userLimitValue}": "**{userLimit} users**"
                                }
                            },
                            "vars": {
                                "index": "{index}",
                                "userLimit": "{userLimit}",
                                "userLimitDisplay": "{userLimitDisplay}",
                                "userLimitInherit": "{userLimitInherit}",
                                "userLimitUnlimited": "{userLimitUnlimited}",
                                "userLimitValue": "{userLimitValue}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, v) => {\n  const own = args.dynamicChannelDefaultUserLimit, limit = (own === null || own === void 0 ? Number(args.masterChannelUserLimit) : own) || 0;\n  return {\n    index: (args.index || 0) + 1,\n    ...limit ? { userLimit: String(limit) } : {},\n    userLimitDisplay: limit ? v.userLimitValue : v.userLimitUnlimited\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/ChannelNameTemplateModal",
            "VertixBot/UI-General/DeleteConfirmModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/ChannelNameTemplateModal",
                "title": "Set dynamic channels name",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/ChannelNameTemplateInput",
                        "label": "SET DEFAULT DYNAMIC CHANNELS NAME",
                        "placeholder": "{user}'s Channel",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 50
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/DeleteConfirmModal",
                "title": "Confirm deletion",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/DeleteConfirmInput",
                        "label": "TYPE DELETE TO CONFIRM",
                        "placeholder": "DELETE",
                        "style": "short",
                        "minLength": 6,
                        "maxLength": 6
                    }
                ]
            }
        ],
        "defaultElementsGroup": "VertixBot/UI-V3/SetupEditElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/SetupEditEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 7,
                "withDefinition": 7,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/SetupNewWizardComponent",
        "type": "component",
        "instanceType": "Static",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupStep1Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/ChannelNameTemplateEditButton",
                            "definition": {
                                "name": "VertixBot/UI-General/ChannelNameTemplateEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit Channel Name",
                                "style": "secondary",
                                "emoji": "#️⃣"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardNextButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardNextButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Next ▶",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupStep2Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/ChannelButtonsTemplateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/ChannelButtonsTemplateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 Select Buttons",
                                "header": "Buttons In This Set",
                                "selectOptions": [
                                    {
                                        "label": "Rename",
                                        "value": "rename",
                                        "emoji": "<emoji name='ChannelRename'>"
                                    },
                                    {
                                        "label": "Limit",
                                        "value": "limit",
                                        "emoji": "<emoji name='UserLimit'>"
                                    },
                                    {
                                        "label": "Access",
                                        "value": "access",
                                        "emoji": "<emoji name='ChannelPermissions'>"
                                    },
                                    {
                                        "label": "Invite",
                                        "value": "invite",
                                        "emoji": "<emoji name='InviteChannel'>"
                                    },
                                    {
                                        "label": "Privacy",
                                        "value": "privacy",
                                        "emoji": "<emoji name='ChannelPrivacy'>"
                                    },
                                    {
                                        "label": "Region",
                                        "value": "region",
                                        "emoji": "<emoji name='ChannelRegion'>"
                                    },
                                    {
                                        "label": "Edit Primary Message",
                                        "value": "edit-primary-message",
                                        "emoji": "<emoji name='EditChannelMessage'>"
                                    },
                                    {
                                        "label": "Clear Chat",
                                        "value": "clear-chat",
                                        "emoji": "<emoji name='ClearChat'>"
                                    },
                                    {
                                        "label": "Reset",
                                        "value": "rest-channel",
                                        "emoji": "<emoji name='ResetChannel'>"
                                    },
                                    {
                                        "label": "Transfer",
                                        "value": "transfer",
                                        "emoji": "<emoji name='TransferChannel'>"
                                    },
                                    {
                                        "label": "Templates",
                                        "value": "templates",
                                        "emoji": "<emoji name='ChannelTemplates'>"
                                    },
                                    {
                                        "label": "Status",
                                        "value": "status",
                                        "emoji": "<emoji name='Megaphone'>"
                                    },
                                    {
                                        "label": "Knock",
                                        "value": "knock",
                                        "emoji": "<emoji name='KnockChannel'>"
                                    },
                                    {
                                        "label": "LFM",
                                        "value": "lfm",
                                        "emoji": "<emoji name='LfmChannel'>"
                                    },
                                    {
                                        "label": "Claim",
                                        "value": "claim-button",
                                        "emoji": "<emoji name='ClaimChannel'>"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelMentionableLabel": "@ ∙ Mention user in primary message",
                                    "dynamicChannelAutoSaveLabel": "⫸ ∙ Auto save dynamic channel",
                                    "dynamicChannelAutoStatusLabel": "📢 ∙ Automatic channel status",
                                    "dynamicChannelLogsChannelLabel": "❯❯ ∙ Send logs to custom channel"
                                },
                                "placeholder": "⌘ ∙ Configuration",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelMentionableLabel} {state}",
                                        "value": "dynamicChannelMentionable:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoSaveLabel} {state}",
                                        "value": "dynamicChannelAutoSave:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoStatusLabel} {state}",
                                        "value": "dynamicChannelAutoStatus:0"
                                    },
                                    {
                                        "label": "{dynamicChannelLogsChannelLabel} {state}",
                                        "value": "dynamicChannelLogsChannel:0"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardNextButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardNextButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Next ▶",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupStep3Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Verified Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelIncludeEveryoneRoleLabel": "Include everyone role"
                                },
                                "placeholder": "🛡️ ∙ Everyone role",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelIncludeEveryoneRoleLabel} {state}",
                                        "value": "dynamicChannelIncludeEveryoneRole:1",
                                        "emoji": "🛡️"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/WizardBackButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardBackButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "◀ Back",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardNextButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardNextButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Next ▶",
                                "style": "primary"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/WizardFinishButton",
                            "definition": {
                                "name": "VertixBot/UI-General/WizardFinishButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✔ Finish",
                                "style": "success"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupStep1Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupNewStep1Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 1 - Set Dynamic Channels Template Name",
                            "description": "You can specify a default name for dynamic channels that will be used when they are opened.\n\n_Current template name_:\n`{dynamicChannelNameTemplate}`\n\nYou can keep the default settings by pressing **( `Next ▶` )** button.\n\nNot sure how it works? Check out the [explanation](https://voicechannels.online/setup/1).",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "vars": {
                                "dynamicChannelNameTemplate": "{dynamicChannelNameTemplate}"
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupStep2Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupNewStep2Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 2 - Dynamic Channels Setup",
                            "description": "Setup dynamic channel management interface.\n\n**_🎚 Buttons Interface_**\n\n{message}\n**_⚙️ Configuration_**\n\n> @ ∙ Mention user in primary message: {configUserMention}\n> ⫸ ∙ Auto save dynamic channels: {configAutoSave}\n> 📢 ∙ Automatic channel status: {configAutoStatus}\n> ▥ ∙ Auto create panel channel: {configControlChannelAutoCreate}\n\nYou can keep the default settings by pressing **( `Next ▶` )** button.\n\nNot sure what buttons do? check out the [explanation](https://voicechannels.online/features/dynamic-channel-v3).",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "on": "`🟢∙On`",
                                "off": "`🔴∙Off`",
                                "message": {
                                    "{defaultMessage}": "{dynamicChannelButtonsTemplate}\n",
                                    "{noButtonsMessage}": "There are no buttons selected!\n"
                                },
                                "configUserMention": {
                                    "{configUserMentionEnabled}": "{on}",
                                    "{configUserMentionDisabled}": "{off}"
                                },
                                "configAutoSave": {
                                    "{configAutoSaveEnabled}": "{on}",
                                    "{configAutoSaveDisabled}": "{off}"
                                },
                                "configAutoStatus": {
                                    "{configAutoStatusEnabled}": "{on}",
                                    "{configAutoStatusDisabled}": "{off}"
                                },
                                "configControlChannelAutoCreate": {
                                    "{configControlChannelAutoCreateEnabled}": "{on}",
                                    "{configControlChannelAutoCreateDisabled}": "{off}"
                                },
                                "footer": {
                                    "{defaultFooter}": "Newly created dynamic channels through this master channel will be affected by the configuration you have selected.",
                                    "{noButtonsFooter}": "Note: Without buttons members will not be able to manage their dynamic channels. no embed or interface will be shown to them.\n"
                                }
                            },
                            "arrayOptions": {
                                "dynamicChannelButtonsTemplate": {
                                    "format": "- ( {value} ){separator}",
                                    "separator": "\n",
                                    "options": {
                                        "rename": "<emoji name='ChannelRename'>  ∙ **Rename**",
                                        "limit": "<emoji name='UserLimit'> ∙ **User Limit**",
                                        "access": "<emoji name='ChannelPermissions'> ∙ **Access**",
                                        "invite": "<emoji name='InviteChannel'> ∙ **Invite**",
                                        "privacy": "<emoji name='ChannelPrivacy'> ∙ **Privacy**",
                                        "region": "<emoji name='ChannelRegion'> ∙ **Region**",
                                        "edit-primary-message": "<emoji name='EditChannelMessage'> ∙ **Edit Primary Message**",
                                        "clear-chat": "<emoji name='ClearChat'> ∙ **Clear Chat**",
                                        "rest-channel": "<emoji name='ResetChannel'>  ∙ **Reset**",
                                        "transfer": "<emoji name='TransferChannel'> ∙ **Transfer**",
                                        "templates": "<emoji name='ChannelTemplates'> ∙ **Templates**",
                                        "status": "<emoji name='Megaphone'> ∙ **Status**",
                                        "knock": "<emoji name='KnockChannel'> ∙ **Knock**",
                                        "lfm": "<emoji name='LfmChannel'> ∙ **LFM**",
                                        "claim-button": "<emoji name='ClaimChannel'> ∙ **Claim**"
                                    }
                                }
                            },
                            "vars": {
                                "on": "{on}",
                                "off": "{off}",
                                "message": "{message}",
                                "defaultMessage": "{defaultMessage}",
                                "noButtonsMessage": "{noButtonsMessage}",
                                "configUserMention": "{configUserMention}",
                                "configUserMentionEnabled": "{configUserMentionEnabled}",
                                "configUserMentionDisabled": "{configUserMentionDisabled}",
                                "configAutoSave": "{configAutoSave}",
                                "configAutoSaveEnabled": "{configAutoSaveEnabled}",
                                "configAutoSaveDisabled": "{configAutoSaveDisabled}",
                                "configAutoStatus": "{configAutoStatus}",
                                "configAutoStatusEnabled": "{configAutoStatusEnabled}",
                                "configAutoStatusDisabled": "{configAutoStatusDisabled}",
                                "configControlChannelAutoCreate": "{configControlChannelAutoCreate}",
                                "configControlChannelAutoCreateEnabled": "{configControlChannelAutoCreateEnabled}",
                                "configControlChannelAutoCreateDisabled": "{configControlChannelAutoCreateDisabled}",
                                "footer": "{footer}",
                                "defaultFooter": "{defaultFooter}",
                                "noButtonsFooter": "{noButtonsFooter}",
                                "dynamicChannelButtonsTemplate": "{dynamicChannelButtonsTemplate}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "async (args) => {\n  const vars = STEP_2_EMBED_VARS, buttonsLength = args.dynamicChannelButtonsTemplate?.length ?? 0;\n  return {\n    configUserMention: args.dynamicChannelMentionable ? vars.configUserMentionEnabled : vars.configUserMentionDisabled,\n    configAutoSave: args.dynamicChannelAutoSave ? vars.configAutoSaveEnabled : vars.configAutoSaveDisabled,\n    configAutoStatus: args.dynamicChannelAutoStatus !== !1 ? vars.configAutoStatusEnabled : vars.configAutoStatusDisabled,\n    configControlChannelAutoCreate: args.dynamicChannelControlChannelAutoCreate ? vars.configControlChannelAutoCreateEnabled : vars.configControlChannelAutoCreateDisabled,\n    message: buttonsLength ? vars.defaultMessage : vars.noButtonsMessage,\n    footer: buttonsLength ? vars.defaultFooter : vars.noButtonsFooter,\n    dynamicChannelButtonsTemplate: args.dynamicChannelButtonsTemplate\n  };\n}",
                                        "binds": [
                                            "STEP_2_EMBED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/SetupStep3Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupNewStep3Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 3 - Select Verified Roles",
                            "description": "Verified roles are the roles that the privacy buttons work on.\n\nWhen a channel owner presses **Private** or **Hidden**, the bot changes the permissions of these roles. They decide who can see the channel and who can join it.\n\n⚠️ **Not sure what to pick? Keep `@everyone`.** It is the right choice for almost every server.\n\n**_When you need a different role_**\n\nOnly if new members cannot see your channels until somebody gives them a role.\n\n_Example_: a new member joins your server and sees nothing until they get the `Member` role. If verified roles stay `@everyone`, a public dynamic channel shows up for that new member too. Pick `Member` instead, and only members who passed your gate can see and join.\n\n**_🛡️ Verified Roles_**\n\n> {verifiedRolesDisplay}\n\nStill not sure? check out the [explanation](https://voicechannels.online/setup/3).\n\nYou can keep the default settings by pressing **( `✓ Finish` )** button.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "verifiedRolesDisplay": {
                                    "{verifiedRoles}": "{verifiedRoles}",
                                    "{verifiedRolesEveryone}": "**Everyone**",
                                    "{verifiedRolesDefault}": "**None**"
                                }
                            },
                            "arrayOptions": {
                                "verifiedRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "verifiedRolesDisplay": "{verifiedRolesDisplay}",
                                "verifiedRoles": "{verifiedRoles}",
                                "verifiedRolesEveryone": "{verifiedRolesEveryone}",
                                "verifiedRolesDefault": "{verifiedRolesDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const vars = STEP_3_EMBED_VARS, result = {}, verifiedRoles = Array.isArray(args.dynamicChannelVerifiedRoles) ? args.dynamicChannelVerifiedRoles : [];\n  if (verifiedRoles.length) {\n    result.verifiedRoles = verifiedRoles;\n    result.verifiedRolesDisplay = vars.verifiedRoles;\n  } else if (args.dynamicChannelIncludeEveryoneRole)\n    result.verifiedRolesDisplay = vars.verifiedRolesEveryone;\n  else\n    result.verifiedRolesDisplay = vars.verifiedRolesDefault;\n  return result;\n}",
                                        "binds": [
                                            "STEP_3_EMBED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SomethingWentWrongEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SomethingWentWrongEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷 Oops, an issue has occurred",
                            "description": "Something went wrong",
                            "color": 15548997
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-General/SetupMaxMasterChannelsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-General/SetupMaxMasterChannelsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🤷  You have reached your master channels limit",
                            "description": "You can create up to **{maxMasterChannels}** Master Channels in total.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "vars": {
                                "maxMasterChannels": "{maxMasterChannels}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => ({\n  maxMasterChannels: args.maxMasterChannels\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/ChannelNameTemplateModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/ChannelNameTemplateModal",
                "title": "Set dynamic channels name",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/ChannelNameTemplateInput",
                        "label": "SET DEFAULT DYNAMIC CHANNELS NAME",
                        "placeholder": "{user}'s Channel",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 50
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 5,
                "withDefinition": 5,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/SetupStep1Component",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupStep1Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/ChannelNameTemplateEditButton",
                            "definition": {
                                "name": "VertixBot/UI-General/ChannelNameTemplateEditButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Edit Channel Name",
                                "style": "secondary",
                                "emoji": "#️⃣"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupStep1Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupNewStep1Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 1 - Set Dynamic Channels Template Name",
                            "description": "You can specify a default name for dynamic channels that will be used when they are opened.\n\n_Current template name_:\n`{dynamicChannelNameTemplate}`\n\nYou can keep the default settings by pressing **( `Next ▶` )** button.\n\nNot sure how it works? Check out the [explanation](https://voicechannels.online/setup/1).",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "vars": {
                                "dynamicChannelNameTemplate": "{dynamicChannelNameTemplate}"
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/ChannelNameTemplateModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/ChannelNameTemplateModal",
                "title": "Set dynamic channels name",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/ChannelNameTemplateInput",
                        "label": "SET DEFAULT DYNAMIC CHANNELS NAME",
                        "placeholder": "{user}'s Channel",
                        "style": "short",
                        "minLength": 0,
                        "maxLength": 50
                    }
                ]
            }
        ],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/SetupStep2Component",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupStep2Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/ChannelButtonsTemplateSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/ChannelButtonsTemplateSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎚 Select Buttons",
                                "header": "Buttons In This Set",
                                "selectOptions": [
                                    {
                                        "label": "Rename",
                                        "value": "rename",
                                        "emoji": "<emoji name='ChannelRename'>"
                                    },
                                    {
                                        "label": "Limit",
                                        "value": "limit",
                                        "emoji": "<emoji name='UserLimit'>"
                                    },
                                    {
                                        "label": "Access",
                                        "value": "access",
                                        "emoji": "<emoji name='ChannelPermissions'>"
                                    },
                                    {
                                        "label": "Invite",
                                        "value": "invite",
                                        "emoji": "<emoji name='InviteChannel'>"
                                    },
                                    {
                                        "label": "Privacy",
                                        "value": "privacy",
                                        "emoji": "<emoji name='ChannelPrivacy'>"
                                    },
                                    {
                                        "label": "Region",
                                        "value": "region",
                                        "emoji": "<emoji name='ChannelRegion'>"
                                    },
                                    {
                                        "label": "Edit Primary Message",
                                        "value": "edit-primary-message",
                                        "emoji": "<emoji name='EditChannelMessage'>"
                                    },
                                    {
                                        "label": "Clear Chat",
                                        "value": "clear-chat",
                                        "emoji": "<emoji name='ClearChat'>"
                                    },
                                    {
                                        "label": "Reset",
                                        "value": "rest-channel",
                                        "emoji": "<emoji name='ResetChannel'>"
                                    },
                                    {
                                        "label": "Transfer",
                                        "value": "transfer",
                                        "emoji": "<emoji name='TransferChannel'>"
                                    },
                                    {
                                        "label": "Templates",
                                        "value": "templates",
                                        "emoji": "<emoji name='ChannelTemplates'>"
                                    },
                                    {
                                        "label": "Status",
                                        "value": "status",
                                        "emoji": "<emoji name='Megaphone'>"
                                    },
                                    {
                                        "label": "Knock",
                                        "value": "knock",
                                        "emoji": "<emoji name='KnockChannel'>"
                                    },
                                    {
                                        "label": "LFM",
                                        "value": "lfm",
                                        "emoji": "<emoji name='LfmChannel'>"
                                    },
                                    {
                                        "label": "Claim",
                                        "value": "claim-button",
                                        "emoji": "<emoji name='ClaimChannel'>"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/ConfigExtrasSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelMentionableLabel": "@ ∙ Mention user in primary message",
                                    "dynamicChannelAutoSaveLabel": "⫸ ∙ Auto save dynamic channel",
                                    "dynamicChannelAutoStatusLabel": "📢 ∙ Automatic channel status",
                                    "dynamicChannelLogsChannelLabel": "❯❯ ∙ Send logs to custom channel"
                                },
                                "placeholder": "⌘ ∙ Configuration",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelMentionableLabel} {state}",
                                        "value": "dynamicChannelMentionable:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoSaveLabel} {state}",
                                        "value": "dynamicChannelAutoSave:1"
                                    },
                                    {
                                        "label": "{dynamicChannelAutoStatusLabel} {state}",
                                        "value": "dynamicChannelAutoStatus:0"
                                    },
                                    {
                                        "label": "{dynamicChannelLogsChannelLabel} {state}",
                                        "value": "dynamicChannelLogsChannel:0"
                                    }
                                ]
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupStep2Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupNewStep2Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 2 - Dynamic Channels Setup",
                            "description": "Setup dynamic channel management interface.\n\n**_🎚 Buttons Interface_**\n\n{message}\n**_⚙️ Configuration_**\n\n> @ ∙ Mention user in primary message: {configUserMention}\n> ⫸ ∙ Auto save dynamic channels: {configAutoSave}\n> 📢 ∙ Automatic channel status: {configAutoStatus}\n> ▥ ∙ Auto create panel channel: {configControlChannelAutoCreate}\n\nYou can keep the default settings by pressing **( `Next ▶` )** button.\n\nNot sure what buttons do? check out the [explanation](https://voicechannels.online/features/dynamic-channel-v3).",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "on": "`🟢∙On`",
                                "off": "`🔴∙Off`",
                                "message": {
                                    "{defaultMessage}": "{dynamicChannelButtonsTemplate}\n",
                                    "{noButtonsMessage}": "There are no buttons selected!\n"
                                },
                                "configUserMention": {
                                    "{configUserMentionEnabled}": "{on}",
                                    "{configUserMentionDisabled}": "{off}"
                                },
                                "configAutoSave": {
                                    "{configAutoSaveEnabled}": "{on}",
                                    "{configAutoSaveDisabled}": "{off}"
                                },
                                "configAutoStatus": {
                                    "{configAutoStatusEnabled}": "{on}",
                                    "{configAutoStatusDisabled}": "{off}"
                                },
                                "configControlChannelAutoCreate": {
                                    "{configControlChannelAutoCreateEnabled}": "{on}",
                                    "{configControlChannelAutoCreateDisabled}": "{off}"
                                },
                                "footer": {
                                    "{defaultFooter}": "Newly created dynamic channels through this master channel will be affected by the configuration you have selected.",
                                    "{noButtonsFooter}": "Note: Without buttons members will not be able to manage their dynamic channels. no embed or interface will be shown to them.\n"
                                }
                            },
                            "arrayOptions": {
                                "dynamicChannelButtonsTemplate": {
                                    "format": "- ( {value} ){separator}",
                                    "separator": "\n",
                                    "options": {
                                        "rename": "<emoji name='ChannelRename'>  ∙ **Rename**",
                                        "limit": "<emoji name='UserLimit'> ∙ **User Limit**",
                                        "access": "<emoji name='ChannelPermissions'> ∙ **Access**",
                                        "invite": "<emoji name='InviteChannel'> ∙ **Invite**",
                                        "privacy": "<emoji name='ChannelPrivacy'> ∙ **Privacy**",
                                        "region": "<emoji name='ChannelRegion'> ∙ **Region**",
                                        "edit-primary-message": "<emoji name='EditChannelMessage'> ∙ **Edit Primary Message**",
                                        "clear-chat": "<emoji name='ClearChat'> ∙ **Clear Chat**",
                                        "rest-channel": "<emoji name='ResetChannel'>  ∙ **Reset**",
                                        "transfer": "<emoji name='TransferChannel'> ∙ **Transfer**",
                                        "templates": "<emoji name='ChannelTemplates'> ∙ **Templates**",
                                        "status": "<emoji name='Megaphone'> ∙ **Status**",
                                        "knock": "<emoji name='KnockChannel'> ∙ **Knock**",
                                        "lfm": "<emoji name='LfmChannel'> ∙ **LFM**",
                                        "claim-button": "<emoji name='ClaimChannel'> ∙ **Claim**"
                                    }
                                }
                            },
                            "vars": {
                                "on": "{on}",
                                "off": "{off}",
                                "message": "{message}",
                                "defaultMessage": "{defaultMessage}",
                                "noButtonsMessage": "{noButtonsMessage}",
                                "configUserMention": "{configUserMention}",
                                "configUserMentionEnabled": "{configUserMentionEnabled}",
                                "configUserMentionDisabled": "{configUserMentionDisabled}",
                                "configAutoSave": "{configAutoSave}",
                                "configAutoSaveEnabled": "{configAutoSaveEnabled}",
                                "configAutoSaveDisabled": "{configAutoSaveDisabled}",
                                "configAutoStatus": "{configAutoStatus}",
                                "configAutoStatusEnabled": "{configAutoStatusEnabled}",
                                "configAutoStatusDisabled": "{configAutoStatusDisabled}",
                                "configControlChannelAutoCreate": "{configControlChannelAutoCreate}",
                                "configControlChannelAutoCreateEnabled": "{configControlChannelAutoCreateEnabled}",
                                "configControlChannelAutoCreateDisabled": "{configControlChannelAutoCreateDisabled}",
                                "footer": "{footer}",
                                "defaultFooter": "{defaultFooter}",
                                "noButtonsFooter": "{noButtonsFooter}",
                                "dynamicChannelButtonsTemplate": "{dynamicChannelButtonsTemplate}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "async (args) => {\n  const vars = STEP_2_EMBED_VARS, buttonsLength = args.dynamicChannelButtonsTemplate?.length ?? 0;\n  return {\n    configUserMention: args.dynamicChannelMentionable ? vars.configUserMentionEnabled : vars.configUserMentionDisabled,\n    configAutoSave: args.dynamicChannelAutoSave ? vars.configAutoSaveEnabled : vars.configAutoSaveDisabled,\n    configAutoStatus: args.dynamicChannelAutoStatus !== !1 ? vars.configAutoStatusEnabled : vars.configAutoStatusDisabled,\n    configControlChannelAutoCreate: args.dynamicChannelControlChannelAutoCreate ? vars.configControlChannelAutoCreateEnabled : vars.configControlChannelAutoCreateDisabled,\n    message: buttonsLength ? vars.defaultMessage : vars.noButtonsMessage,\n    footer: buttonsLength ? vars.defaultFooter : vars.noButtonsFooter,\n    dynamicChannelButtonsTemplate: args.dynamicChannelButtonsTemplate\n  };\n}",
                                        "binds": [
                                            "STEP_2_EMBED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/SetupStep3Component",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupStep3Component/ElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🛡️ ∙ Select Verified Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                            "definition": {
                                "name": "VertixBot/UI-General/VerifiedRolesEveryoneSelectMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "options": {
                                    "state": {
                                        "{stateOn}": "∙🟢 On",
                                        "{stateOff}": "∙🔴 Off"
                                    },
                                    "dynamicChannelIncludeEveryoneRoleLabel": "Include everyone role"
                                },
                                "placeholder": "🛡️ ∙ Everyone role",
                                "selectOptions": [
                                    {
                                        "label": "{dynamicChannelIncludeEveryoneRoleLabel} {state}",
                                        "value": "dynamicChannelIncludeEveryoneRole:1",
                                        "emoji": "🛡️"
                                    }
                                ]
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/SetupStep3Component/EmbedsGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/SetupNewStep3Embed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "Step 3 - Select Verified Roles",
                            "description": "Verified roles are the roles that the privacy buttons work on.\n\nWhen a channel owner presses **Private** or **Hidden**, the bot changes the permissions of these roles. They decide who can see the channel and who can join it.\n\n⚠️ **Not sure what to pick? Keep `@everyone`.** It is the right choice for almost every server.\n\n**_When you need a different role_**\n\nOnly if new members cannot see your channels until somebody gives them a role.\n\n_Example_: a new member joins your server and sees nothing until they get the `Member` role. If verified roles stay `@everyone`, a public dynamic channel shows up for that new member too. Pick `Member` instead, and only members who passed your gate can see and join.\n\n**_🛡️ Verified Roles_**\n\n> {verifiedRolesDisplay}\n\nStill not sure? check out the [explanation](https://voicechannels.online/setup/3).\n\nYou can keep the default settings by pressing **( `✓ Finish` )** button.",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "verifiedRolesDisplay": {
                                    "{verifiedRoles}": "{verifiedRoles}",
                                    "{verifiedRolesEveryone}": "**Everyone**",
                                    "{verifiedRolesDefault}": "**None**"
                                }
                            },
                            "arrayOptions": {
                                "verifiedRoles": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "verifiedRolesDisplay": "{verifiedRolesDisplay}",
                                "verifiedRoles": "{verifiedRoles}",
                                "verifiedRolesEveryone": "{verifiedRolesEveryone}",
                                "verifiedRolesDefault": "{verifiedRolesDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args) => {\n  const vars = STEP_3_EMBED_VARS, result = {}, verifiedRoles = Array.isArray(args.dynamicChannelVerifiedRoles) ? args.dynamicChannelVerifiedRoles : [];\n  if (verifiedRoles.length) {\n    result.verifiedRoles = verifiedRoles;\n    result.verifiedRolesDisplay = vars.verifiedRoles;\n  } else if (args.dynamicChannelIncludeEveryoneRole)\n    result.verifiedRolesDisplay = vars.verifiedRolesEveryone;\n  else\n    result.verifiedRolesDisplay = vars.verifiedRolesDefault;\n  return result;\n}",
                                        "binds": [
                                            "STEP_3_EMBED_VARS"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": null,
        "defaultEmbedsGroup": null,
        "defaultMarkdownsGroup": null,
        "renderAsContainer": false,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 1,
                "withDefinition": 1,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/TeamLobbyComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/TeamLobbyElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyRandomTeamsButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyRandomTeamsButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Random teams",
                                "style": "primary",
                                "emoji": "🎲"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyPickTeamsButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyPickTeamsButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Pick teams",
                                "style": "secondary",
                                "emoji": "🙋"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyGroupsButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyGroupsButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Groups",
                                "style": "secondary",
                                "emoji": "👥"
                            }
                        },
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyRecallButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyRecallButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Recall",
                                "style": "success",
                                "emoji": "↩️"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyGuideButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyGuideButton",
                                "elementType": "button-url",
                                "instanceType": "Dynamic",
                                "label": "How it works",
                                "style": "link",
                                "url": "https://voicechannels.online/features/team-lobby"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbyRandomTeamsMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyRandomTeamsPlayersMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyRandomTeamsPlayersMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👥 ∙ Only these members (optional)"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyRandomTeamsMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyRandomTeamsMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🎲 ∙ How many teams?",
                                "selectOptions": [
                                    {
                                        "label": "2 teams",
                                        "value": "2"
                                    },
                                    {
                                        "label": "3 teams",
                                        "value": "3"
                                    },
                                    {
                                        "label": "4 teams",
                                        "value": "4"
                                    },
                                    {
                                        "label": "5 teams",
                                        "value": "5"
                                    },
                                    {
                                        "label": "6 teams",
                                        "value": "6"
                                    },
                                    {
                                        "label": "7 teams",
                                        "value": "7"
                                    },
                                    {
                                        "label": "8 teams",
                                        "value": "8"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyRandomTeamsApplyButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyRandomTeamsApplyButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Apply",
                                "style": "success",
                                "emoji": "✅"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbyPickTeamsMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyPickTeamsPlayersMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyPickTeamsPlayersMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👥 ∙ Only these members (optional)"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyPickTeamsMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyPickTeamsMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "🙋 ∙ How many teams?",
                                "selectOptions": [
                                    {
                                        "label": "2 teams",
                                        "value": "2"
                                    },
                                    {
                                        "label": "3 teams",
                                        "value": "3"
                                    },
                                    {
                                        "label": "4 teams",
                                        "value": "4"
                                    },
                                    {
                                        "label": "5 teams",
                                        "value": "5"
                                    },
                                    {
                                        "label": "6 teams",
                                        "value": "6"
                                    },
                                    {
                                        "label": "7 teams",
                                        "value": "7"
                                    },
                                    {
                                        "label": "8 teams",
                                        "value": "8"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyPickTeamsApplyButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyPickTeamsApplyButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Apply",
                                "style": "success",
                                "emoji": "✅"
                            }
                        }
                    ]
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbyGroupSizeMenuGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyGroupsPlayersMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyGroupsPlayersMenu",
                                "elementType": "user-select",
                                "instanceType": "Dynamic",
                                "placeholder": "👥 ∙ Only these members (optional)"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyGroupSizeMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyGroupSizeMenu",
                                "elementType": "select-menu",
                                "instanceType": "Dynamic",
                                "placeholder": "👥 ∙ How many to a group?",
                                "selectOptions": [
                                    {
                                        "label": "Groups of 2",
                                        "value": "2"
                                    },
                                    {
                                        "label": "Groups of 3",
                                        "value": "3"
                                    },
                                    {
                                        "label": "Groups of 4",
                                        "value": "4"
                                    },
                                    {
                                        "label": "Groups of 5",
                                        "value": "5"
                                    },
                                    {
                                        "label": "Groups of 6",
                                        "value": "6"
                                    },
                                    {
                                        "label": "Groups of 7",
                                        "value": "7"
                                    },
                                    {
                                        "label": "Groups of 8",
                                        "value": "8"
                                    },
                                    {
                                        "label": "Groups of 9",
                                        "value": "9"
                                    },
                                    {
                                        "label": "Groups of 10",
                                        "value": "10"
                                    }
                                ]
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyGroupsApplyButton",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyGroupsApplyButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Apply",
                                "style": "success",
                                "emoji": "✅"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/TeamLobbyEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎮  Team Lobby",
                            "description": "Split the lobby into team rooms or small groups - and bring everyone back with one press.\n👉 **Join <#{lobbyId}> to take part** - a split only takes the people who are in it.\n\n🎲 **Random teams** - everyone in the lobby shuffled evenly into teams, and moved.\n🙋 **Pick teams** - team rooms open, and everyone walks into the one they want.\n👥 **Groups** - everyone in the lobby dealt into small groups of a size you choose, and moved.\n↩️ **Recall** - everyone back to the lobby, and the rooms close.\n\n{splitMessage}\n{hostsMessage}",
                            "color": 3369963,
                            "options": {
                                "splitMessage": {
                                    "{roomIds}": "**Split into:** {roomIds}",
                                    "{splitMessageDefault}": "**Not split** - everyone is in the lobby."
                                },
                                "hostsMessage": {
                                    "{hostRoleIds}": "**Hosts:** {hostRoleIds}",
                                    "{hostsMessageDefault}": "**Hosts:** anyone in the lobby"
                                }
                            },
                            "arrayOptions": {
                                "roomIds": {
                                    "format": "<#{value}>{separator}",
                                    "separator": " · "
                                },
                                "hostRoleIds": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "lobbyId": "{lobbyId}",
                                "roomIds": "{roomIds}",
                                "splitMessage": "{splitMessage}",
                                "splitMessageDefault": "{splitMessageDefault}",
                                "hostRoleIds": "{hostRoleIds}",
                                "hostsMessage": "{hostsMessage}",
                                "hostsMessageDefault": "{hostsMessageDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => {\n  const result = {\n    lobbyId: String(args?.lobbyId ?? \"\")\n  };\n  if (args?.roomIds?.length) {\n    result.roomIds = args.roomIds;\n    result.splitMessage = vars.roomIds;\n  } else\n    result.splitMessage = vars.splitMessageDefault;\n  if (args?.hostRoleIds?.length) {\n    result.hostRoleIds = args.hostRoleIds;\n    result.hostsMessage = vars.hostRoleIds;\n  } else\n    result.hostsMessage = vars.hostsMessageDefault;\n  return result;\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbyRandomTeamsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyRandomTeamsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎲  Random teams",
                            "description": "How many teams? Everyone in the lobby is shuffled evenly into them and moved to their team's room.\n\nOnly some of them playing? Pick who in the first menu, then the number.",
                            "color": 3369963
                        }
                    },
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyPlayersEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "description": "{playersMessage}\n{applyMessage}",
                            "color": 3369963,
                            "options": {
                                "playersMessage": {
                                    "{players}": "**Playing:** {players}",
                                    "{playersMessageDefault}": "**Playing:** everyone in the lobby"
                                },
                                "applyMessage": {
                                    "{applyMessageWaiting}": "-# ❌ Not in the lobby yet, or a bot - Apply waits for everyone picked to be in the lobby.",
                                    "{applyMessageNoCount}": "-# Pick the number, then Apply.",
                                    "{applyMessageNobody}": "-# ❌ Nobody is in the lobby to split yet.",
                                    "{applyMessageTooFew}": "-# ❌ Not enough people in the lobby for that - pick a smaller number, or wait for more to join.",
                                    "{applyMessageTooManyRooms}": "-# ❌ That would open more than {roomsLimit} rooms - pick bigger groups.",
                                    "{applyMessageReady}": "-# Ready - Apply splits the lobby."
                                }
                            },
                            "arrayOptions": {
                                "players": {
                                    "format": "{value}{separator}",
                                    "separator": " · "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "players": "{players}",
                                "playersMessage": "{playersMessage}",
                                "playersMessageDefault": "{playersMessageDefault}",
                                "roomsLimit": "{roomsLimit}",
                                "applyMessage": "{applyMessage}",
                                "applyMessageWaiting": "{applyMessageWaiting}",
                                "applyMessageNoCount": "{applyMessageNoCount}",
                                "applyMessageNobody": "{applyMessageNobody}",
                                "applyMessageTooFew": "{applyMessageTooFew}",
                                "applyMessageTooManyRooms": "{applyMessageTooManyRooms}",
                                "applyMessageReady": "{applyMessageReady}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => {\n  const result = {}, players = args?.players ?? [];\n  if (players.length) {\n    result.players = players.map((player) => `${player.isReady ? \"\\u2705\" : \"\\u274C\"} <@${player.id}>`);\n    result.playersMessage = vars.players;\n  } else\n    result.playersMessage = vars.playersMessageDefault;\n  const byRefusal = {\n    \"nobody-to-split\": vars.applyMessageNobody,\n    \"too-few-members\": vars.applyMessageTooFew,\n    \"too-many-rooms\": vars.applyMessageTooManyRooms\n  };\n  if (players.some((player) => !player.isReady))\n    result.applyMessage = vars.applyMessageWaiting;\n  else if (args?.count === void 0 || args?.count === null)\n    result.applyMessage = vars.applyMessageNoCount;\n  else if (args?.planRefusal && byRefusal[String(args.planRefusal)]) {\n    result.applyMessage = byRefusal[String(args.planRefusal)];\n    result.roomsLimit = String(args?.roomsLimit ?? \"\");\n  } else\n    result.applyMessage = vars.applyMessageReady;\n  return result;\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbyPickTeamsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyPickTeamsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🙋  Pick teams",
                            "description": "How many teams? Their rooms open empty, each holding its share of the lobby, and everyone walks into the one they want.\n\nOnly some of them playing? Pick who in the first menu, then the number - the rooms open to them alone.",
                            "color": 3369963
                        }
                    },
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyPlayersEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "description": "{playersMessage}\n{applyMessage}",
                            "color": 3369963,
                            "options": {
                                "playersMessage": {
                                    "{players}": "**Playing:** {players}",
                                    "{playersMessageDefault}": "**Playing:** everyone in the lobby"
                                },
                                "applyMessage": {
                                    "{applyMessageWaiting}": "-# ❌ Not in the lobby yet, or a bot - Apply waits for everyone picked to be in the lobby.",
                                    "{applyMessageNoCount}": "-# Pick the number, then Apply.",
                                    "{applyMessageNobody}": "-# ❌ Nobody is in the lobby to split yet.",
                                    "{applyMessageTooFew}": "-# ❌ Not enough people in the lobby for that - pick a smaller number, or wait for more to join.",
                                    "{applyMessageTooManyRooms}": "-# ❌ That would open more than {roomsLimit} rooms - pick bigger groups.",
                                    "{applyMessageReady}": "-# Ready - Apply splits the lobby."
                                }
                            },
                            "arrayOptions": {
                                "players": {
                                    "format": "{value}{separator}",
                                    "separator": " · "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "players": "{players}",
                                "playersMessage": "{playersMessage}",
                                "playersMessageDefault": "{playersMessageDefault}",
                                "roomsLimit": "{roomsLimit}",
                                "applyMessage": "{applyMessage}",
                                "applyMessageWaiting": "{applyMessageWaiting}",
                                "applyMessageNoCount": "{applyMessageNoCount}",
                                "applyMessageNobody": "{applyMessageNobody}",
                                "applyMessageTooFew": "{applyMessageTooFew}",
                                "applyMessageTooManyRooms": "{applyMessageTooManyRooms}",
                                "applyMessageReady": "{applyMessageReady}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => {\n  const result = {}, players = args?.players ?? [];\n  if (players.length) {\n    result.players = players.map((player) => `${player.isReady ? \"\\u2705\" : \"\\u274C\"} <@${player.id}>`);\n    result.playersMessage = vars.players;\n  } else\n    result.playersMessage = vars.playersMessageDefault;\n  const byRefusal = {\n    \"nobody-to-split\": vars.applyMessageNobody,\n    \"too-few-members\": vars.applyMessageTooFew,\n    \"too-many-rooms\": vars.applyMessageTooManyRooms\n  };\n  if (players.some((player) => !player.isReady))\n    result.applyMessage = vars.applyMessageWaiting;\n  else if (args?.count === void 0 || args?.count === null)\n    result.applyMessage = vars.applyMessageNoCount;\n  else if (args?.planRefusal && byRefusal[String(args.planRefusal)]) {\n    result.applyMessage = byRefusal[String(args.planRefusal)];\n    result.roomsLimit = String(args?.roomsLimit ?? \"\");\n  } else\n    result.applyMessage = vars.applyMessageReady;\n  return result;\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbyGroupsEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyGroupsEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "👥  Groups",
                            "description": "How many to a group? Everyone in the lobby is dealt into rooms of that size and moved.\n\nOnly some of them taking part? Pick who in the first menu, then the size.",
                            "color": 3369963
                        }
                    },
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyPlayersEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "description": "{playersMessage}\n{applyMessage}",
                            "color": 3369963,
                            "options": {
                                "playersMessage": {
                                    "{players}": "**Playing:** {players}",
                                    "{playersMessageDefault}": "**Playing:** everyone in the lobby"
                                },
                                "applyMessage": {
                                    "{applyMessageWaiting}": "-# ❌ Not in the lobby yet, or a bot - Apply waits for everyone picked to be in the lobby.",
                                    "{applyMessageNoCount}": "-# Pick the number, then Apply.",
                                    "{applyMessageNobody}": "-# ❌ Nobody is in the lobby to split yet.",
                                    "{applyMessageTooFew}": "-# ❌ Not enough people in the lobby for that - pick a smaller number, or wait for more to join.",
                                    "{applyMessageTooManyRooms}": "-# ❌ That would open more than {roomsLimit} rooms - pick bigger groups.",
                                    "{applyMessageReady}": "-# Ready - Apply splits the lobby."
                                }
                            },
                            "arrayOptions": {
                                "players": {
                                    "format": "{value}{separator}",
                                    "separator": " · "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "players": "{players}",
                                "playersMessage": "{playersMessage}",
                                "playersMessageDefault": "{playersMessageDefault}",
                                "roomsLimit": "{roomsLimit}",
                                "applyMessage": "{applyMessage}",
                                "applyMessageWaiting": "{applyMessageWaiting}",
                                "applyMessageNoCount": "{applyMessageNoCount}",
                                "applyMessageNobody": "{applyMessageNobody}",
                                "applyMessageTooFew": "{applyMessageTooFew}",
                                "applyMessageTooManyRooms": "{applyMessageTooManyRooms}",
                                "applyMessageReady": "{applyMessageReady}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => {\n  const result = {}, players = args?.players ?? [];\n  if (players.length) {\n    result.players = players.map((player) => `${player.isReady ? \"\\u2705\" : \"\\u274C\"} <@${player.id}>`);\n    result.playersMessage = vars.players;\n  } else\n    result.playersMessage = vars.playersMessageDefault;\n  const byRefusal = {\n    \"nobody-to-split\": vars.applyMessageNobody,\n    \"too-few-members\": vars.applyMessageTooFew,\n    \"too-many-rooms\": vars.applyMessageTooManyRooms\n  };\n  if (players.some((player) => !player.isReady))\n    result.applyMessage = vars.applyMessageWaiting;\n  else if (args?.count === void 0 || args?.count === null)\n    result.applyMessage = vars.applyMessageNoCount;\n  else if (args?.planRefusal && byRefusal[String(args.planRefusal)]) {\n    result.applyMessage = byRefusal[String(args.planRefusal)];\n    result.roomsLimit = String(args?.roomsLimit ?? \"\");\n  } else\n    result.applyMessage = vars.applyMessageReady;\n  return result;\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbySplitEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbySplitEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎮  Split",
                            "description": "{splitResult}\n\nPress **↩️ Recall** on the panel to bring everyone back.",
                            "color": 3369963,
                            "options": {
                                "splitResult": {
                                    "{splitDealt}": "Opened **{roomsCount}** rooms and moved **{moved}** members into them.",
                                    "{splitPicked}": "Opened **{roomsCount}** team rooms - everyone walks into the one they want."
                                }
                            },
                            "vars": {
                                "roomsCount": "{roomsCount}",
                                "moved": "{moved}",
                                "splitResult": "{splitResult}",
                                "splitDealt": "{splitDealt}",
                                "splitPicked": "{splitPicked}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => ({\n  roomsCount: args?.roomsCount ?? \"0\",\n  moved: args?.moved ?? \"0\",\n  splitResult: args?.mode === \"pick-teams\" ? vars.splitPicked : vars.splitDealt\n})"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbyRefusedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyRefusedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎮  Team Lobby",
                            "description": "{reason}",
                            "color": 16738560,
                            "options": {
                                "reason": {
                                    "{reasonNotCovered}": "This server has more generators than its plan allows - a lobby counts as one - and this lobby is one of the extra ones, so it does not split at the moment. **↩️ Recall** still works.\n\nThe ones set up first are still working. A server admin can upgrade the plan to switch this one back on, or delete a generator it no longer uses.",
                                    "{reasonNotHost}": "This lobby is run by its hosts - or, when it names none, by whoever is in it.",
                                    "{reasonAlreadySplit}": "This lobby is split already. Press **↩️ Recall** first.",
                                    "{reasonNotSplit}": "There is nothing to call back - everyone is in the lobby.",
                                    "{reasonNobodyToSplit}": "Nobody is in the lobby to split.",
                                    "{reasonTooFewMembers}": "There are not enough people in the lobby for that.",
                                    "{reasonInvalidCount}": "That is not a number of teams or a group size this lobby takes.",
                                    "{reasonTooManyRooms}": "That would open more than **{roomsLimit}** rooms at once. Pick bigger groups.",
                                    "{reasonMissingPermissions}": "The bot is missing **{missingPermissions}** on this lobby.",
                                    "{reasonFailed}": "Discord refused to make a room. Try again in a moment."
                                }
                            },
                            "vars": {
                                "roomsLimit": "{roomsLimit}",
                                "missingPermissions": "{missingPermissions}",
                                "reason": "{reason}",
                                "reasonNotCovered": "{reasonNotCovered}",
                                "reasonNotHost": "{reasonNotHost}",
                                "reasonAlreadySplit": "{reasonAlreadySplit}",
                                "reasonNotSplit": "{reasonNotSplit}",
                                "reasonNobodyToSplit": "{reasonNobodyToSplit}",
                                "reasonTooFewMembers": "{reasonTooFewMembers}",
                                "reasonInvalidCount": "{reasonInvalidCount}",
                                "reasonTooManyRooms": "{reasonTooManyRooms}",
                                "reasonMissingPermissions": "{reasonMissingPermissions}",
                                "reasonFailed": "{reasonFailed}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => {\n  return {\n    reason: {\n      \"not-covered\": vars.reasonNotCovered,\n      \"not-host\": vars.reasonNotHost,\n      \"already-split\": vars.reasonAlreadySplit,\n      \"not-split\": vars.reasonNotSplit,\n      \"nobody-to-split\": vars.reasonNobodyToSplit,\n      \"too-few-members\": vars.reasonTooFewMembers,\n      \"invalid-count\": vars.reasonInvalidCount,\n      \"too-many-rooms\": vars.reasonTooManyRooms,\n      \"missing-permissions\": vars.reasonMissingPermissions,\n      failed: vars.reasonFailed\n    }[String(args?.refusalCode)] ?? vars.reasonFailed,\n    roomsLimit: String(args?.roomsLimit ?? \"\"),\n    missingPermissions: (args?.missingPermissions ?? []).join(\", \")\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [],
        "modalDefinitions": [],
        "defaultElementsGroup": "VertixBot/UI-V3/TeamLobbyElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/TeamLobbyEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 9,
                "withDefinition": 9,
                "missingDefinition": 0
            }
        }
    },
    {
        "name": "VertixBot/UI-V3/TeamLobbySetupEditComponent",
        "type": "component",
        "instanceType": "Dynamic",
        "modules": [
            "VertixBot/UI-V3/Module"
        ],
        "elementsGroups": [
            {
                "name": "VertixBot/UI-V3/TeamLobbySetupEditElementsGroup",
                "items": [
                    [
                        {
                            "element": "VertixBot/UI-V3/TeamLobbyHostRolesMenu",
                            "definition": {
                                "name": "VertixBot/UI-V3/TeamLobbyHostRolesMenu",
                                "elementType": "role-select",
                                "instanceType": "Dynamic",
                                "placeholder": "🎮 ∙ Select Host Roles"
                            }
                        }
                    ],
                    [
                        {
                            "element": "VertixBot/UI-General/DoneButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DoneButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "✓ Done",
                                "style": "success"
                            }
                        },
                        {
                            "element": "VertixBot/UI-General/DeleteButton",
                            "definition": {
                                "name": "VertixBot/UI-General/DeleteButton",
                                "elementType": "button",
                                "instanceType": "Dynamic",
                                "label": "Delete",
                                "style": "danger"
                            }
                        }
                    ]
                ]
            }
        ],
        "embedsGroups": [
            {
                "name": "VertixBot/UI-V3/TeamLobbySetupEditEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbySetupEditEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎮  Team Lobby #{lobbyIndex}",
                            "description": "One voice channel people gather in, split from into team rooms or groups, and called back to.\n\n➤ ∙ Lobby: <#{lobbyChannelId}>\n➤ ∙ Channel ID: `{lobbyChannelId}`\n➤ ∙ {hostsMessage}\n\nPick the roles that run this lobby. With none, anyone in it can split it and call it back. Admins always can.",
                            "image": "https://i.imgur.com/NthLO3W.png",
                            "thumbnail": "https://voicechannels.online/vc-naked.png",
                            "color": 3369963,
                            "options": {
                                "hostsMessage": {
                                    "{lobbyHostRoleIds}": "Hosts: {lobbyHostRoleIds}",
                                    "{hostsMessageDefault}": "Hosts: anyone in the lobby"
                                }
                            },
                            "arrayOptions": {
                                "lobbyHostRoleIds": {
                                    "format": "<@&{value}>{separator}",
                                    "separator": ", "
                                }
                            },
                            "vars": {
                                "separator": "{separator}",
                                "value": "{value}",
                                "lobbyIndex": "{lobbyIndex}",
                                "lobbyChannelId": "{lobbyChannelId}",
                                "lobbyHostRoleIds": "{lobbyHostRoleIds}",
                                "hostsMessage": "{hostsMessage}",
                                "hostsMessageDefault": "{hostsMessageDefault}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => {\n  const result = {\n    lobbyIndex: Number(args?.lobbyIndex ?? 0) + 1,\n    lobbyChannelId: args?.lobbyChannelId ?? \"\"\n  };\n  if (args?.lobbyHostRoleIds?.length) {\n    result.lobbyHostRoleIds = args.lobbyHostRoleIds;\n    result.hostsMessage = vars.lobbyHostRoleIds;\n  } else\n    result.hostsMessage = vars.hostsMessageDefault;\n  return result;\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            },
            {
                "name": "VertixBot/UI-V3/TeamLobbyRefusedEmbedGroup",
                "items": [
                    {
                        "embed": "VertixBot/UI-V3/TeamLobbyRefusedEmbed",
                        "definition": {
                            "instanceType": "Dynamic",
                            "title": "🎮  Team Lobby",
                            "description": "{reason}",
                            "color": 16738560,
                            "options": {
                                "reason": {
                                    "{reasonNotCovered}": "This server has more generators than its plan allows - a lobby counts as one - and this lobby is one of the extra ones, so it does not split at the moment. **↩️ Recall** still works.\n\nThe ones set up first are still working. A server admin can upgrade the plan to switch this one back on, or delete a generator it no longer uses.",
                                    "{reasonNotHost}": "This lobby is run by its hosts - or, when it names none, by whoever is in it.",
                                    "{reasonAlreadySplit}": "This lobby is split already. Press **↩️ Recall** first.",
                                    "{reasonNotSplit}": "There is nothing to call back - everyone is in the lobby.",
                                    "{reasonNobodyToSplit}": "Nobody is in the lobby to split.",
                                    "{reasonTooFewMembers}": "There are not enough people in the lobby for that.",
                                    "{reasonInvalidCount}": "That is not a number of teams or a group size this lobby takes.",
                                    "{reasonTooManyRooms}": "That would open more than **{roomsLimit}** rooms at once. Pick bigger groups.",
                                    "{reasonMissingPermissions}": "The bot is missing **{missingPermissions}** on this lobby.",
                                    "{reasonFailed}": "Discord refused to make a room. Try again in a moment."
                                }
                            },
                            "vars": {
                                "roomsLimit": "{roomsLimit}",
                                "missingPermissions": "{missingPermissions}",
                                "reason": "{reason}",
                                "reasonNotCovered": "{reasonNotCovered}",
                                "reasonNotHost": "{reasonNotHost}",
                                "reasonAlreadySplit": "{reasonAlreadySplit}",
                                "reasonNotSplit": "{reasonNotSplit}",
                                "reasonNobodyToSplit": "{reasonNobodyToSplit}",
                                "reasonTooFewMembers": "{reasonTooFewMembers}",
                                "reasonInvalidCount": "{reasonInvalidCount}",
                                "reasonTooManyRooms": "{reasonTooManyRooms}",
                                "reasonMissingPermissions": "{reasonMissingPermissions}",
                                "reasonFailed": "{reasonFailed}"
                            },
                            "logic": {
                                "sources": [
                                    {
                                        "source": "(args, vars) => {\n  return {\n    reason: {\n      \"not-covered\": vars.reasonNotCovered,\n      \"not-host\": vars.reasonNotHost,\n      \"already-split\": vars.reasonAlreadySplit,\n      \"not-split\": vars.reasonNotSplit,\n      \"nobody-to-split\": vars.reasonNobodyToSplit,\n      \"too-few-members\": vars.reasonTooFewMembers,\n      \"invalid-count\": vars.reasonInvalidCount,\n      \"too-many-rooms\": vars.reasonTooManyRooms,\n      \"missing-permissions\": vars.reasonMissingPermissions,\n      failed: vars.reasonFailed\n    }[String(args?.refusalCode)] ?? vars.reasonFailed,\n    roomsLimit: String(args?.roomsLimit ?? \"\"),\n    missingPermissions: (args?.missingPermissions ?? []).join(\", \")\n  };\n}"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        ],
        "modals": [
            "VertixBot/UI-General/DeleteConfirmModal"
        ],
        "modalDefinitions": [
            {
                "name": "VertixBot/UI-General/DeleteConfirmModal",
                "title": "Confirm deletion",
                "inputs": [
                    {
                        "name": "VertixBot/UI-General/DeleteConfirmInput",
                        "label": "TYPE DELETE TO CONFIRM",
                        "placeholder": "DELETE",
                        "style": "short",
                        "minLength": 6,
                        "maxLength": 6
                    }
                ]
            }
        ],
        "defaultElementsGroup": "VertixBot/UI-V3/TeamLobbySetupEditElementsGroup",
        "defaultEmbedsGroup": "VertixBot/UI-V3/TeamLobbySetupEditEmbedGroup",
        "defaultMarkdownsGroup": null,
        "renderAsContainer": true,
        "hooks": [],
        "options": {
            "embedAudit": {
                "total": 2,
                "withDefinition": 2,
                "missingDefinition": 0
            }
        }
    }
]