///|
async fn main {
let args = @env.args()
let target = if args.length() >= 2 { args[1] } else { "." }
// NOTE: this cannot exit non-zero. MoonBit exposes no process-exit entry point
// in the packages available here (no `sys` package; moonbitlang/async has only
// `Output::exit_code`, which reads a finished process). So a target that
// cannot be located prints ERROR and still exits 0 — a caller must read the
// output, not the exit code. Recorded as a known limitation.
@sa.scan(target)
}