Atomicity of actions and events
Sometimes, you want to fire 2 events, one after the other, with the second one only being fired if the first is "successful". For instance, "take an object from the bag and place it on the ground". How do we deal with this?
Option 1: actions already handle this, just check for "failure"
Problem: events are not processed immediately. Should we just queue both and re-check everything on the second event? Is that even possible in the general case?
Option 2: use 2 actions
Problem: well, it delegates work to the client, which should allow smart "action sequences". Additionally, it kind of defeats the purpose of actions resulting in effects which are sequences of events.
For that matter, should we detect when the effects of actions, not actions themselves, fail?
Edited by Wilson Kazuo Mizutani