Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces support for "Obsolete" (Z) conformance, including grammar updates to the PEG parser, new data structures, and integration into XML rendering and parsing. A review comment suggests that the evaluation of obsolete elements should result in a disallowed state rather than a deprecated state to strictly adhere to the Matter specification.
| func (d *Obsolete) Eval(context Context) (ConformanceState, error) { | ||
| return ConformanceState{State: StateDeprecated, Confidence: ConfidenceDefinite}, nil | ||
| } |
There was a problem hiding this comment.
In the Matter specification, 'Obsolete' (Z) conformance indicates that an element has been removed and SHALL NOT be used by implementations. This is a stricter requirement than 'Deprecated' (D), which still requires support for backward compatibility. Evaluating Obsolete to StateDeprecated may be incorrect if the intention is to strictly disallow these elements. Consider using StateDisallowed instead, to align with the 'SHALL NOT' requirement of the specification.
No description provided.