namespace commands { CommandResult parse_command(string prefix, string input); }; [Enum] interface CommandResult { Ok(ParsedCommand command); Err(string error); }; [Enum] interface Parameter { MemberRef(string member); SystemRef(string system); MemberPrivacyTarget(string target); PrivacyLevel(string level); OpaqueString(string raw); Toggle(boolean toggle); Reset(); }; dictionary ParsedCommand { string command_ref; record params; record flags; };