public static metagame.DeckDescriptor FromRemote(this remote.DeckDescriptor rm)
 {
     CardSet[] cardSets = new CardSet[rm.CardSets.Count];
     for (int i = 0; i < cardSets.Length; ++i)
     {
         cardSets[i].bits = rm.CardSets[i];
     }
     metagame.DeckDescriptor o = new metagame.DeckDescriptor(rm.Name, rm.CardNames.ToArray(), cardSets);
     return(o);
 }
 public static remote.DeckDescriptor ToRemote(this remote.DeckDescriptor rm, metagame.DeckDescriptor o)
 {
     if (o == null)
     {
         return(rm);
     }
     rm.Name = o.Name;
     rm.CardNames.AddRange(o.CardNames);
     UInt64[] bitsArray = new ulong[o.CardSets.Length];
     for (int i = 0; i < bitsArray.Length; ++i)
     {
         bitsArray[i] = o.CardSets[i].bits;
     }
     rm.CardSets.AddRange(bitsArray);
     return(rm);
 }