@Override
  @NotNull
  public List<IProperty> getProperties() {
    PropertiesList propertiesList = withGreenStubOrAst(
      stub -> {
        PropertiesListStub propertiesListStub = stub.findChildStubByType(PropertiesElementTypes.PROPERTIES_LIST);
        return propertiesListStub == null ? null : propertiesListStub.getPsi();
      },
      ast -> PsiTreeUtil.findChildOfType(this, PropertiesList.class)
    );
    //noinspection RedundantUnmodifiable
    return Collections.unmodifiableList(PsiTreeUtil.getStubChildrenOfTypeAsList(propertiesList, Property.class));
  }
@Override
  @NotNull
  public List<IProperty> getProperties()