Changes of behavior are drawn using the Rosmaro Visual Editor. It produces a human-readable JSON file.
The children of a composite node may be specified using a function of the context.
The right model for the job
The behavior-related state is expressed by a state machine, while the data-related state lives in a dictionary.
Async / await just works
The whole model may be fully synchronous, but if anything needs to be asynchronous, it just works.
Method calls are dispatched based on the current node of the state machine. There's no need to check the current state.
Ready for the server
Locking prevents the model from going into an inconsistent state.
The storage may be asynchronous.