parameter와 결과, exception, primitive를 차례로 확인한다.
0, 1, 2를 구분한다.
void, boolean, value를 구분한다.
checked exception 선언 여부를 본다.
primitive specialization 필요를 측정한다.
핵심: domain metadata가 핵심이면 custom contract가 더 많은 정보를 보존한다.