shortName and name in flagSet() are now all optional