TypeScript 6.0: what actually changed, what will break after the upgrade, and whether you should move now