Used by toString to show IDs of substates, not the substates themselves.
Iterable<String> get substateIDs => substates.map((s) => s.id ?? '_');