Hi,
I now identified another format for API warnings [...]
from action "watch"
I'm not absolutely sure, but I think this is not really an other format.
The "warnings" field contains a list of modules. For each module you can
either have a list of "messages", or a plain string. In the later case the
string is stored with the "*" key you see in both examples.
The relevant code that creates these "warnings" structures for Wikibase can
be found in the ApiErrorReporter class.
The { "name": ..., "parameters": ..., "html": {
"*": ... } } thing you see
is a rendering of a Message object. The "html" key can be seen in
\ApiErrorFormatter::addWarningOrError, the "*" is a result from the Message
class.
Hope that helps.
Best
Thiemo