public static object Deserializer(System.Type expected, global::Orleans.Serialization.BinaryTokenStreamReader stream)
 {
     AdventureTerreInterfaces.Models.NPCInfo result = new AdventureTerreInterfaces.Models.NPCInfo();
     result.Descriptors = ((List<Descriptor>)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(List<Descriptor>), stream)));
     result.Id = ((Int64)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(Int64), stream)));
     result.Key = ((Guid)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(Guid), stream)));
     result.MovesRandomly = ((Boolean)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(Boolean), stream)));
     result.Name = ((String)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(String), stream)));
     result.Responses = ((List<Descriptor>)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(List<Descriptor>), stream)));
     result.StartIn = ((Int64)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(Int64), stream)));
     return result;
 }
 public static object DeepCopier(object original)
 {
     AdventureTerreInterfaces.Models.NPCInfo input = ((AdventureTerreInterfaces.Models.NPCInfo)(original));
     AdventureTerreInterfaces.Models.NPCInfo result = new AdventureTerreInterfaces.Models.NPCInfo();
     Orleans.Serialization.SerializationContext.Current.RecordObject(original, result);
     result.Descriptors = ((List<Descriptor>)(Orleans.Serialization.SerializationManager.DeepCopyInner(input.Descriptors)));
     result.Id = input.Id;
     result.Key = ((Guid)(Orleans.Serialization.SerializationManager.DeepCopyInner(input.Key)));
     result.MovesRandomly = input.MovesRandomly;
     result.Name = input.Name;
     result.Responses = ((List<Descriptor>)(Orleans.Serialization.SerializationManager.DeepCopyInner(input.Responses)));
     result.StartIn = input.StartIn;
     return result;
 }