Makes it possible via metadata to programmatically inspect the type of an instance and interact with the instance without knowing anything about the type beforehand.