Destructuring lets you unpack an object into variables (`val (a, b) = obj`). It works via `component1()`, `component2()`, etc., which are generated for data classes (or can be defined manually).