I am trying to make an expanded Eurasian chess. I do not know if shogi style promotion (with promooffset) and western style promotion (with promochoice and maxpromote) may coexist, or if they can coexist, which one takes precedence?
They can coexist when specified through morph parameters. With the 'legacy method' of specifying promoZone and maxPromote, promoOffset would be used to decide the type of promotion you get when a promotable piece enters the zone. When it is 0 you get chess-like promotion, the choice defined by promoChoice.
Specification through morph is more flexible, but in simple cases more cumbersome. You can specify for each piece independently on which squares it promotes, and how, and can scatter these squares over the board in any way you want. You either mention for each square the promoted type when that is fixed (with ^ shorthand for the promoted version of the moving piece defined through promoOffset), or when there is choice specify * for Chess-like promotion (or a digit 1-9 for additional promotion sets specified in promoChoice) and | for Shogi-like.
They can coexist when specified through morph parameters. With the 'legacy method' of specifying promoZone and maxPromote, promoOffset would be used to decide the type of promotion you get when a promotable piece enters the zone. When it is 0 you get chess-like promotion, the choice defined by promoChoice.
Specification through morph is more flexible, but in simple cases more cumbersome. You can specify for each piece independently on which squares it promotes, and how, and can scatter these squares over the board in any way you want. You either mention for each square the promoted type when that is fixed (with ^ shorthand for the promoted version of the moving piece defined through promoOffset), or when there is choice specify * for Chess-like promotion (or a digit 1-9 for additional promotion sets specified in promoChoice) and | for Shogi-like.