code: private ElementRule<T, ?> getDerivedRule(
          ChronoElement<?> element,
          boolean wantsVeto
      ) {
  
          if (element instanceof BasicElement && ChronoEntity.class.isAssignableFrom(this.getChronoType())) {
              BasicElement<?> e = BasicElement.class.cast(element);
  
              String veto = (wantsVeto ? e.getVeto(this) : null);
  
              if (veto == null) {
                  Chronology<? extends ChronoEntity> c = cast(this);
                  Object rule = e.derive(c);
                  return cast(rule);
              } else {
                  throw new RuleNotFoundException(veto);
              }
          }
  
          return null;
  
      }
docs: optional