I'm under the impression that ls doesn't do very much. I'd expect it to be a small wrapper around libc. This is thousands of lines of rust with emphasis on community building and ongoing development. There seems to be a disconnect between engineering effort and product here which doesn't totally make sense to me. I think I'll stay with ls.
Challenge: which of the letters a to z and A to Z are NOT switches that modify the behavior of ls? I would guess that ls has at least 50 different behaviors based on the switches.
For GNU ls: e/E, j/J, V, K, M, O, P, W, y/Y and z are not used
It uses all the other upper and lower case letters, along with digit 1 and has a hand full of long options without a corresponding short one.
Edit: I double-checked the man page, I'm surprised how many are unused, I would have guessed that it uses all of them by now.