Description
During development of the React engine, which is necessarily much more complex than other engines, it was discovered that the default output formatter (which is tuned to indent HTML output only) was destructive to the display of React components, which are JSX, causing them all to appear on one line. Likewise, because React components are required to be mounted to a container element, which must be present in the rendered output, yet we would still like to display the HTML output on its own, engine formatters should be able to post-process markup however they wish.
Therefore, we need a way to provide hooks for engines to be able to do their own code formatting for each type of output file, and probably also add their own files to the output.