A `string`-typed parameter in an `export extern` makes nushell stop
tilde- and glob-expanding that argument, unlike a bareword argument to an
unknown external (which expands both). The generated completions therefore
changed runtime parsing: a command like `nh os switch ~/cfg` reached the
program as a literal `~/cfg` once its extern was loaded. Fall back to
`glob` for positionals — it expands tilde and globs exactly like a native
external arg, so the extern still only adds completions without altering
how arguments are passed. Flag values are left as `string` since those are
frequently literal text.