I do understand that you would like to think about inclusion in `read()` for every feature.
However, having a well-defined API would mean we define it now as "all features" and don't change anything about that later on.
Users won't be happy when changing what `read()` "means" every time.

Technically, defining read as always (only) reading MCN and ISRCs is an option, but I wouldn't call that "clean", because it involves "magic features". (why exactly these features?)
It does have the upside of "keeping the speed impact as low as (now) possible on old libdiscid derivatives".
However, even if some tools are unmaintained, patching these at package level would be possible and advisable, since the ISRC change already has a big enough impact.

(I will post this also on the ticket, because it is important)