Những tấm thẻ sưu tầm của bạn cuối cùng cũng có tác dụng: tăng tiền thuê
Các thẻ tài sản bạn giành được giờ đây tăng tiền thuê của chính bạn tại ô đó — thẻ càng hiếm, mức tăng càng lớn, tối đa +30%.

Nói đơn giản
Thắng một ván sẽ thả một tấm thẻ tài sản sưu tầm vào kho đồ của bạn. Cho đến nay tấm thẻ đó thuần túy chỉ để trang trí. Giờ nó làm việc cho bạn: sở hữu một tấm thẻ sẽ tăng tiền thuê bạn thu được đúng tại ô đó suốt cả ván.
Mức tăng tỷ lệ theo độ hiếm, và chỉ tấm thẻ hiếm nhất mà bạn sở hữu trên một ô được tính — các mức tăng không bao giờ cộng dồn. Tổng bị giới hạn ở +30%, nên không tấm thẻ đơn lẻ nào có thể một mình định đoạt ván đấu.
Cho người thích chi tiết kỹ thuật
Một mô-đun engine mới cards.ts là nguồn chân lý duy nhất cho thang độ hiếm (thường 5 / hiếm 10 / sử thi 20 / huyền thoại 30, giới hạn cứng ở 30). GameState có thêm một ánh xạ theo từng vị trí, từ ô → phần trăm tăng; computeRent và rentForDisplay áp dụng round(rent × (1 + pct/100)) sau bội số ×2 của thế độc quyền chưa xây, nên hai bội số hoán vị được và các ván mặc định không có thẻ vẫn giữ tiền thuê nguyên vẹn từng byte.
// 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 stackDaemon đọc kho đồ của mỗi người chơi đang ngồi một lần khi ván bắt đầu (user_inventory ⋈ inventory_items), giữ độ hiếm cao nhất cho từng ô, và nướng ánh xạ theo vị trí vào trạng thái ban đầu — nên cả ván vẫn có thể phát lại một cách tất định mà không cần đọc cơ sở dữ liệu giữa chừng. Bot không sở hữu thẻ nào, và ánh xạ bị bỏ hoàn toàn khi không ai tại bàn sở hữu thẻ.
Giai đoạn 2 phát hành thuần code — các mức tăng nằm trong JSON engine_state. Một migration tiếp theo, 0032, sau đó phân bậc 28 thẻ khởi tạo theo nhóm ô và thêm một bộ chọn có trọng số (70 / 20 / 8 / 2 giữa thường / hiếm / sử thi / huyền thoại) để chiến thắng thực sự thả những tấm thẻ hiếm hơn theo thời gian thay vì chỉ toàn thẻ thường.
