Comment by spider-mario

1 hour ago

It also means you can’t easily know the set of formats that the server could respond with, which in turns makes e.g. archival more difficult.

That entirely depends on the server. A good solution would be to include Link headers in all responses:

  Link: /some-page      rel="canonical"
  Link: /some-page.json rel="alternate" type="application/json"
  Link: /some-page.html rel="alternate" type="text/html"
  Link: /some-page.md   rel="alternate" type="text/markdown"