modify the meaning of the return values from prepare() and execute()
if true, pop action.
if a list, extendleft its reverse.
if true, call prepare() on current action.
if false, wait for player to do current action.

add ActionPurchaseStock to the mix utilizing this functionality.