@Override
  public @Nullable Field findFeatureByName(@NotNull String name) {
    if (getFeatures().isEmpty()) {
      return null;
    }

    Optional<Field> byExactName = getFeatures().stream()
      .filter(f -> !f.isByPattern() && name.equals(f.getName()))
      .findAny();

    return byExactName.orElse(
      ContainerUtil.find(getFeatures(), f -> f.isByPattern() && f.acceptsFieldName(name))
    );
  }
@Override
  public @Nullable Field findFeatureByName(@NotNull String name)