intermediate: implement DnaComponentType in model and form (not yet migrated)