TODO: use wea.parse.weighted_nodes
The problem here is that we have a target_node with an optional chance
too, so a finite state machine is needed to parse it currently
Once we've extracted the target_node and it's optional chance though, we
should be able to use wea.parse.weighted_nodes in theory