Since you know specfically that the result is TSQLScript why turning it into a less comfortable to work with abstraction for consumers?

top parse method

internal parse method
To start working with TSQLScript and his batches one has to double-check or to perform a hard cast to TSQLScript just as you do in HotSwap method - why? Since it always was a TSQLScript instance.