As I see you exclude "all possibles", and now there is no place where add new configs :>
Of course I don't want to exclude all possibilities
He asked a generic question, so I gave a generic answer.
But let's make at least one example:
What I mean by "preferably never" is that we should try to avoid "standalone top-level" parameters and try to at least group them together per feature or feature set, or category, or whatever else that makes sense.
Bad example (7 standalone parameters):
manaEnabled: false
manaBattleUI: false
manaUnlockResearch: STR_SORCERY # empty by default
manaTrainingPrimary: false
manaTrainingSecondary: false
manaWoundThreshold: 200 # default is 200
manaReplenishAfterMission: true
Good/better example (1 parameter group):
mana:
enabled: false
battleUI: false
unlockResearch: STR_SORCERY # empty by default
trainingPrimary: false
trainingSecondary: false
woundThreshold: 200 # default is 200
replenishAfterMission: true
I think your "Preferably never." refer to variables like `int Mod::DOOR_OPEN` not "variables" like `int _surrenderMode;` and I hope this second form is preferred by you.
This is correct?
Yes, second form is generally preferred.
But as I said above, please try to not create "too many" top-level YAML nodes.
I am guilty of creating too many myself in the earlier days, and I hate myself for it now... many of these global variables could have been grouped together nicely (e.g.
https://www.ufopaedia.org/index.php/Ruleset_Reference_Nightly_(OpenXcom)#Basescape.2FPersonnel ).
And changing them now is not possible, because literally every mod uses them and I cannot break backwards compatibility.