[{"data":1,"prerenderedAt":150},["ShallowReactive",2],{"docs:\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm":3},{"kind":4,"title":5,"namespace":6,"namespaceUrl":7,"trail":8,"typeKind":14,"availability":15,"signature":18,"displaySignature":19,"signatureHtml":20,"documentation":21,"documented":22,"bases":23,"inheritedMembers":24,"members":25,"release":147,"section":149},"type","PluginConfigurationForm","Unbroken.LaunchBox.Plugins.Capabilities.Configuration","\u002Fplugins\u002Fnamespaces\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration",[9,12],{"title":10,"url":11},"Capabilities","\u002Fplugins\u002Fnamespaces\u002FUnbroken.LaunchBox.Plugins.Capabilities",{"title":13,"url":7},"Configuration","Class",{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"14.1",false,"public sealed class Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm","public sealed class PluginConfigurationForm","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\"> sealed\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\"> class\u003C\u002Fspan>\u003Cspan style=\"color:#4EC9B0\"> \u003C\u002Fspan>\u003Cspan title=\"Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm\">\u003Cspan style=\"color:#4EC9B0\">PluginConfigurationForm\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\n            \u003Cdiv class=\"api-summary\">\n            Describes one host-rendered plugin configuration form and its submission handler.\n            \u003C\u002Fdiv>\n        ",true,[],[],[26,37,47,57,68,78,88,98,109,119,128,138],{"availability":27,"id":28,"name":5,"label":29,"kind":30,"summary":31,"signature":32,"displaySignature":33,"signatureHtml":34,"anchor":35,"documentation":36,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.#ctor(System.String,System.String,Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition,System.Func{System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},System.Threading.CancellationToken,System.Threading.Tasks.Task{Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult}},System.String)","PluginConfigurationForm(string, string, PluginFormDefinition, Func\u003C…>, string)","Constructor","Initializes a new instance of the PluginConfigurationForm class.","public PluginConfigurationForm(string id, string name, Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition form, System.Func\u003CSystem.Collections.Generic.IReadOnlyDictionary\u003Cstring, string?>, System.Threading.CancellationToken, System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult>> submit, string? description = null)","public PluginConfigurationForm(\n    string id,\n    string name,\n    PluginFormDefinition form,\n    Func\u003CIReadOnlyDictionary\u003Cstring, string?>,\n        CancellationToken,\n        Task\u003CPluginFormResult>> submit,\n    string? description = null\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\"> PluginConfigurationForm\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> id\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> name\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition\">\u003Cspan style=\"color:#9CDCFE\">PluginFormDefinition\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> form\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.func-3\" title=\"System.Func (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Func\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlydictionary-2\" title=\"System.Collections.Generic.IReadOnlyDictionary (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">IReadOnlyDictionary\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">string\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">, \u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">string\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">?>,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">        \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">        \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\">\u003Cspan style=\"color:#9CDCFE\">PluginFormResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>> \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">submit\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">description\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> = \u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">null\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-5a0fe3cf7f1460a5a1d1","\n            \u003Cdiv class=\"api-summary\">Initializes a new instance of the \u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm\" title=\"Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm\">PluginConfigurationForm\u003C\u002Fa> class.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>id\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The stable configuration form ID within the component, compared ordinally.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>name\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The required literal name used when localization is unavailable.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>form\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The framework-neutral form presented by the host.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>submit\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>\n            The asynchronous handler that validates and saves submitted values. It must return a\n            non-null task with a non-null result and observe cancellation during asynchronous work.\n            \u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>description\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>\n            An optional nonblank literal description used when localization is unavailable.\n            \u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt>Exception: \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.argumentnullexception\" title=\"System.ArgumentNullException\">ArgumentNullException\u003C\u002Fa>\u003C\u002Fdt>\u003Cdd>A required argument is null.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt>Exception: \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.argumentexception\" title=\"System.ArgumentException\">ArgumentException\u003C\u002Fa>\u003C\u002Fdt>\u003Cdd>A supplied ID, name, or description is blank.\u003C\u002Fdd>\u003C\u002Fdl>\n        ",{"availability":38,"id":39,"name":5,"label":40,"kind":30,"summary":41,"signature":42,"displaySignature":43,"signatureHtml":44,"anchor":45,"documentation":46,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.#ctor(System.String,Unbroken.LaunchBox.Plugins.Models.Localization.PluginText,Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition,System.Func{System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},System.Threading.CancellationToken,System.Threading.Tasks.Task{Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult}},Unbroken.LaunchBox.Plugins.Models.Localization.PluginText)","PluginConfigurationForm(string, PluginText, PluginFormDefinition, Func\u003C…>, PluginText)","Initializes a configuration form with localizable, formattable presentation text.","public PluginConfigurationForm(string id, Unbroken.LaunchBox.Plugins.Models.Localization.PluginText name, Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition form, System.Func\u003CSystem.Collections.Generic.IReadOnlyDictionary\u003Cstring, string?>, System.Threading.CancellationToken, System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult>> submit, Unbroken.LaunchBox.Plugins.Models.Localization.PluginText? description = null)","public PluginConfigurationForm(\n    string id,\n    PluginText name,\n    PluginFormDefinition form,\n    Func\u003CIReadOnlyDictionary\u003Cstring, string?>,\n        CancellationToken,\n        Task\u003CPluginFormResult>> submit,\n    PluginText? description = null\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\"> PluginConfigurationForm\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> id\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Localization.PluginText\" title=\"Unbroken.LaunchBox.Plugins.Models.Localization.PluginText\">\u003Cspan style=\"color:#9CDCFE\">PluginText\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> name\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition\">\u003Cspan style=\"color:#9CDCFE\">PluginFormDefinition\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> form\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.func-3\" title=\"System.Func (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Func\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlydictionary-2\" title=\"System.Collections.Generic.IReadOnlyDictionary (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">IReadOnlyDictionary\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">string\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">, \u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">string\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">?>,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">        \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">        \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\">\u003Cspan style=\"color:#9CDCFE\">PluginFormResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>> \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">submit\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Localization.PluginText\" title=\"Unbroken.LaunchBox.Plugins.Models.Localization.PluginText\">\u003Cspan style=\"color:#9CDCFE\">PluginText\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">description\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> = \u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">null\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-2f3fd27629e7f19691f7","\n            \u003Cdiv class=\"api-summary\">Initializes a configuration form with localizable, formattable presentation text.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>id\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The stable configuration form ID within the component, compared ordinally.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>name\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The form name, including its required fallback format.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>form\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The framework-neutral form presented by the host.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>submit\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The asynchronous handler that validates and saves submitted values.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>description\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>An optional description with its fallback format.\u003C\u002Fdd>\u003C\u002Fdl>\n        ",{"availability":48,"id":49,"name":5,"label":50,"kind":30,"summary":51,"signature":52,"displaySignature":53,"signatureHtml":54,"anchor":55,"documentation":56,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.#ctor(System.String,Unbroken.LaunchBox.Plugins.Models.Localization.PluginText,Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition,System.Func{System.Threading.CancellationToken,System.Threading.Tasks.Task{Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues}},System.Func{Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues,System.Threading.CancellationToken,System.Threading.Tasks.Task{Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult}},System.Func{Unbroken.LaunchBox.Plugins.Capabilities.Configuration.IPluginConfigurationValues,Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult},Unbroken.LaunchBox.Plugins.Models.Localization.PluginText)","PluginConfigurationForm(string, PluginText, PluginFormDefinition, Func\u003C…>, Func\u003C…>, Func\u003C…>, PluginText)","Creates a configuration form with explicit initial values and optional named scopes.","public PluginConfigurationForm(string id, Unbroken.LaunchBox.Plugins.Models.Localization.PluginText name, Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition form, System.Func\u003CSystem.Threading.CancellationToken, System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues>> loadValues, System.Func\u003CUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues, System.Threading.CancellationToken, System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult>> submit, System.Func\u003CUnbroken.LaunchBox.Plugins.Capabilities.Configuration.IPluginConfigurationValues, Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult>? validate, Unbroken.LaunchBox.Plugins.Models.Localization.PluginText? description = null)","public PluginConfigurationForm(\n    string id,\n    PluginText name,\n    PluginFormDefinition form,\n    Func\u003CCancellationToken, Task\u003CPluginConfigurationValues>> loadValues,\n    Func\u003CPluginConfigurationValues,\n        CancellationToken,\n        Task\u003CPluginFormResult>> submit,\n    Func\u003CIPluginConfigurationValues, PluginFormResult>? validate,\n    PluginText? description = null\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\"> PluginConfigurationForm\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> id\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Localization.PluginText\" title=\"Unbroken.LaunchBox.Plugins.Models.Localization.PluginText\">\u003Cspan style=\"color:#9CDCFE\">PluginText\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> name\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition\">\u003Cspan style=\"color:#9CDCFE\">PluginFormDefinition\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> form\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.func-2\" title=\"System.Func (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Func\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">, \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues\" title=\"Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues\">\u003Cspan style=\"color:#9CDCFE\">PluginConfigurationValues\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>> \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">loadValues\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.func-3\" title=\"System.Func (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Func\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues\" title=\"Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues\">\u003Cspan style=\"color:#9CDCFE\">PluginConfigurationValues\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">        \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">        \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\">\u003Cspan style=\"color:#9CDCFE\">PluginFormResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>> \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">submit\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.func-2\" title=\"System.Func (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">Func\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration.IPluginConfigurationValues\" title=\"Unbroken.LaunchBox.Plugins.Capabilities.Configuration.IPluginConfigurationValues\">\u003Cspan style=\"color:#9CDCFE\">IPluginConfigurationValues\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">, \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\">\u003Cspan style=\"color:#9CDCFE\">PluginFormResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">validate\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Localization.PluginText\" title=\"Unbroken.LaunchBox.Plugins.Models.Localization.PluginText\">\u003Cspan style=\"color:#9CDCFE\">PluginText\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">description\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> = \u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">null\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-fe57bd9026c00482368f","\n            \u003Cdiv class=\"api-summary\">Creates a configuration form with explicit initial values and optional named scopes.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>id\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The stable form identity within the component.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>name\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The localizable form name.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>form\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The shared field definition.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>loadValues\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Loads detached explicit values. Bind instance identity in this callback.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>submit\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Persists the complete accepted snapshot once, including all scopes.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>validate\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Validates one effective scope without persisting or changing the submitted snapshot.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>description\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Optional localizable explanation.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Remarks\u003C\u002Fh4>The host retains drafts and validates every supplied scope before submitting. Field defaults are presentation fallbacks and are not stored unless explicitly edited. This non-secret scoped contract cannot contain secret fields.\n        ",{"availability":58,"id":59,"name":60,"label":60,"kind":61,"summary":62,"signature":63,"displaySignature":64,"signatureHtml":65,"anchor":66,"documentation":67,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.LoadValuesAsync(System.Threading.CancellationToken)","LoadValuesAsync","Method","Loads detached scoped values. Ordinary forms instead supply initial field defaults.","public System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues?> LoadValuesAsync(System.Threading.CancellationToken cancellationToken)","public Task\u003CPluginConfigurationValues?> LoadValuesAsync(\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#4EC9B0\"> \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues\" title=\"Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues\">\u003Cspan style=\"color:#4EC9B0\">PluginConfigurationValues\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">?> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">LoadValuesAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-e5aad630b59fd51e4389","\n            \u003Cdiv class=\"api-summary\">Loads detached scoped values. Ordinary forms instead supply initial field defaults.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels retrieval.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>The explicit values for a scoped form, or null for an ordinary form.\n        ",{"availability":69,"id":70,"name":71,"label":71,"kind":61,"summary":72,"signature":73,"displaySignature":74,"signatureHtml":75,"anchor":76,"documentation":77,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.SubmitAsync(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},System.Threading.CancellationToken)","SubmitAsync","Submits configuration values for validation and persistence by the plugin.","public System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult> SubmitAsync(System.Collections.Generic.IReadOnlyDictionary\u003Cstring, string?> values, System.Threading.CancellationToken cancellationToken)","public Task\u003CPluginFormResult> SubmitAsync(\n    IReadOnlyDictionary\u003Cstring, string?> values,\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#4EC9B0\"> \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\">\u003Cspan style=\"color:#4EC9B0\">PluginFormResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">SubmitAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlydictionary-2\" title=\"System.Collections.Generic.IReadOnlyDictionary (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">IReadOnlyDictionary\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">string\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">, \u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">string\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">?> \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">values\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-a609cdcf888d376b4354","\n            \u003Cdiv class=\"api-summary\">Submits configuration values for validation and persistence by the plugin.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>values\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>\n            Submitted values keyed by form field ID. Values are passed unchanged to the handler;\n            the plugin determines which values are required and how they are saved.\n            \u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>A token used to cancel submission.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>The plugin&#39;s acceptance result, including any form or field validation errors.\n            \u003Ch4>Remarks\u003C\u002Fh4>\n            Cancellation requested before this call prevents the handler from running. Once invoked,\n            the handler is responsible for observing the token. Handler exceptions and cancellation\n            propagate to the caller; cancellation does not automatically undo plugin persistence.\n            \n            \u003Cdl>\u003Cdt>Exception: \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.argumentnullexception\" title=\"System.ArgumentNullException\">ArgumentNullException\u003C\u002Fa>\u003C\u002Fdt>\u003Cdd>\u003Ccode>values\u003C\u002Fcode> is null.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt>Exception: \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.operationcanceledexception\" title=\"System.OperationCanceledException\">OperationCanceledException\u003C\u002Fa>\u003C\u002Fdt>\u003Cdd>Cancellation has already been requested.\u003C\u002Fdd>\u003C\u002Fdl>\n        ",{"availability":79,"id":80,"name":81,"label":81,"kind":61,"summary":82,"signature":83,"displaySignature":84,"signatureHtml":85,"anchor":86,"documentation":87,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.SubmitValuesAsync(Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues,System.Threading.CancellationToken)","SubmitValuesAsync","Submits a complete scoped snapshot after host validation.","public System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult> SubmitValuesAsync(Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues values, System.Threading.CancellationToken cancellationToken)","public Task\u003CPluginFormResult> SubmitValuesAsync(\n    PluginConfigurationValues values,\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#4EC9B0\"> \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\">\u003Cspan style=\"color:#4EC9B0\">PluginFormResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">SubmitValuesAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues\" title=\"Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationValues\">\u003Cspan style=\"color:#4EC9B0\">PluginConfigurationValues\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> values\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-8f0aca467bb9df4de5b1","\n            \u003Cdiv class=\"api-summary\">Submits a complete scoped snapshot after host validation.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>values\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>All explicit values, including scopes and preserved unknown fields.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels submission.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>The plugin&#39;s acceptance result.\n            \u003Ch4>Remarks\u003C\u002Fh4>This method is only available for forms constructed with scoped callbacks. Cancellation does not roll back completed writes.\n        ",{"availability":89,"id":90,"name":91,"label":91,"kind":61,"summary":92,"signature":93,"displaySignature":94,"signatureHtml":95,"anchor":96,"documentation":97,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.ValidateValues(Unbroken.LaunchBox.Plugins.Capabilities.Configuration.IPluginConfigurationValues)","ValidateValues","Validates one effective scope without persisting. Ordinary forms validate during submission.","public Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult ValidateValues(Unbroken.LaunchBox.Plugins.Capabilities.Configuration.IPluginConfigurationValues values)","public PluginFormResult ValidateValues(IPluginConfigurationValues values)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#4EC9B0\"> \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormResult\">\u003Cspan style=\"color:#4EC9B0\">PluginFormResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#DCDCAA\"> ValidateValues\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Capabilities.Configuration.IPluginConfigurationValues\" title=\"Unbroken.LaunchBox.Plugins.Capabilities.Configuration.IPluginConfigurationValues\">\u003Cspan style=\"color:#4EC9B0\">IPluginConfigurationValues\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> values\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-7a167f58bcbea1cf3a81","\n            \u003Cdiv class=\"api-summary\">Validates one effective scope without persisting. Ordinary forms validate during submission.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>values\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>A detached view, including declared defaults.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>The validation result.\n        ",{"availability":99,"id":100,"name":101,"label":101,"kind":102,"summary":103,"signature":104,"displaySignature":105,"signatureHtml":106,"anchor":107,"documentation":108,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.Description","Description","Property","Gets the optional localizable, formattable description.","public Unbroken.LaunchBox.Plugins.Models.Localization.PluginText? Description { get; }","public PluginText? Description { get; }","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Localization.PluginText\" title=\"Unbroken.LaunchBox.Plugins.Models.Localization.PluginText\">\u003Cspan style=\"color:#9CDCFE\">PluginText\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">Description\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-86342fc917ef2e6c8c9f","\n            \u003Cdiv class=\"api-summary\">Gets the optional localizable, formattable description.\u003C\u002Fdiv>\n        ",{"availability":110,"id":111,"name":112,"label":112,"kind":102,"summary":113,"signature":114,"displaySignature":115,"signatureHtml":116,"anchor":117,"documentation":118,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.Form","Form","Gets the framework-neutral form presented by the host.","public Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition Form { get; }","public PluginFormDefinition Form { get; }","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition\" title=\"Unbroken.LaunchBox.Plugins.Models.Forms.PluginFormDefinition\">\u003Cspan style=\"color:#9CDCFE\">PluginFormDefinition\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> Form\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-8b2803059bf79ec2236d","\n            \u003Cdiv class=\"api-summary\">Gets the framework-neutral form presented by the host.\u003C\u002Fdiv>\n        ",{"availability":120,"id":121,"name":122,"label":122,"kind":102,"summary":123,"signature":124,"displaySignature":124,"signatureHtml":125,"anchor":126,"documentation":127,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.Id","Id","Gets the stable configuration form ID within the component, compared ordinally.","public string Id { get; }","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\"> string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> Id\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-ec2bff66b1cac8a8c2d8","\n            \u003Cdiv class=\"api-summary\">Gets the stable configuration form ID within the component, compared ordinally.\u003C\u002Fdiv>\n        ",{"availability":129,"id":130,"name":131,"label":131,"kind":102,"summary":132,"signature":133,"displaySignature":134,"signatureHtml":135,"anchor":136,"documentation":137,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.Name","Name","Gets the localizable, formattable name and its fallback format.","public Unbroken.LaunchBox.Plugins.Models.Localization.PluginText Name { get; }","public PluginText Name { get; }","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Models.Localization.PluginText\" title=\"Unbroken.LaunchBox.Plugins.Models.Localization.PluginText\">\u003Cspan style=\"color:#9CDCFE\">PluginText\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> Name\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-07c982713ad1ef266d0f","\n            \u003Cdiv class=\"api-summary\">Gets the localizable, formattable name and its fallback format.\u003C\u002Fdiv>\n        ",{"availability":139,"id":140,"name":141,"label":141,"kind":102,"summary":142,"signature":143,"displaySignature":143,"signatureHtml":144,"anchor":145,"documentation":146,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Capabilities.Configuration.PluginConfigurationForm.SupportsScopes","SupportsScopes","Gets whether this form exchanges explicit values across optional named scopes.","public bool SupportsScopes { get; }","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\"> bool\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> SupportsScopes\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-d42582a8532a925aff6d","\n            \u003Cdiv class=\"api-summary\">Gets whether this form exchanges explicit values across optional named scopes.\u003C\u002Fdiv>\n        ",{"currentRelease":16,"currentReleaseState":148},"stable","plugins",1794763752351]