type v1alpha1Component Unstructured
type v1alpha2Component Unstructured
...
// Converter is the plugin that convert v1alpha1 OAM types to v1alpha2 types
type Converter interface {
// ConvertComponent converts v1alpha1 Component in ApplicationConfiguration to
// v1alpha2 Component and workload CR.
ConvertComponent(v1alpha1Component) (v1alpha2Component)
// ConvertTrait converts v1alpha1 Trait in ApplicationConfiguration to trait CR.
ConvertTrait(v1alpha1Trait) (v1alpha2Trait)
}
Here's the design on top of my mind: