Misc 3.x work:
- Reworked necessity and sufficiency attributes to be more flexible (now node attributes rather than edge ones for convenience).
- Improved plotting
- Added conditional steps (i.e. the option to execute only if no nodes of the requested type are already in the state)