It's not clear to me why a separate class is needed here. How is `mw-parser-output` semantically different from `mw-body-content`?

I assume that `mw-parser-output` would solely be applied to output that literally comes from the parser, no exception. However while that is a clear use case, the use case for styling that output seems slightly wider. Because the purpose of `mw-body-content` right now is for anything that is meant to be styled the same way as page content.

While these are different technical purposes, I'd like to make sure we avoid cases where one set `mw-parser-output` to mimic certain styles, or alternatively where one would have to target both in CSS to make sure it always applies.

A few questions to help narrow it down:

1. Is it valid for MediaWiki core interface styles and skin styles to ever target `mw-parser-output`? I propose no, they must use `mw-body-content` instead.
2. Do we support outputting `mw-parser-output` on a MediaWiki-powered HTML response without being a descendant of `mw-body-content`? I propose no, an element with `mw-parser-output` must either also have `mw-body-content` or be a descendant of an element with that class.

This leaves the question: What is the risk of allowing TemplateStyles to target `mw-body-content`? The answer, as I understand it, is that we have some interface components (like page heading, categories, notices/banners, Translate extension controls, FlaggedRevs extension controls) that should be styled the same way as page content (e.g. their headings and links etc.) but don't always come straight out of the parser. And presumably we want to avoid these elements from being styled by a template on the current page.

In that case I have a few more questions:

* Would it be appropiate to instead have these common styles use `mw-body` instead of `mw-body-content` in their CSS? E.g. for skin headings, links etc. Thus turning mw-body-content into the proposed `mw-parser-output`. One problem with this is that Parsoid prefers to only use mw-body-content, and not mw-body, and still load Vector styles and have a page that looks like it was cut out from a Vector-skin page view but without the skin wrapping. Applying mw-body has the side effect of needlessly reserving space for the sidebar and such. Although it would be trivial to fix Vector to move these styles to a vector-specific class name on the same element since strictly speaking this should not have been applied to mw-body in the first place.

* Given that firstHeading is partially provided by Parser. And banners are entirely parsed by the parser. Will the class name apply there? If yes, then the current page has the ability to affect the notices, which are supposed to be restricted. If not, then notices cannot use templates properly.

* Besides elements provided by the parser (first heading, and site notices), is there a problem with moving the Translate and FlaggedRevs extension controls out of mw-body-content? Or more specifically, is there a problem with removing mw-body-content from `#bodyContent` in Vector and instead applying it to the relevant child nodes only?