> what's the difference between assert and xassert?

xassert is actually a no op unless DEBUGLOGGING is turned on.  Basically, anywhere where the assert statement can lead to a measurable slow down (e.g. because it is in a very simple function in an inner loop), changing it to xassert is a way to preserve the self-documenting nature of the assert statement without actually slowing down the code.  And if you turn on DEBUGLOGGING, they turn back into real assert statements, which may help find a bug that you're looking for.

As for these asserts, I don't actually use the LTransform classes yet, so it doesn't really matter.  But probably better to leave them as asserts until such time as they get unit tested appropriately.