Transition commands

Seems this is called in some places with a :symbol and in some places with a "string". I'd require the use of symbols and check that value is one of the allowed symbols here to make it easier to catch programming errors.