Deine Sammelkarten tun endlich etwas: Mietboni
Die Grundstückskarten, die du gewinnst, erhöhen jetzt deine eigene Miete auf diesem Feld — je seltener die Karte, desto größer der Bonus, gedeckelt bei +30 %.

Kurz gesagt
Eine Partie zu gewinnen lässt eine Sammelkarte für ein Grundstück in dein Inventar fallen. Bisher war diese Karte reine Zierde. Jetzt arbeitet sie für dich: Eine Karte zu besitzen erhöht die Miete, die du auf genau diesem Feld kassierst, für die ganze Partie.
Der Bonus wächst mit der Seltenheit, und es zählt nur die seltenste Karte, die du für ein Feld besitzt — Boni stapeln sich nie. Die Summe ist bei +30 % gedeckelt, keine einzelne Karte reißt die Partie also an sich.
Für technisch Neugierige
Ein neues Engine-Modul cards.ts ist die einzige Quelle der Wahrheit für die Seltenheitsleiter (gewöhnlich 5 / selten 10 / episch 20 / legendär 30, hart gedeckelt bei 30). GameState bekam je Platz eine Zuordnung von Feld zu Bonusprozent; computeRent und rentForDisplay wenden round(Miete × (1 + Prozent/100)) nach der Verdopplung für unbebaute Monopole an, die beiden Faktoren sind also vertauschbar, und Standardpartien ohne Karten behalten byteidentische ganzzahlige Mieten.
// cards.ts — the single source of truth (web catalog.ts re-exports it)
export const CARD_RARITY_BOOST = { common: 5, rare: 10, epic: 20, legendary: 30 };
export const MAX_CARD_BOOST_PCT = 30; // total cap; boosts never stackDer Daemon liest das Inventar jedes sitzenden Spielers einmal beim Partiestart (user_inventory ⋈ inventory_items), behält je Feld die höchste Seltenheit und backt die Zuordnung je Platz in den Anfangszustand ein — die ganze Partie bleibt damit beim Nachspielen reproduzierbar, ohne mitten im Spiel die Datenbank zu lesen. Bots besitzen keine Karten, und die Zuordnung entfällt vollständig, wenn niemand am Tisch eine besitzt.
Phase 2 kam ohne Datenbankänderung aus — die Boni leben im JSON von engine_state. Eine anschließende Migration 0032 stufte dann die 28 Startkarten nach Feldgruppe ein und ergänzte einen gewichteten Zieher (70 / 20 / 8 / 2 auf gewöhnlich / selten / episch / legendär), damit Siege mit der Zeit tatsächlich seltenere Karten fallen lassen und nicht nur gewöhnliche.
