#### 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*);
* optional string *type* - type of the parameter (if not present, the default is assumed to be *String*).

[source,xml]
----
 <feature-spec xmlns="urn:jboss:galleon:feature-spec:1.0" name="feature1">
   <params>
     <param name="a" feature-id="true"/> <!--1-->
     <param name="b" default="bb"/> <!--2-->
     <param name="c" nillable="true"/> <!--3-->
     <param name="d"/> <!--4-->
   </params>
 </feature-spec>
----
<1> feature ID parameter, cannot be null and must be explicitly initialized in the configuration
<2> parameter will be initialized to _bb_ unless explicitly set to a different value by the user;
<3> has no default and may be left uninitialized in the configuration;
<4> parameter must be explicitly initialized by the user.

