A codebase can get complicated We use types to maximally compress the complexity of a system The API describes the ways that the system interacts at its surface, and is intended to preserve correctness An agent prompt should be