--- title: "Argument Sets" slug: "argument-sets" updated: 2022-07-22T17:29:13Z published: 2022-07-22T17:29:13Z canonical: "code.tag.bio/argument-sets" --- > ## Documentation Index > Fetch the complete documentation index at: https://code.tag.bio/llms.txt > Use this file to discover all available pages before exploring further. # Argument Sets `Arguments` are interface components for the user to configure a protocol. Individual `arguments` are bundled into an `argument_set` as a way to combine common logic in addition to enforcing decisions. ## argument_sets The `argument_set` array is used within a `protocol_definition`. Perhaps you have multiple `arguments` for a user to investigate patient demographics. The `argument_set` can contain in-line or filepath references to each demographic argument with a name to display the purpose for group. ``` "argument_sets": [ { "argument_set_type": "aaaa", "name": "Text displayed to user", "arguments": [...] }, {...} //add more argument_sets ] ``` ## argument_set_type All `argument_sets` have a type as a way to gate the necessity of choice to a user. Without conforming to the `argument_set_type`, the 'Run Protocol' button will be inactive. ``` "argument_set_type": "mandatory" ``` `mandatory` requires the user to make a selection amongst all of the `arguments` provided within the `argument_set`. ``` "argument_set_type": "minimum-one" ``` `minimum-one` requires at least one selection amongst all of the `arguments` provided within the `argument_set`. ``` "argument_set_type": "maximum-one" ``` `maximum-one` will only activate the *Run Protocol* button when one, and only one, `argument` selection is made by the user. ``` "argument_set_type": "optional" ``` `optional` does not affect the behavior of the *Run Protocol* button, because the user is has no requirements to fulfill.