Matter Conformance Overview#
This document introduces the Matter conformance system, which defines the optionality and dependencies of various Matter elements, including features, attributes, commands, events, enumerations, and fields. Conformance may be expressed as a simple tag or a complex logical expression.
In ZAP, conformance information appears on the Matter feature page and in conformance-related warnings on relevant elements.
1. Basic Conformance Tags
Conformance  | Name  | Summary  | 
|---|---|---|
  | Mandatory  | Required for current revision; always present.  | 
  | Optional  | Not required; no dependencies except M elements.  | 
  | Provisional  | Provisional for now; future intended conformance is undetermined.  | 
  | Deprecated  | No longer valid in current revision; it may occur in legacy versions.  | 
  | Disallowed  | Not allowed for the cluster derivation.  | 
  | Described  | Complex conformance that cannot be represented with a logical expression.  | 
2. Conformance Expressions#
Conformance expressions define conditional support for elements using Boolean logic. They consist of operands, which may be combined using logical operators to define complex conditions.
Operands#
Supported operands in a conformance expression are:
feature code (for example,
OOfor OnOff feature)element name (for example, name of attribute, command, or event in the same cluster)
If the referenced feature or element is supported or enabled, then the operand evaluates to TRUE; otherwise, it evaluates to FALSE.
Logical Operators#
Conformance  | Name  | Summary  | 
|---|---|---|
  | AND  | 
  | 
  | OR  | 
  | 
  | NOT  | 
  | 
  | Grouping  | Use parentheses to group expressions.  | 
Optional Conformance#
Brackets ([]) are used to indicate optional in conformance expressions. If no brackets surround an expression, it is mandatory.
[AB]→ Optional ifABis true; otherwise, it is not supported.AB→ Mandatory ifABis true; otherwise, it is not supported.
3. Otherwise Conformance#
Otherwise conformance defines a sequence of conformance expressions, separated by commas (,).
They are evaluated from left to right, similar to an if → else if → else chain:
if (first condition is true)
  apply first conformance
else if (second condition is true)
  apply second conformance
...
else
  not supportedExamples#
AB, O→ Mandatory ifABis true; otherwise, it is optional.AB, [CD]→ Mandatory ifABis true; otherwise, it is optional ifCDis true. If neither expression is true, it is not supported.!AB, [CD & EF], D→ Mandatory ifABis false; otherwise, it is optional if bothCDandEFare true. If neither expression is true, it is deprecated.
4. Provisional Conformance#
The tag P defines the element as provisional. P could be followed by the future intended conformance of the element.
Examples#
P→ Provisional now. Future conformance is undetermined.P, M: Provisional now. In the future, the element is mandatory.P, [AA & BB]: Provisional now. In the future, the element is optional ifAA & BBare true; otherwise, it is not supported.[AA], P: Optional ifAAis true; otherwise, the element is provisional. Future conformance is undetermined.
5. Additional Conformance Types#
For conformance types not covered in this document, refer to section 7.3 Conformance in the Matter Core Specification.