> For the complete documentation index, see [llms.txt](https://sws.gitbook.io/sws-questionnaires/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sws.gitbook.io/sws-questionnaires/software/design/model/parameters.md).

# Parameters

Parameters are uniquely named strings, and it may take a number of them to generate questionnaires from their specifications. This is the **parameter set** of a questionnaire.

We use **parameter set specifications** to define the number of kind of parameters that we expect in parameter sets. Naturally, parameter set specifications include one or more **parameter specifications**, each of which defines:

* an identifier.
* a label.
* a type.
* a free-form description.
* a mandatory flag.
* an optional default value.&#x20;

The type determines what strings are acceptable for the parameter. The following types are supported:

* `any`: the type of any string.
* `number`: the type of whole numbers.
* `bool`: the type of `true` and `false` strings.
* `language`: the type of the siz official FAO languages (`ar, en`,`es`,`zh`,`ru`,`ar`)

> **note**: a `language` parameter for the language of the questionnaire is automatically included in all parameter set specifications.

![](https://2629756582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LJXuKKhSqLtrt6pGxSr%2F-LJXuOv2ynLnxf6XGbSP%2F-LJXuT20Y23Itc0q3eVR%2Fmodel-10.png?generation=1533889078026294\&alt=media)

We use these parameter and parameter set specifications in user interfaces, to drive the definiton of parameter sets.

We also use them in backend processes to *validate* parameter sets when we generate questionnaires. We validate that:

* mandatory parameters have values.
* individual parameter values are valid with respect to their type.

Parameter sets are finally recorded in generated questionnaires.
