verbatimModuleSyntax, and the type import being emitted

An import used only as a type was being elided or preserved depending on flags nobody could keep straight, and the bundler saw a different module graph from the compiler.

// with verbatimModuleSyntax, what you write is what is emitted
import type { Order } from './order'      // erased
import { formatOrder } from './order'     // kept

// and the error it produces on the ambiguous form
import { Order, formatOrder } from './order'
// error if Order is only used as a type:
// 'Order' is a type and must be imported using a type-only
// import when 'verbatimModuleSyntax' is enabled

Forcing the distinction to be explicit is what makes the output predictable, and the migration is mechanical — the compiler names every file. What it fixed for us was a module with a side effect that was being elided because the only import from it happened to be a type, which had produced a bug that took two days in 2022.