I would like to define some base-class.cls, with some options and their defaults, and then provide some mechanism so that other derived classes can reuse the existing options and change the defaults. Furthermore, I would like that options added to the base-class in the future also propagate to the derived classes without any further change.
This question is somewhat related to an existing question about new and existing class options. In essence, How to replace the default set of options when defining a new class?.
As an example, assume that there is some base article.cls with three mutually exclusive options: 10pt, 11pt and 12pt. Where 10pt is the default option. Now one wants to define a new document class, say nice-article which has the same three options, but 11pt is the default.
From the answer to the linked question, the solution would be to declare the three options within nice-article.cls using \DeclareOption which store the selected action in some if's or macros, then call \ExecuteOptions{11pt} to set the new default, and finally call \PassOptionsToClass{...}{article} with the appropriate saved option.
But all this seems too cumbersome and is not very modular. Say for example that later article adds a new 13pt option. Ideally I would also like nice-article to also benefit from this new option; in particular if I explicitly said
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
However using that solution I would also have to go and modify nice-article.cls to make it aware of the new existing 13pt.
So the question is (a) hasn't this problem been already solved? i.e. is there some package or extension or command which I'm missing and allows to do this? and, if not, (b) how should I go about implementing such feature?
Assume that I'm implementing a class base-class.cls which can have any kind of code and macros needed; but then I want to be able to define new classes on top of that (say nice-class.cls, bright-class.cls, funny-class.cls) which can use options from base-class, defining their own defaults and being automagically upgraded with more options if I happen to change the base-class.
Hope that the question makes sense.