$MESSAGE Report
@ what   std::string const &
@ line   unsigned long int
@ values std::vector<int> const &    # any C++ type — the rest of the line

The type is the rest of the line up to a #, trimmed; it is copied into the generated signatures as it is. The $INCLUDEs and $USINGs make it resolvable.

Errors:

app.msg:3:1: error: parameters must be declared before the message texts
app.msg:3:3: error: parameter 'n' is already declared for message 'A'
app.msg:2:3: error: parameter name 'loc' is reserved for the generated code

Reserved names: stream, loc, option_parameter, streamLocale, originalFormat, internal_locale_name, and any name starting with member_ or internal_.

Semantics: Reference › Parameters.