This package provides classes for parameters that establish a general convention for the description of parameters as defined in the `Parameter`-interface. This convention includes that each parameter has

- a name that should be meaningful for a potential user,
- a comment that adds supplementary information additional to the name
- a data type that can be used to render the parameter in some interface and to validate possible inputs
- optionally a `ParameterValidator` that allows for a stricter validation, e.g. a specified range of allowed parameter values

The package also provides some predefined parameter types for primitive data types and `String`s in `SimpleParameter`, collections of possible parameter values in `CollectionParameter`, input files in `FileParameter`, and for parameters that can have a number of different parameter values in `RangeParameter`.
All of these `Parameter`-types can be combined to `ParameterSet`s that contain a set of `Parameter`s. As `SimpleParameter`s can also have `ParameterSet`s as values (the corresponding data type is `DataType.PARAMETERSET`) and these can also be used inside `CollectionParameter`s, a tree of parameters can be built that allows to select between different options in a collection and set the parameters that belong to the selected option, or to bundle sets of parameters into subsets to allow for a clearer organization of parameters.