I like a good type system, so I have been maxing out the GraphQL type system, e.g. I have things like,
types in the schema, rather than defensively programming in resolvers.
With typed functional programming, there’s a bit more of a trade off with specifically typing things, because of parametric polymorphism etc.
But for APIs my gut feeling, is the more precise the types the better.
Loose-y goose-y types like
String are good to have around when things are genuinely ambiguous and aesthetically / syntactically pleasing, but that’s about it.
Could you take it too far?