What problem does it solve? Functions that return overly broad types force every caller to add null checks, type narrowing, and defensive code. This Skill applies Postel's Law to TypeScript API design so functions accept flexible inputs but return precise, immediately usable outputs. ## Core Features & Use Cases - Signature Design Guidance: Rules for making parameters liberal (optional fields, union types, multiple formats) while keeping return types strict (required fields, single canonical format). - Detection Patterns: Identifies the "too broad return" problem where callers must do extra work to consume a function's output. - Input/Output Type Separation: Patterns for distinct input and output interfaces, such as CreateUserInput versus User, with defaults applied to outputs. - Use Case: When building a reusable library function like viewportForBounds, accept bounds in multiple formats but return a Camera object with all required fields so callers can destructure results without undefined checks. ## Quick Start Ask the AI to review your TypeScript function signatures and refactor them to accept broad input types while returning strict, fully-populated output types.