docs: private <X extends Concept> Stream<Attribute<?>> attributes(Stream<X> conceptStream, Set<ConceptId> attributeTypesIds) {
          Stream<Attribute<?>> attributeStream = conceptStream.
                  filter(concept -> concept.isAttribute() && !this.equals(concept)).
                  map(Concept::asAttribute);
  
          if (!attributeTypesIds.isEmpty()) {
              attributeStream = attributeStream.filter(attribute -> attributeTypesIds.contains(attribute.type().id()));
          }
  
          return attributeStream;
      }