/build -- blocks chat until you enter "/cancel", "/exit", "/quit", "/chat", ... with or without slash in arbitrary upper|lower-case, which cancels the command.
-- 1 line tells the user "Enter arguments, then use "build it" (without ""). Use help if you need help"
help = shows help
shape [ellipse|circle|torus|hollow_box|...]
radius [int] -- no even odd?
radius2 [int]
what now -- either tells you that "what isn't a valid argument" and "now" no usable constant.
what with any trailing words -- or tells you that "what" exists and "with any trailing words" was omitted as it has no relevance to "what".
what -- may also tell you what you can build with the parameters you already entered if the list is not too long (depending on existing parameters)
[shape|shapes|shape...] -- display parameters for shape
radius -- without parameter, it tells you what you have to enter and what it is for.
build it -- activates command if the parameters you entered are not ambiguous and sufficient to determinate what you want.
/build -- does the same as "build" without slashes, but starts a new command too.
The slashes are awful to enter on German keyboards (one of the few keys which require the forefinger and is 2 rows away apart the basic position).
If you can build it interactive "setting value" each separate lines with error messages without slashes... it would be much better.
Of-course still allow something like:
/build shape=SHAPE r: 1 2 a: 1 2 3 true|false
/build 25m 25° 42° circle part
And if there is stuff SM does not understand/support, just ask the user: "Did you mean: /command shape=CIRCLE, radius: 25m, angle: 25° to 42°, ..."
If ambiguous, ask the user:
"Did you mean:
0: Not listed, cancel it! : (
1: /command ...
2: /command ...
3: /command ...
Please Enter a number"
That makes the life a whole lot easier!