Accessor that accepts ComponentType with it's type erased up to Object or wrapped in a Placeholder!ComponentType if it is
not rooted into Object class (i.e. any value type, and extern c++ objects)
ImplSpec:
The accessor will accept any object, after which it will attempt to downcast it's original type ComponentType if it is
rooted in Object, otherwise the object will be downcasted to Placeholder!ComponentType. Failing to do so will result in
an exception
Accessor that accepts ComponentType with it's type erased up to Object or wrapped in a Placeholder!ComponentType if it is not rooted into Object class (i.e. any value type, and extern c++ objects)
ImplSpec: The accessor will accept any object, after which it will attempt to downcast it's original type ComponentType if it is rooted in Object, otherwise the object will be downcasted to Placeholder!ComponentType. Failing to do so will result in an exception