public static bool NonDestructiveReplacement<TDescriptor, TCoordinate, TGlobalTransform, TDirection, TLocalPivot, TVector, TGlobalPivot>(TDescriptor replacement, TDescriptor existing) where TDescriptor : IEntityDescriptor<TGlobalTransform> where TGlobalTransform : struct, ITransform<TCoordinate, TGlobalTransform> where TLocalPivot : IConvertibleToGlobalPivot<TGlobalTransform, TGlobalPivot>, IPivot<TVector, TDirection, TLocalPivot> where TGlobalPivot : IConvertibleToLocalPivot<TGlobalTransform, TLocalPivot>