While researching information on a question about how Gramps calculated Ahnentafel numbers, I discovered that code for calculating Genealogical Numbering System values are scattered in Gramps.
Would they be a good candidate for consolidation with the Relationship Calculator?
Not sure if this is what you mean, but it could be useful to enhance the relationship calculator so that it returns not only the common ancestor of the two given people, but also their respective descendant numbers from that ancestor, according to the chosen scheme. So there would be one more input value and two more output values.
The Genealogical Numbering Systems (GNS) that is almost universally supported in Gramps as an on-screen or output option is the internal universally unique identifier (UUID) system: “Gramps ID”. The next easiest to support is the UUID system: Gramps internal handle. (You KNOW any place there is a Gramps ID, there is also a Handle. But the string length is a challenge & limitation.)
So a 1st implementation might be changing the Show ID option from a checkboxes to a Pop-up menu of available UUID systems.
The hope would be that once a GNS was made accessible in a library, that GNS Support (in Gramps Reports) display options could be added (with less effort) to any appropriate (progenitor-based oriented) Report or Chart.
So taking the example of 2 Descendant Reports which currently offer a different subset (6 out of 7) progenitor-based descendant GNSs supported in Gramps.
This means that the code to calculate 5 GNS IDs exists redundantly in just these 2 reports. They repeat again in various other reports, views and gramplets. And are entirely absent from other areas. Logic errors might exist in any instance of the code. But fixing in one doesn’t fix the other. And adding a new GNS to one doesn’t make it available to any of the others.
If instead, the Report could leverage a library of GNS options, it might request a list of GNSs compatible with progenitor-based descendant GNS options. Then the report could offer a pop-up of the 2 UUID (Gramps ID and handle) and the 7 known descendant options.