On `@rule`s… I would favour doing 1, and only thinking about 2-ish things when we’re actually trying to use variants for something. Rather than trying to design something up-front there, let’s be happy with the fact that we can design something which fits into the model, and actually do so when we need it