(map (fn [v] (val v)) (filter #(re-matches re (name (key %))) state))))
(filter (fn[t] (get t key)) targets))
(map #(trigger (node-for-id graph %)) (emitters graph)))
+ "Constructs a nested vector of all direct & indirect target IDs
+ for the given node. The graph MUST be acyclic.
+ For node A in the following graph this structure is produced:
+ B C -> [B [D [E]] [C [E]] F]
+ (let [tlist (:targets @n)]
+ (if (= (count tlist) 0)
+ b (node-target-tree a)]
+ (conj branch (:id @a) b))))
"Creates a connection from the given source node to a target node.
The nodes need to be either supplied as node references or UUIDs.