I think the easiest way of memoizing would be adding a dictionary "_built_cards" and use the setdefault method of dictionaries.(as i did in the attached file).
an other approach would be to use a class-decorator to holde the dictionary...
The one you did is simpler. If we need memoizing more things, we'll move memoizing to decorators and such.
I added a test to prove the current implementation is not "correct" with respect to what we decided.
As far as I'm concerned, it's solved. Since you have a (likely) working patch, I assign this to you.