Type definitions for all types, with specs