Heterogeneous registry는 Class<T> key가 값 타입을 증명한다

Map<Class<?>,Object>만 노출하면 조회마다 unchecked cast가 퍼집니다.

TypeSafeRegistryClass<T> ↔ T

put

key.cast(value)

get

T 반환

Class<String>

String value

Class<Integer>

Integer value

unsafe boundary

raw key 차단

핵심: put·get 경계 한 곳에서 key.cast로 관계를 확인합니다.