Blades must explicitly declare which parameters they are required to receive. Think of this as a function signature. There are multiple types of parameters, each of which can serve a special purpose.
Key parameters define properties which act as the primary key for the blade. A common example may be "Website Id: 42" for a given blade. Often, a blade will have a single input which defines this identifier. Key properties are used as a key in the shell to save user settings like the layout of the blade, part sizes, part state, etc.
<Blade>
...
<Blade.Parameters>
<!--
Typically a blade will have a key property (or set of key properties)
that indicate uniqueness of the data within the blade.
-->
<Parameter Name="WebsiteId" Type="Key" />
</Blade.Parameters>
</Blade>
For parts which provide form editing capabilities, they often need to request an editScopeId. Previously, developers were required to provide a name for this input, and go through some trials to access the Id. It is now provided as a simple input which can be accessed view the editScopeId
BladeParameter.
<Blade>
...
<Blade.Parameters>
<!--
EditScopes are a special kind of input. They are generated from the shell,
and are not passed via a blade binding.
-->
<Parameter Type="NewEditScope" />
</Blade.Parameters>
</Blade>
Output parameters provide the ability to receive an input from a child blade. Functionally little has changed with output bindings, but now they are a special defined type of input:
<Blade>
...
<Blade.Parameters>
<!--
Output parameters are not set at invocation time, and cannot be keys or edit scopes.
-->
<Parameter Name="queryMetricId" Type="Output" />
</Blade.Parameters>
</Blade>
Supplemental parameters provide no special function, and are not a key, but are used as additional data required by the part.
<Blade>
...
<Blade.Parameters>
<!--
Supplemental inputs provide non-key parameters from launching blade. These may
come from a different part on the launching blade.
-->
<Parameter Name="checkBoxValue" Type="Supplemental" />
</Blade.Parameters>
</Blade>