> The pattern is to take the basest class or interface possible for your arguments and return the most specific class or interface possible for your return types. This gives your callers the most flexibility in passing in types to your methods and the most opportunities to cast/reuse the return values.
I'm not sure if this is required, tests should always run in source "dotnet build" variant and not anything being published, in worst case my CIs will poke me to add this back.