Currently the tap and xcone service types assume the input dict has keys ra, dec and radius, and it substitutes them in that order into the 3 {}s in the adql and access_url templates.
Instead, the input dict should be able to have arbitrary keys, which would be substituted into the templates with explicit key names (e.g., {ra}, {dec} and {radius}.