type spec for def