A key-path contains a chain of keys. Each key in such a chain is a more detailed determination of the previous key.
An attribute-key is an attribute of the previous key, like in:
In previous example the name is an attribute-key of toCompany.
Besides the attribute-keys there also exists so called function-keys. A function-key presents a transformation of the previous key. For instance there exists a key lowercaseString that delivers the exact same text of the previous keybut all in lower case characters.
You would use it as follows:
In previous example existing upper case characters in the name of the company would be changed into lower case characters.