namespace commands { CommandResult parse_command(string input); }; [Enum] interface CommandResult { Ok(ParsedCommand command); Err(string error); }; [Enum] interface ParameterKind { MemberRef(); SystemRef(); MemberPrivacyTarget(); PrivacyLevel(); OpaqueString(); }; dictionary Parameter { string raw; ParameterKind kind; }; dictionary ParsedCommand { string command_ref; sequence args; record params; record flags; };