I was recently playing around with the feedback mechanism, whereby one of the possibilities is for a new event to be presented as part of the feedback. Evidently, the event called as feedback could do all the things that any other event could do, including getting a response and, most importantly, presenting its own feedback. Therefore, you can have a chain of events, each with stimuli and response, each subsequent event being produced as feedback from the preceding event.
It seems to me that this could be very useful, if extended slightly so there was some way to have different feedbacks as a function of different conditions. That is, one branch of feedback for a correct response, one branch for an incorrect response, one branch for a timeout. In my view, this capability would be valuable in its own right, but if it existed, then you could, in effect, create the equivalent of a small finite state machine for a trial based on a set of events connected to each other by feedback rules.
What I mean is that a trial would begin always with a certain event, but then, depending on the subject’s reponses or lack thereof, the remainder of the trial could go in an unlimited number of different directions for an unlimited amount of time, transitioning from state/event to state/event depending on what the subject did.
Similar state machines could be initiated using macros at the block level, by causing an event with feedback to be presented.