I am far from an expert in this area, but I dabble with bits of music theory in a trivial way, mostly to try and improve my guitar ‘skills’ from ‘pathetic’ to merely ‘poor’
As far as I am able to deduce, the names are held as data in the executable and are not constructed per se - at least that was the position in 2.4.1. However, I think the internal engine may have a had a revamp with 2.5, so the above if it were true as a guess, it might not be now.
I have no idea, but looking at the State File it seems that the logic is interval based, which makes sense. For both scales and chords handling things in terms of chromatic intervals simplifies transposition, as the operation is independent of the key.
So, some thoughts generally
1 I’m not aware of any standard chord naming convention, and books I have read do vary. I think the naming structure in Scaler is logical, and although any such naming will have issues, parsing might be a feasible approach.
2 As I’m sure you know, naming chords from the constituent notes is not without difficulty. Trivially, a stacked 13h has more notes than a guitar player has fingers. I thought the general rule was that for extended chords the essential elements were the root (for key), third (tonality), seventh (dominant or not) and then the extension could give a reasonable indicator of what to call it. However, an add2 has the same notes in it as an add 9, so they can only be differentiated by pitch and not by notes
3 Then there is the ‘slash’ thing. There are 48 possible triads over any bass note, Some are just triads with a note doubled, some 7ths, and some indeterminate incomplete 9th, 11th or 13ths. It’s a wrinkle.
4 If you are trying to develop something one way rather than try and parse markers, is to dump the State File and analyse that. This is in XML and I’m sure you have seen that the chords ae defined in terms of midi notes. It’s trivial to figure out the intervals by taking MOD(12)+1 with an offset for the key by assuming the first note is the root (although there might be an issue with slash chords). The Chord Sets are XML with just have the midi notes in, but there is no indication of the key, whereas the State file has both the key and mode (albeit in UUID form, but I posted a map from the UUIDs to these on this board.).
I’m doing some work in this at the moment and found public Python database which lists chord intervals for about 78 chord types. I’ve done a spread sheet with these in to help me figure out what plays against what side slipping or whatever.