GP just focused on the never-part of your question.
I wouldn’t call myself an expert in TypeScript’s type system (although I use it daily), so I’m not sure about that one.
I do know I would have omitted readonly if I did this myself, but perhaps by mistake.
GP just focused on the never-part of your question.