This is similar to the current CommunityConfiguration, but it per-user instead of per-site, and this will be stored in a subpage of user page such as User:Example/twinkle.json
See https://en.wikipedia.org/wiki/Wikipedia:Twinkle/Preferences for a current example, and also T382959: Add support for using CommunityConfiguration to create and manage settings pages for gadgets and bots for allowing gadgets to setup a per-site (instead of per-user) setting page.
Note:
- This is not suitable to be stored in user_property table since a gadget may introduce hundreds of options. See T408733: Limit number of userjs preferences each user is allowed to hold
- We may want to introduce a user right to edit other's per-user preference, to combat the situation that someone setting that improperly. This would be granted to sysops, who are able to edit others' JSON pages (and thus can modify such setting of anyone directly).