public static object Deserializer(System.Type expected, global::Orleans.Serialization.BinaryTokenStreamReader stream)
 {
     AdventureTerreInterfaces.Models.Direction result = new AdventureTerreInterfaces.Models.Direction();
     result.Cardinal = ((String)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(String), stream)));
     result.Flags = ((Dictionary<String,Boolean>)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(Dictionary<String,Boolean>), stream)));
     result.Room = ((IRoomGrain)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(IRoomGrain), stream)));
     result.RoomId = ((Int64)(Orleans.Serialization.SerializationManager.DeserializeInner(typeof(Int64), stream)));
     return result;
 }
 public static object DeepCopier(object original)
 {
     AdventureTerreInterfaces.Models.Direction input = ((AdventureTerreInterfaces.Models.Direction)(original));
     AdventureTerreInterfaces.Models.Direction result = new AdventureTerreInterfaces.Models.Direction();
     Orleans.Serialization.SerializationContext.Current.RecordObject(original, result);
     result.Cardinal = input.Cardinal;
     result.Flags = ((Dictionary<String,Boolean>)(Orleans.Serialization.SerializationManager.DeepCopyInner(input.Flags)));
     result.Room = ((IRoomGrain)(Orleans.Serialization.SerializationManager.DeepCopyInner(input.Room)));
     result.RoomId = input.RoomId;
     return result;
 }