code: public static List<Feature> getFeatures(Services services, Setup setup)
      {
          final Collection<Xml> children = setup.getRoot().getChildren(FeaturableConfig.NODE_FEATURE);
          final List<Feature> features = new ArrayList<>(children.size());
          for (final Xml featureNode : children)
          {
              final String className = featureNode.getText();
              final Feature feature;
              try
              {
                  final Class<? extends Feature> clazz = getClass(className);
                  feature = UtilReflection.createReduce(clazz, services, setup);
              }
              catch (final NoSuchMethodException exception)
              {
                  throw new LionEngineException(exception);
              }
              features.add(feature);
          }
          return features;
      }
docs: Get all available features.
  Default constructor of each feature must be available or with {@link Setup} as single parameter.
  
  @param services The services reference.
  @param setup The setup reference.
  @return The available features.
  @throws LionEngineException If invalid class.