Er, actually, the Add-ons Manager sanity checks that `options.xul` exists anyway. So if we support dynamically generated options, the add-on should ship a skeleton `options.xul`, and dynamically add to that. But if no `options.xul` file exists, the Add-ons Manager just assumes the add-on provides no preferences.

An alternative would be to add another type for `optionsType`, where they are expected to be dynamically generated from scratch. And have SDK add-ons default to that. However, just shipping a skeleton `options.xul` seems much easier.