When a conversion of an arg to a value occurs, the conversion process can provide predictions as to what the user meant if the conversion wasn't exact. These predictions are provided in a messy way.
We should standardize on an interface, this should allow us to remove a chunk of conversion code, and enable types to expose descriptions.
Conversion.getPredictions() should return an array of ``items``, where each item is an object with the following properties:
- name (mandatory): Displayed to the user, and typed in. No whitespace
- description (optional): Short string for display in a tool-tip
- manual (optional): Longer description which details usage
- incomplete (optional): Indicates that the prediction if used should not
be considered necessarily sufficient, which typically will mean that the
UI should not append a space to the completion
- value (optional): If a value property is present, this will be used as the
value of the conversion, otherwise the item itself will be used.