Decodes and validates one rule; throws RuleException with the first violation. fileId is the rule file name without .json and must equal the rule id.
.json
Every per-rule check; an empty list means the rule is well formed.