using SVSim.Database.Models; namespace SVSim.EmulatedEntrypoint.Services; /// Resolves the card pool a pack draws from. Pure function over master data. public interface ICardPoolProvider { IReadOnlyList GetPool(PackConfigEntry pack); /// /// Returns the foil twin of if it exists in master data /// (foil card_id = base card_id + 1 by the cards.json convention), else null. One DB /// hit per call; expected ~0.64 calls per 8-card pack at the default 8% rate. /// TODO(caching): folds into the broader caching wave once one exists. /// ShadowverseCardEntry? TryGetFoilTwin(long baseCardId); }