What problem does it solve? Pre-Dart-3 codebases rely on verbose if-else chains, wrapper classes for multiple return values, and non-exhaustive switch statements. This Skill provides the correct syntax and decision rules for adopting Dart 3 language features without introducing type-safety or exhaustiveness errors. ## Core Features & Use Cases - Branches and Exhaustiveness: Write switch statements, switch expressions, if-case constructs, and guard clauses with compile-time exhaustiveness checking via sealed classes and enums. - Patterns and Destructuring: Match and destructure maps, lists, records, and objects using the full pattern type system including logical-or, relational, null-check, and cast patterns. - Records vs Classes Guidance: Decide when to use records for multiple return values versus classes for reusable data models, with typedef best practices. - Use Case: When refactoring a legacy Flutter app, convert an abstract Result class hierarchy into a sealed class, replace if-else status handling with an exhaustive switch expression, and validate the result with dart analyze. ## Quick Start Refactor this if-else chain over my Status enum into an exhaustive Dart 3 switch expression and convert my Result hierarchy to sealed classes.