What? allow referring to properties without actually invoking them.
Why do you need it? If you want to create an adapter for a property.
If keypath is used together with generics and associated type, the adapter can fit various types as well. Making it even more powerful and cleaner code.
See detail in this nice article.