REQUIREMENT_PLOT_ADJACENT_DISTRICT_TYPE_MATCHES is a RequirementType and not a RequirementID or RequirementSetID. So far as I remember it is valid in all three expansions.
REQUIREMENT_PLOT_IS_MOUNTAIN is a valid pre-existing RequirementType at least when GS is being used. I am not sure if it is valid for Vanilla or RaF. And yes you should be able to use that instead of a REQUIREMENT_PLOT_IMPROVEMENT_TYPE_MATCHES
The larger problem though is whether the game will understand and implement the yield on the Mountain plot and let city citizens be assigned to work the mountain plot(s). I can't remember at the moment whether the Inca folks actually work mountain tiles or whether its all just adjacency to mountains that they get like they did in Civ5. Nevermind -- reading comprehension is a thing I guess. You did say you had already cracked this part of the issue.
---------------------------------------
I think you should download and read my pdf file's chapter on Dynamic Modifiers and Game Effects. Or the two tutorial threads re using Modifiers that NycholusV created before he moved on from modding Civ6.
You can certainly create your own RequirementSetID and RequirmentID -- and everyone pretty much does this when adding a modifier with a set of requirements. What you cannot do is create new RequirementTypes.
Every new RequirmentSetId needs a "test" method such as this
Code:
<RequirementSets>
<Row>
<RequirementSetId>MACHU_PICCHU_YIELD_MODIFIER_REQUIREMENTS</RequirementSetId>
<RequirementSetType>REQUIREMENTSET_TEST_ANY</RequirementSetType>
</Row>
</RequirementSets>
Snippeted from some personal code where I am adding an additional effect via a modifier to the Macchu Picchu World Wonder.
Or here where I create a plot has Stone RequirementSet
Code:
<Replace>
<RequirementSetId>RESOURCE_IS_STONE</RequirementSetId>
<RequirementSetType>REQUIREMENTSET_TEST_ALL</RequirementSetType>
</Replace>
Whether you use
Code:
<RequirementSetType>REQUIREMENTSET_TEST_ANY</RequirementSetType>
or
Code:
<RequirementSetType>REQUIREMENTSET_TEST_ALL</RequirementSetType>
depends entirely on what you want the modifier to do. If you want a series of conditions ALL of which must be satisfied then you use "TEST_ALL" -- if you have a series of conditions any one of which being satisfied should allow the modifier to be applied then you want "TEST_ANY".