Design Patterns in Dart: Command with Multiple Types (Rough Cut)