One thing VMS got right is that each binary declared its supported options and the shell could tell you what they were. And it would take any unique abbreviation.
Powershell scripts and cmdlets work similarly. They probably won't have help text but at least you can see what's available without having to look at the argument parsing section of the script. And you can use the shortest unique prefix as the short form of an argument (though I don't love this since adding an argument can break the shortened form of other arguments)