Just to be clear on the semantics, any list the user provides in "formats" will completely replace the existing list, not add to it? That's fine we should just be clear about it, and also provide a way for users to get the defaults in case they want to augment, not replace.