config values in extension.json can contain objects with descriptions and other metadata: https://www.mediawiki.org/wiki/Manual:Extension.json/Schema#Changes_in_manifest_version_2
DefaultUserOptions and ConditionalUserOptions can only contain values.
As a workaround in VE, we document with keys in the root of extension.json
"@DefaultUserOptions1": "'visualeditor-enable' is only read when in legacy beta feature mode ('VisualEditorEnableBetaFeature').", "@DefaultUserOptions2": "'visualeditor-betatempdisable' is only read when NOT in beta feature mode.", "@DefaultUserOptions3": "'visualeditor-autodisable' records whether the user has explicitly opted out of VE while it was in beta.", "DefaultUserOptions": { "visualeditor-autodisable": 0, "visualeditor-betatempdisable": 0, "visualeditor-collab": 0, ... },
It would be better if they also supported metadata.