Hmm, I guess we do have to be flexible in the inputs if we want to allow this. I'm just slightly concerned about performance, though this may be premature optimization. One could make the API:

```
SphericalRepresentation(representation=None, lon=None, lat=None, distance=None, ...)
```

then this example still works, and it's just when we pass lon/lat or distance that we have to be explicit.