mcrawford620 wrote:It looks like CardPrinted has a CardRules, which seems to contain everything about a card? What about the actual Card object is so heavy?
you are welcome

Exactly. CardPrinted is created for each variant of card printed in each set (4 islands in M13, 4 for M12, 2 from NPH and so on). This class is great for collection management. Each CardPrinted contains name, edition, rariry, picture index and a reference to CardRules object.
There is one and only CardRules object for each card name, regardless of number of its reprints. Here all the basic information is stored - type, color, manacost, oracle text (it is not parsed here into triggers or abilities). This class is good for deckbuilding.
Why is Card so heavy? You'd better have a look at the forge.Card class declaration

It contains just everything a card might experience during game - counters, damage, changes of everyting until EOT, chosen colors, types, etc. Unlike CardPrinted and CardRules which are supposed to be immutable and exist as a single instance for each card, the forge.Card instances were copied with all of their fields when someone requested some Cards from the factory, and that was a source of slowdowns.
At the moment there are no Card instances when the game starts, that allows it to start a bit faster than before and cosume less memory.