A better type signature would be (List<resource>, List<goal-state>, List<prerequisites>). An even better type signature would be a directed acyclic graph where nodes are skills or knowledge areas, edges are dependencies, parentless nodes are prerequisites, childless nodes are end goals, and each non-prerequisite node has a list of resources associated with it.
A better type signature would be
(List<resource>, List<goal-state>, List<prerequisites>)
. An even better type signature would be a directed acyclic graph where nodes are skills or knowledge areas, edges are dependencies, parentless nodes are prerequisites, childless nodes are end goals, and each non-prerequisite node has a list of resources associated with it.