class CommandMapper {

    public Set<Class<? extends ExecutableCommand>> getCommandClasses() {
        Set<Class<? extends ExecutableCommand>> classes = new HashSet<>(50);
        for (CommandDescription command : baseCommands) {
            classes.add(command.getExecutableCommand());
            for (CommandDescription child : command.getChildren()) {
                classes.add(child.getExecutableCommand());
            }
        }
        return classes;
    }

    @Inject public  CommandMapper(CommandInitializer commandInitializer, PermissionsManager permissionsManager);

}