ATM it is a formatted text (click to expand)

$> git annex initremote myrsync type=rsync --whatelse
    avoid usual shell escaping (not recommended)
    (yes or no)
    (required) url or hostname:/directory for rsync to use
    size of chunks (eg, 1MiB)
    how to encrypt data stored in the special remote
    (hybrid or none or pubkey or shared or sharedpubkey)
    embed credentials into git repository
    (yes or no)
    how to encrypt filenames used on the remote
    (HMACSHA1 or HMACSHA224 or HMACSHA256 or HMACSHA384 or HMACSHA512)
    gpg key id
    add additional gpg key
    remove gpg key
    export trees of files to this remote
    (yes or no)
    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.