Ref #2134 (comment)
We now (modulo particularly hairy backwards compatibility issues) consider it safe to assume that all function input matches a documented signature, and therefore allow functions to throw exceptions rather than fail silently. This should be captured somewhere, and my first thought was CONTRIBUTING.md.
That seems like a good place.
So boo plain objects, right?
I started a wiki page that we can use to iterate, it might be a little easier to do there than on a PR. Or maybe harder, I dunno, but you can just start editing with your ideas if you want. People don't generally read any of this, so usually it will be us linking to it to justify not changing (or changing) some reported behavior.
Docs: Reference new feature guidelines and API tenets