CLI Shorthand Options Conflict Resolution

In the CLI shorthand options (e.g. -c, -d, -g), previously I had given instructions to resolve any conflicts between arguments which share the same first letter by not putting a shorthand. Instead, if there are for instance two parameters which share the same first letter (e.g. options log and linear), resolve this conflict by putting the shorthand notation on the argument which comes first in the functional call. This ensures that there is a shorthand for every first letter while placing priority to the arguments which appear first in the function definition.
I’ll update shorthand generation so each initial is assigned once, to the earliest parameter in the underlying function signature, then adjust tests and verify the CLI compiler behavior.
The current compiler removes both shorthands when initials collide. I found the single policy function and two direct tests; I’ll change it to a stable first-wins pass, while continuing to reserve -h for help. This also means existing commands such as select gain -z for z0.
A broader inventory test also encoded the old uniqueness rule. I’m updating that assertion to verify the new signature-order rule across every generated command, which will catch regressions beyond the explicit collision fixture.
The focused CLI tests pass (29/29). The full suite is through 93% without failures; the remaining rendering tests are still running.
The final test block is unusually slow but has produced no failure or error output. I’m letting it finish so the handoff reflects the complete suite rather than only the targeted checks.
The stall is isolated to the existing Plotly GIF/MP4 end-to-end export area, unrelated to CLI compilation. I’m doing one final full-suite pass excluding those two environment-sensitive export tests; all CLI-specific coverage is already green.
Implemented first-parameter priority for conflicting shorthand initials; -h remains reserved.
Examples: paths receives -p before pair, and z0 receives -z before z1–z5.
Updated compiler.py, tests, and documentation.
Tests: 1679 passed, 6 skipped; 2 unrelated export tests deselected. CLI tests: 29 passed.