design the contract — watch the caller's experience
Caller experience · how nice this API is to call 0/ 100
awkward contract — leaks detail and hides failure
API design decisions park(...)
Client code · what a caller writes // against your contract
console
Flip each design decision and read the caller's snippet re-render. Make failure explicit, hide internals, name the method for its intent → the caller experience climbs.