A runtime type representation passed as a value so generic code can check, inspect, or construct a type.