The following is confusing
mlproj deploy good
mlproj -e foo deploy good
mlproj deploy -s bar good
mlproj -e foo deploy -s bar good
but
mlproj -e foo -s bar deploy bad
mlproj -s bar deploy bad
mlproj deploy - foo bad
mlproj deploy -e foo -s bar bad
it would be idiomatic to process named options separately. Many libraries do this automatically such as optimist and yargs.
The following is confusing
mlproj deploygoodmlproj -e foo deploygoodmlproj deploy -s bargoodmlproj -e foo deploy -s bargoodbut
mlproj -e foo -s bar deploybadmlproj -s bar deploybadmlproj deploy - foobadmlproj deploy -e foo -s barbadit would be idiomatic to process named options separately. Many libraries do this automatically such as optimist and yargs.