Proposition
Any and all codebases should start from a types file.
Helps in blueprinting the code, and more or less adheres to the practice of defining your functions, all of them, before writing out any of them. Kind of like a bird's eye view of it.
Possible limitations are web related or asynchronous code. (tRPC/gRPC ? I'm not well versed here). There's also something called session types, which might help express async code, or add a temporal aspect in its type system (experimental).
Overall seems to be great practice (hell, let the LLMs fill in the gaps).
Also fun with new, more expressive type systems.