All four implementations had the wrong credential priority order: env vars
were checked before accounts.csv even when an explicit --account N index
was provided.
Correct priority order implemented in all four:
1. Explicit -p/-k flags (function arguments)
2. --account N => accounts.csv row N (bypasses env vars)
3. UNSANDBOX_PUBLIC_KEY / UNSANDBOX_SECRET_KEY env vars
4. ~/.unsandbox/accounts.csv row 0 (or UNSANDBOX_ACCOUNT env)
5. ./accounts.csv row 0
Changes per file:
- un.r: rewrote get_credentials() with correct priority, added account_index
param, added --account N to parse_args(), replaced get_api_keys() calls in
all cmd_* functions with get_credentials(account_index=args$account_index)
- un.raku: rewrote get-credentials() with correct priority, pre-parse
--account N in MAIN before dispatch, added Int :$account-index param to
all cmd-* functions and thread account-index through get-credentials calls
- un.jl: added load_accounts_csv() and get_credentials() functions with full
5-tier priority, added --account to all ArgParse subcommand tables, wired
account_index through all cmd function get_api_keys calls
- un.groovy: rewrote getCredentials() and getCredentialsStatic() with correct
priority (added loadAccountsFromCsv/loadCsvAccounts helpers), rewrote
getApiKeys() to delegate to getCredentials(), added accountIndex field to
Args class, added --account N to parseArgs(), wired accountIndex through
all cmdXxx function calls