// _A is decision state for A and it is invisible to user
builder.defineNoInitSequentialStatesOn(DecisionState.A, DecisionState._A);
builder.onEntry(DecisionState.A).callMethod("enterA");
builder.onExit(DecisionState.A).callMethod("leftA");
builder.onEntry(DecisionState._A).perform(decisionMaker);
builder.onExit(DecisionState._A).perform(decisionMaker);
// transition to left state A are all started with _A which means all transition cause exit state A must be router by _A
builder.transitions().from(DecisionState._A).toAmong(DecisionState.B, DecisionState.C, DecisionState.D).
onEach(DecisionEvent.A2B, DecisionEvent.A2C, DecisionEvent.A2D).callMethod("a2b|a2c|_");