it is funny to start with a simple typescript type, or interface, that is a like a struct, just a bag of data, and then have some reason to migrate toward an actual class - because there is functionality that makes oop sense to keep with it... but the types and the ergonomics quickly fall apart. from a lot of angles it would be better to not go for a class but keep just a struct and have helper functions that take that struct type as an argument.