Weltkueche Herkunft: kuratierte AT-Zweitlieferanten + Distraktor-Fixes (Thomas-Review)

Neu: additives `correct_for[heimat]` in buildTaskFor — uebersteuert die Gravitations-
Schaetzung NUR bei kuratierten Zutaten (echte Handelsdaten), alles andere unveraendert.
- mehl→AT+Ungarn (Weizenimport 2023: HU 604k >> DE 41k), kartoffel→AT+Schweiz,
  eier→AT+Slowakei (Variation weg vom Dauer-AT+DE), majoran→AT+Deutschland (statt FR),
  safran→Spanien+Iran (statt IT mit 1 t), feta/lamm→Griechenland+Bulgarien (Balkan statt FR).
- Datenfixes gegen „echter Lieferant faelschlich als Distraktor": AT raus aus Mozzarella-
  climate_possible + als Produzent ergaenzt; CH raus aus Kartoffel-climate_possible +
  Produzent; SK als Eier-Produzent; Aegypten-Zwiebel local→global (echter kleiner Lieferant).
- Verifiziert: 7 kuratierte korrekt; keine Regression (DE-Gerichte nutzen weiter Algorithmus).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-20 21:36:48 +02:00
parent 4c0183f2e0
commit bf2a4cd0d1
2 changed files with 64 additions and 11 deletions
@@ -527,7 +527,12 @@
"frankreich", "frankreich",
"portugal" "portugal"
], ],
"fact": "Safran ist das teuerste Gewürz der Welt — für 1 kg Safran braucht man ~150.000 Krokusblüten, alles per Hand gepflückt." "fact": "Safran ist das teuerste Gewürz der Welt — für 1 kg Safran braucht man ~150.000 Krokusblüten, alles per Hand gepflückt.",
"correct_for": {
"spanien": [
"iran"
]
}
}, },
"muskat": { "muskat": {
"nm": "Muskat", "nm": "Muskat",
@@ -717,7 +722,12 @@
"marokko", "marokko",
"mexiko" "mexiko"
], ],
"fact": "Majoran gehört zu den klassischen DACH-Würzkräutern für Sterz, Knödel und Bratwurst." "fact": "Majoran gehört zu den klassischen DACH-Würzkräutern für Sterz, Knödel und Bratwurst.",
"correct_for": {
"oesterreich": [
"deutschland"
]
}
}, },
"kraeuter": { "kraeuter": {
"nm": "Mediterrane Kräuter", "nm": "Mediterrane Kräuter",
@@ -1642,7 +1652,12 @@
"bulgarien", "bulgarien",
"serbien" "serbien"
], ],
"fact": "Weizen wird auf der größten Ackerfläche der Welt angebaut — mehr als 220 Mio Hektar." "fact": "Weizen wird auf der größten Ackerfläche der Welt angebaut — mehr als 220 Mio Hektar.",
"correct_for": {
"oesterreich": [
"ungarn"
]
}
}, },
"mais": { "mais": {
"nm": "Mais (Tortilla, Polenta)", "nm": "Mais (Tortilla, Polenta)",
@@ -2824,7 +2839,12 @@
"italien", "italien",
"spanien" "spanien"
], ],
"fact": "Echter Feta ist seit 2002 EU-rechtlich Griechenland vorbehalten — andere Länder dürfen nur „Käse nach griechischer Art\" verkaufen." "fact": "Echter Feta ist seit 2002 EU-rechtlich Griechenland vorbehalten — andere Länder dürfen nur „Käse nach griechischer Art\" verkaufen.",
"correct_for": {
"griechenland": [
"bulgarien"
]
}
}, },
"mozzarella": { "mozzarella": {
"nm": "Mozzarella", "nm": "Mozzarella",
@@ -2860,13 +2880,17 @@
"polen": { "polen": {
"t": 35000, "t": 35000,
"market": "eu" "market": "eu"
},
"oesterreich": {
"t": 15000,
"note": "AT-Molkereien produzieren Mozzarella",
"market": "eu"
} }
}, },
"climate_possible": [ "climate_possible": [
"niederlande", "niederlande",
"irland", "irland",
"daenemark", "daenemark",
"oesterreich",
"schweiz", "schweiz",
"belgien", "belgien",
"griechenland" "griechenland"
@@ -3172,7 +3196,12 @@
"aegypten", "aegypten",
"syrien" "syrien"
], ],
"fact": "Moussaka, Kebab und nordafrikanische Tagines werden klassisch mit Lammfleisch zubereitet — in Österreich kommt das meiste Lamm aus der Türkei, Spanien und Griechenland." "fact": "Moussaka, Kebab und nordafrikanische Tagines werden klassisch mit Lammfleisch zubereitet — in Österreich kommt das meiste Lamm aus der Türkei, Spanien und Griechenland.",
"correct_for": {
"griechenland": [
"bulgarien"
]
}
}, },
"huhn-spanien": { "huhn-spanien": {
"nm": "Hähnchen / Huhn (Paella)", "nm": "Hähnchen / Huhn (Paella)",
@@ -3432,6 +3461,10 @@
"iran": { "iran": {
"t": 1200000, "t": 1200000,
"market": "local" "market": "local"
},
"slowakei": {
"t": 60000,
"market": "eu"
} }
}, },
"climate_possible": [ "climate_possible": [
@@ -3451,7 +3484,12 @@
"philippinen", "philippinen",
"kenia" "kenia"
], ],
"fact": "Eier können prinzipiell überall produziert werden — Hühner sind extrem anpassungsfähig. Die meisten Eier in Europa werden lokal gegessen." "fact": "Eier können prinzipiell überall produziert werden — Hühner sind extrem anpassungsfähig. Die meisten Eier in Europa werden lokal gegessen.",
"correct_for": {
"oesterreich": [
"slowakei"
]
}
}, },
"fischsauce": { "fischsauce": {
"nm": "Fischsauce", "nm": "Fischsauce",
@@ -3928,10 +3966,13 @@
}, },
"irland": { "irland": {
"t": 330000 "t": 330000
},
"schweiz": {
"t": 450000,
"market": "eu"
} }
}, },
"climate_possible": [ "climate_possible": [
"schweiz",
"daenemark", "daenemark",
"schweden", "schweden",
"finnland", "finnland",
@@ -3946,7 +3987,12 @@
"chile", "chile",
"kolumbien" "kolumbien"
], ],
"fact": "Die Kartoffel kommt ursprünglich aus den Anden und wurde erst nach 1565 nach Europa gebracht. In Belarus isst eine Person ~180 kg pro Jahr — Welt-Spitze." "fact": "Die Kartoffel kommt ursprünglich aus den Anden und wurde erst nach 1565 nach Europa gebracht. In Belarus isst eine Person ~180 kg pro Jahr — Welt-Spitze.",
"correct_for": {
"oesterreich": [
"schweiz"
]
}
}, },
"zwiebel": { "zwiebel": {
"nm": "Zwiebel", "nm": "Zwiebel",
@@ -3965,7 +4011,7 @@
"aegypten": { "aegypten": {
"t": 3300000, "t": 3300000,
"note": "Drittgrößter Welt-Produzent, viel Export", "note": "Drittgrößter Welt-Produzent, viel Export",
"market": "local" "market": "global"
}, },
"usa": { "usa": {
"t": 2700000, "t": 2700000,
+8 -1
View File
@@ -1074,7 +1074,14 @@ function buildTaskFor(ingKey) {
.filter(([c, info]) => C[c] && c !== heimat && mrank(info.market) < 2) .filter(([c, info]) => C[c] && c !== heimat && mrank(info.market) < 2)
.sort((a, b) => (mrank(a[1].market) - mrank(b[1].market)) || (grav(b) - grav(a))) .sort((a, b) => (mrank(a[1].market) - mrank(b[1].market)) || (grav(b) - grav(a)))
.map(([c]) => c); .map(([c]) => c);
const correct = [heimat, ...realistic.slice(0, 1)]; // Heimat + eine realistische Zweit-Wahl (wie normaler Zweig: 2 Korrekte) // Kuratierte Zweit-Lieferanten (echte AT-Handelsdaten) übersteuern die
// Gravitations-Schätzung dort, wo sie danebenliegt (z.B. Weizen → Ungarn
// statt Deutschland). ADDITIV: greift NUR bei Zutaten mit `correct_for`
// für diese Heimat — alle anderen Zutaten bleiben unverändert.
const _curated = ((ing.correct_for && ing.correct_for[heimat]) || []).filter(c => C[c] && c !== heimat);
const correct = _curated.length
? [heimat, ..._curated]
: [heimat, ...realistic.slice(0, 1)]; // Heimat + eine realistische Zweit-Wahl
if (correct.length < 2) { // Garantie: es gibt IMMER eine zweite Wahl if (correct.length < 2) { // Garantie: es gibt IMMER eine zweite Wahl
const any = Object.entries(ing.producers) const any = Object.entries(ing.producers)
.filter(([c]) => C[c] && c !== heimat && !correct.includes(c)) .filter(([c]) => C[c] && c !== heimat && !correct.includes(c))