Exhaustive
Match expressions must be exhaustive: every possible variant must be handled. The compiler will reject code that misses a case.
This catches bugs at compile time. When you add a new variant, the compiler tells you everywhere that needs updating.
Use default to handle any remaining cases when you don't need to match every variant explicitly.
Try it: Remove one of the cases and see the compiler error.