##### Feature parameters

Feature parameters are described in feature specs. A parameter is identified by its name (which must be unique in the scope of the feature spec) and may have the following attributes:

* required string *name* - the name of the parameter;
* optional boolean *feature-id* - indicating whether the parameter is a part of the feature ID (if not present, the default is assumed to be *false*);
* optional boolean *nillable* - indicating whether the parameter allows null as the value in the resolved config (if not present, the default is assumed to be *false*);
* optional string *default* - indicates which value should be used for the parameter, if the parameter was not explicitly initialized in the configuration (if not present, the default is assumed to be *null*).

[source,xml]
----
 <feature-spec xmlns="urn:wildfly:pm-feature-spec:1.0" name="feature1">
   <params>
     <param name="a" feature-id="true"/>
     <param name="b" default="bb"/>
     <param name="c" nillable="true"/>
     <param name="d"/>
   </params>
 </feature-spec>
----

In this spec

* parameter *a* is a feature ID parameter, cannot be null and must be explicitly initialized in the configuration;

* parameter *b* will have a default value of _bb_ unless explicitly initialized;

* parameter *c* has not default and may be left uninitialized in the configuration;

* parameter *d* must be explicitly initialized in the configuration.

