Extensions are a kind of contract between an app and the operating system. Extensions are implemented similarly to contracts, by overriding certain methods and providing certain functionality expected by the OS. Let's look at an example.
The distinction between contracts and extensions is not important in practice. They both have one important trait in common: implement some functionality defined by Windows, whether it's for app to app communication, or app to Windows.
The Settings charm opens up a Settings pane; its lower part shows standard Windows customization options, such as Volume, Brightness, Power, and so on. The top part of the settings pane can be used by applications to add app-specific settings.