I spoke with @Jdforrester-WMF and apparently there's a lot of existing data about people opting in and out of preferences, but it's never really been meaningfully analysed. It might all be junk. We should check that data first to see if it's any good. If not, then we should implement extra data collection.
The key-value pair format isn't ideal but we do what we can with what we've got :)
If you'd prefer the format changed to something else, you should definitely file a task for that. To be upfront though, I doubt we would let that block moving forwards if the data's usable, but depending on the complexity of the alteration we might be able to knock it out quickly beforehand anyway.