Currently, users can create, in addition to the default wikitext, javascript, json, and css pages for themselves. With the Scribunto extension, they can create Scribunto pages and with the TemplateStyles extension they can create sanitized-css pages. However, each of these custom (i.e. non-wikitext) content models is created based on extension or core rules, such as javascript being the default for pages created as *.js, etc.
Currently, users with the changecontentmodel right can arbitrarily set page content models, which can pose a security or vandalism risk; thus, on some wikis this right is restricted. However, multiple extensions, such as MassMessage and CollaborationKit, require the changecontentmodel right in order to create their pages.
Proposal: add a new user right, setcontentmodel (name open for suggestions) that allows users to (arbitrarily) define the content model of a page upon creation.
Use case:
Allow creation of MassMessageListContent, CollaborationHubContent, and CollaborationListContent by users without editcontentmodel (T226282, T92795)
Allow creation of sanitized-css pages in any namespace (currently only created in the template namespace and then moved)
Allow creation of json pages in any namespace (can be used to store data for modules)