What is API Design, and Why Does it Matter?