This has been discussed before, to an extent.
So, the idea is to have default extras, where the syntax would be something like:
rich[-markdown]
Assuming the package has markdown
as a default extra, the default experience would then the same as what rich[markdown]
is today and to get the equivalent of rich
today, you’d have to do rich[-markdown]
.
There’s some details to figure out around this, like what to do if an extra deselects another extra and stuff.