TypeScript's 'readonly' property kind of sucks.
It's extremely easy to break - just pass a readonly property to a function that expects a mutable one, and mutate it.
Fortunately, they're planning to fix this with a flag in the next version.

Source: x.com/mattpocockuk/status/1836478870301675670