docs: public <T extends TypeDefinition> List<T> getTypes(Class<T> targetClass) {
          return types.values().stream()
                  .filter(targetClass::isInstance)
                  .map(targetClass::cast)
                  .collect(Collectors.toList());
      }