This is very nitpicky, but this example implies that group names are global in scope, i.e. you can't have two groups with id 0 or with name "Group A". In fact, each group configuration is independent, so the only constraint is that their ids are unique within the configuration itself. You can even reuse the same group name within the same configuration although that would be incredibly confusing!

The reason I say this is that it would be very odd to have a real world configuration with groups called 'C', 'D' and 'E'. If you want to make it clear that these are different, you could call them 'Group 1', 'Group 2' and 'Group 3'. Otherwise this could lead developers to use their own disambiguation naming schemes and id numbering schemes which would be completely unnecessary.