I think we're giving the user the wrong idea here. Descriptors *are* used for 2 things:

1) They're used by the help command to output in different formats
2) They're used in the ContainerDebugCommand (and could be used similarly in your custom commands) as a systematic way to render output for objects

This gives the impression that we can hook into (1) and output in YAML format, for example. But that's just not true (not easily) - because the `HelpCommand` instantiates the DescriptorHelper (https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Command/HelpCommand.php#L83), which has the formats hardcoded in it: https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Helper/DescriptorHelper.php#L38

Because of that, other than a small paragraph saying that the descriptor is used internally to print the help message for commands, I don't we should talk too much about it.

Instead, we should focus on the second use-case, and emphasize that this is handy when (1) you need to systematically output details about different types of objects and (2) you want the user to be able to pass some flag (e.g. `--format=json`) to render the output in different formats. We should pretty much describe the setup in `ContainerDebugCommand` (with its custom `DescriptorHelper` and `TextDescriptor`, `XmlDescriptor`, etc implementations).

Someone let me know if I'm wrong anywhere - this is a bit of a confusing feature, only because I think it's been created primarily for internal use.