Por que CancellationToken é separado de CancellationTokenSource?

Eu estou procurando uma justificativa do motivo pelo qual a CancellationTokenestrutura do .NET foi introduzida além da CancellationTokenSourceclasse. Entendo como a API deve ser usada, mas também quero entender por que ela foi projetada dessa maneira. Ou seja, por que temos: var cts = new...