code: protected EntityDescriptor deduceEntityDescriptor(SolutionDescriptor solutionDescriptor,
              Class<?> entityClass) {
          EntityDescriptor entityDescriptor;
          if (entityClass != null) {
              entityDescriptor = solutionDescriptor.getEntityDescriptorStrict(entityClass);
              if (entityDescriptor == null) {
                  throw new IllegalArgumentException("The config (" + this
                          + ") has an entityClass (" + entityClass + ") that is not a known planning entity.\n"
                          + "Check your solver configuration. If that class (" + entityClass.getSimpleName()
                          + ") is not in the entityClassSet (" + solutionDescriptor.getEntityClassSet()
                          + "), check your " + PlanningSolution.class.getSimpleName()
                          + " implementation's annotated methods too.");
              }
          } else {
              Collection<EntityDescriptor> entityDescriptors = solutionDescriptor.getGenuineEntityDescriptors();
              if (entityDescriptors.size() != 1) {
                  throw new IllegalArgumentException("The config (" + this
                          + ") has no entityClass (" + entityClass
                          + ") configured and because there are multiple in the entityClassSet ("
                          + solutionDescriptor.getEntityClassSet()
                          + "), it can not be deduced automatically.");
              }
              entityDescriptor = entityDescriptors.iterator().next();
          }
          return entityDescriptor;
      }
docs: ************************************************************************