CANONICAL

Content-derived order over results: uri, then charOffset, then ruleId, then equalIndicator/v1. A missing value sorts before any present one, and a null result sorts last. Results that no key can separate compare equal, so a stable sort leaves them in the order they came.