docs: public void addRule(final TreeRule rule) {
      if (rule == null) {
        throw new IllegalArgumentException("Null rules are not accepted");
      }
      if (rules == null) {
        rules = new TreeMap<Integer, TreeMap<Integer, TreeRule>>();
      }
      
      TreeMap<Integer, TreeRule> level = rules.get(rule.getLevel());
      if (level == null) {
        level = new TreeMap<Integer, TreeRule>();
        level.put(rule.getOrder(), rule);
        rules.put(rule.getLevel(), level);
      } else {
        level.put(rule.getOrder(), rule);
      }
      
      changed.put("rules", true);
    }