The legacy engine reads RotationStart == RotationEnd == 0 as
unconstrained and its Pairs/RectBestFit strategies rotate freely, so it
returned poses a Fixed/BoundedSweep RotationPolicy forbids and the job
validator threw. DefaultPlateNester now delegates such requests to the
policy-aware OrderedPlateNester.
Fixes RunAsync_FiniteStockExhaustion_PreservesUnplacedRequirementAndLockedRotation.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>