Remove inflexible fields for recommendation configuration, ask for that stuff more often (this makes it flexible for re-configuration while running)
Calculate recommendations based on either the full combination (permutation of all list types with all possible data structures) or a simplified list of combinations (permutations of GlobalNodeList, GlobalEdgeList, LocalNodeList with all data structures; the rest is done using fallbacks)