Pattern Cards+implementation+keys and classes
A Pattern Class is a certain kind of pattern. eg.
- cards of a certain type
- cards with a certain name
- card plus a certain name
- plus cards with a certain combination of types.
- etc.
A Pattern Key is a string that is an intermediary index between patterns and cards. Within a pattern class, each key corresponds 1-1 with a pattern, and each card corresponds 1-1 with a key.
note: we need assure that no two pattern classes could generate the same key.
challenge: It would be (much) better not to have to know about pattern classes as a hook author or Pattern Card Wagneer. Thus we face the challenge of taking a pattern definition syntax (which could be a subset of WQL) and figuring out which pattern class it belongs to- or if none, to declare the pattern invalid.
pseudo code:
class TypePattern < PatternClass
def key_for(card)
"Type:#{card.type}"
end
end