Use on a struct to designate it as a component, automatically generating a deep copy function for it and registering it in the components registry