public object Clone() { var ret = new CardPropertySet() { Type = this.Type.Clone() as string, Size = this.Size.Clone() as CardSize, Properties = this.Properties.ToDictionary( x => x.Key.Clone() as PropertyDef, x => x.Value) }; return ret; }