fn jackobolan_into_unizombie(game: GameState) -> Option<GameState> {
    // actual card effect is discard for cost to summon but testing that
    // the card is in hand first short circuits on the fail case faster
    game.summon_from_hand(Card::JackOBolan)
        // mezuki seems to be the only discard aside that can pull unizombie
        // out of the deck ignoring the obvious unizombie/solitaire discards
        .and_then(|game| game.discard(Card::Mezuki))
        // summoned jackaboolan by discarding something,
        // now normal summon something that can mill unizombie
        .and_then(|game| game.clone().summon_from_hand(Card::SamuraiSkull)
            .or_else(|| game.summon_from_hand(Card::Gozuki))
        )
        .and_then(|game| game.mill_to_grave(Card::UniZombie))
        .and_then(|game| game.banish_from_grave(Card::Mezuki))
        .and_then(|game| game.summon_from_grave(Card::UniZombie))
}
/**
 * Attempts to use Jack 'o Bolan's discard to summon effect to get unizombie
 * out from the deck (ie not the hand).
 */
Attempts to use Jack 'o Bolan's discard to summon effect to get unizombie
out from the deck .
Attempts to use Jack ' o Bolan ' s discard to summon effect to get unizombie out from the deck .
fn jackobolan_into_unizombie(game: GameState) -> Option<GameState> {
    // actual card effect is discard for cost to summon but testing that
    // the card is in hand first short circuits on the fail case faster
    game.summon_from_hand(Card::JackOBolan)
        // mezuki seems to be the only discard aside that can pull unizombie
        // out of the deck ignoring the obvious unizombie/solitaire discards
        .and_then(|game| game.discard(Card::Mezuki))
        // summoned jackaboolan by discarding something,
        // now normal summon something that can mill unizombie
        .and_then(|game| game.clone().summon_from_hand(Card::SamuraiSkull)
            .or_else(|| game.summon_from_hand(Card::Gozuki))
        )
        .and_then(|game| game.mill_to_grave(Card::UniZombie))
        .and_then(|game| game.banish_from_grave(Card::Mezuki))
        .and_then(|game| game.summon_from_grave(Card::UniZombie))
}
fn jackobolan_into_unizombie ( game : GameState ) -> Option < GameState > { // actual card effect is discard for cost to summon but testing that // the card is in hand first short circuits on the fail case faster game . summon_from_hand ( Card :: JackOBolan ) // mezuki seems to be the only discard aside that can pull unizombie // out of the deck ignoring the obvious unizombie/solitaire discards . and_then ( | game | game . discard ( Card :: Mezuki ) ) // summoned jackaboolan by discarding something, // now normal summon something that can mill unizombie . and_then ( | game | game . clone ( ) . summon_from_hand ( Card :: SamuraiSkull ) . or_else ( | | game . summon_from_hand ( Card :: Gozuki ) ) ) . and_then ( | game | game . mill_to_grave ( Card :: UniZombie ) ) . and_then ( | game | game . banish_from_grave ( Card :: Mezuki ) ) . and_then ( | game | game . summon_from_grave ( Card :: UniZombie ) ) }
Attempts to use Jack 'o Bolan's discard to summon effect to get unizombie
 out from the deck (ie not the hand).
Attempts to use Jack ' o Bolan ' s discard to summon effect to get unizombie out from the deck ( ie not the hand ) .
game
GameState
game
GameState