code: @Programmatic
      public boolean implies(final ApplicationFeatureId featureId, final ApplicationPermissionMode mode) {
          if(getRule() != ApplicationPermissionRule.ALLOW) {
              // only allow rules can imply
              return false;
          }
          if(getMode() == ApplicationPermissionMode.VIEWING && mode == ApplicationPermissionMode.CHANGING) {
              // an "allow viewing" permission does not imply ability to change
              return false;
          }
  
          // determine if this permission is on the path (ie the feature or one of its parents)
          return onPathOf(featureId);
      }
docs: region > implies, refutes