A lot of effort for too
little gameplay.
Otherwise chances to find a
Goody Hut on exactly a Plot with a Bonus Ressource that then als
triggers exactly that Goodie out of all valid ones is
extremely low.
You would have very
very little chances to ever see them ingame ...
This nonsense was not my intent.

Did not think with present system (which lead to the above result).
To make this possible, we would need to create new "Goody Huts", with separate configuration that would only become valid / placed on specific Bonus Ressources.
(And most likely they would need new graphics as well.)
To Clarify This:
For every single "Bonus Ressource Goody" you want, you will need to create in XML a separate "Bonus Ressource Goody Hut" of its own as well !!!
That is the only way you can match immersion and actually also trigger those goodies.

If there is no other way -> then I cancel it myself.

To add a separate goody hut for all (used) bonus resource truly do not worth it.
(hopefully) can be something like (I did think about cc. this "simple" one):
Goodies get an XML tag which determinates WHERE they can triggered.
Differently from the already existent: <bWaterGoody> which is a simple 1 or 0 bolean.
Something like: <FeatureBoolean> in the bonusinfos.xml
which adds a list WHERE that bonus can appear.
But at here something like: <BonusBoolean> -> on which bonuses can the exact goodie triggered -> AND there only that ones can be triggered which have that bonus in their <BonusBoolean>.
Example:
There are 3 goddies which includes BONUS_CORN in their <BonusBoolean>.
So IF there a goodie hut on corn: only that 3 can be triggered (no other goodies) and all will have 33% chance.
But off course if all 3 goddies have different bonus resources in their <BonusBoolean> (near the corn as extra ones) then can be triggered on different bonus resources as well.
Also can be used because bonuses already have rules where they can appear.
Like <TerrainBooleans> , <FeatureBooleans> , max/ min latitude, peaks, hills, flatland (like a goodie with "mountain man" then appear only on mountains).
But all the others: <TerrainBooleans>, etc... (hopefully) - if there is intent - also can be imported to determinate WHERE can certain goodies appear/ which ones can appear on certain (near the) bonus resources: terrains, terrain feautures, plot type, etc...
Don`t bring further the technical part - I am no programmer.
Lessons for modding beginners:
The
more complicated / complex / realistic / immersive ... you make things the
more effort you will have in
design and implementation ...
My short life story about games.

But will remain the same.
Your big mistake here:
You just think in "immersion" like a player. (That completely ignores the technical solution.)
But you also need to think as a modder - think in systems, think in mathematics (e.g. chances), think in logic ....
Yes I always think about: immersion, historical reality, real life logic (over gameplay too).
Also have "heretic" beliefs like prefer player only features (comes from crusader kings 2 where needed to ADD a line ai_will_do = yes for even make really easy things available for ai, because by base any added stuff were player only).
And about 2 dozen similarly heretic.