I do think some sort of content negotiation module is in order (have been thinking on it for almost a year): v2: Content negotiation · Issue #2665 · caddyserver/caddy · GitHub – as you can tell, this is not an easy thing to get right, so I haven’t implemented it quite yet because I don’t deem it essential for a v2 release. Maybe I’ll work it into v2.1 or a little later, we’ll see.
Feel free to comment on that issue and link to this thread, it’s a good case study to keep in mind.