I’m in favour of option 1), one explicit exchange for an isotope only changes one atom. A brief note somewhere in the documentation, a reference (perhaps with an active internet hyperlink) to the relevant reference implemented. Which could be another page curated by GP Moss here, or e.g., IUAPC’s 2021 report (Standard atomic weights of the elements 2021 (IUPAC Techn..., open access, table 1, column 7).
Option 2) could be/become an optional extension to Avogadro though if one wants an isotopic pattern for mass spectrometry, editors like ChemDraw have the advantage to display multiple molecules/fragments and their m/z at once.
While I do not qualify as «trained user» in any of these programs, I relayed the question to the robot of https://chat.mistral.ai/chat. Subject to review (some of the answers added a link to the manual), the output is the Markdown attached below.
This will require a bit of work because in most cases, this involves tweaking the coordinate block. At the moment, most of the input generators use “shortcuts” to do that like S_xyz handled by Avogadro.
I think the best solution for this is to add an optional second line indicating how atoms with isotopes are handled, e.g. S_xyz_M $mass or S(Iso=$I)_xyz or similar syntax.
I’ll put that in the possibly helpful use of AI, although verification is absolutely needed when there isn’t a link to the manual.