Doing complex promotion rules like in the different-armies variant you are working on might still be too difficult, though. There would not be enough promotion sets to predefine those for all armies (so that you can refer to the ones you need in set-specific morph parameters).
Note, however, that it is possible to save some on the number of promotion sets: in the promoChoice the promotion sets can restrict choices to the last N ranks (if N < promoZone), while it is also possible to exclude a choice on last rank. So you can merge the sets required for the last two ranks by restricting the choices for last rank to 1 rank (by a '1' suffix), and the choices for the forelast rank to 2 ranks, excluding the last rank (a '2' suffix and a '!' prefix). But it would probably still require more sets than you can have, if there are more than three armies.
Using set-specific promoChoice parameters that each define a complete promotion set is problematic, because you would not know how to refer to those in the morph parameters of the set. Because their sequence number in the resulting total promoChoice would depend on whether the other army is defined in a section before or after the current one. I suppose you could get around that by duplicating the group of sections, and then use the first group only for white armies, and the second group for black armies. Then the black promotion sets would always follow the white ones.
I have now copied this patch to betza.js too.
Doing complex promotion rules like in the different-armies variant you are working on might still be too difficult, though. There would not be enough promotion sets to predefine those for all armies (so that you can refer to the ones you need in set-specific morph parameters).
Note, however, that it is possible to save some on the number of promotion sets: in the promoChoice the promotion sets can restrict choices to the last N ranks (if N < promoZone), while it is also possible to exclude a choice on last rank. So you can merge the sets required for the last two ranks by restricting the choices for last rank to 1 rank (by a '1' suffix), and the choices for the forelast rank to 2 ranks, excluding the last rank (a '2' suffix and a '!' prefix). But it would probably still require more sets than you can have, if there are more than three armies.
Using set-specific promoChoice parameters that each define a complete promotion set is problematic, because you would not know how to refer to those in the morph parameters of the set. Because their sequence number in the resulting total promoChoice would depend on whether the other army is defined in a section before or after the current one. I suppose you could get around that by duplicating the group of sections, and then use the first group only for white armies, and the second group for black armies. Then the black promotion sets would always follow the white ones.