internal transition must have an action or a guard to be recognized as such
Although the general format for transitions is from_state + event [ guard ] / action = target_state (with event, guard and action being optional), and although internal transitions (avoiding on_exit/on_entry) would drop the = target_state part, it seems impossible write a rule like "state + event". It is not recognized as an internal transition on event. One has to add a dummy action "[] {}" or a dummy guard "[internal]" ( with internal= []{return true;} ) to have it recognized. The compiler emits a whole lot of error messages which give no clue about the real error.
What's the point of an internal transition with no action?
To ignore an event (eventually in some guarded condition), without triggering state entry/exit.