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