Currently classReference is required for dynamic provisioning, and if it's omitted we are thinking of supporting a default class.
It would be more useful if instead of just a single default class, we could select the best available class that meets the requirements of the abstract resource. Abstract resources would need to specify more granular requirements for that to be useful, for example, for MySqlInstance they might need to specify the requirements on IOPS.
The end result here is that the abstract resource would not need to know about classes at all, and instead define more granular requirements that get matched heuristically.