ATM it is a formatted text (click to expand)

$> git annex initremote myrsync type=rsync --whatelse
shellescape
    avoid usual shell escaping (not recommended)
    (yes or no)
rsyncurl
    (required) url or hostname:/directory for rsync to use
chunk
    size of chunks (eg, 1MiB)
encryption
    how to encrypt data stored in the special remote
    (hybrid or none or pubkey or shared or sharedpubkey)
embedcreds
    embed credentials into git repository
    (yes or no)
mac
    how to encrypt filenames used on the remote
    (HMACSHA1 or HMACSHA224 or HMACSHA256 or HMACSHA384 or HMACSHA512)
keyid
    gpg key id
keyid+
    add additional gpg key
keyid-
    remove gpg key
exporttree
    export trees of files to this remote
    (yes or no)
importtree
    import trees of files from this remote
    (yes or no)

which would make it necessary to establish a possibly fragile parsing by any tool which would like to programmatically obtain/use/expose those options.

It would be great if there was a way to trigger such listing be output in more friendly for machines form? e.g. a json dictionary alike

{
 "rsyncurl": {
   "required": True,
   "description": "url or hostname:/directory for rsync to use"
 },
 "shellescape": {
   "description": "avoid usual shell escaping (not recommended)",
   "choices": ["yes", "no"]
   },
   ...
}

Looking at the protocol I see no indication of "required" or "choices" to be actually explicitly provided by the remote fields, so I guess just supposed to be included in the text, so may be given current state of things, aforementioned dictionary would be simply {"NAME": "DESCRIPTION"}, which someone makes this proposed TODO less valuable.