For request types entities are also added with IReturn, but IReturn is a complex interface which I have excluded. But type still have extends IReturn<HttpResult>. Any way to not include base interface?
HttpResult should never be in referenced in your DTOs, it’s a server-only concept which wraps a Response with additional HTTP behavior, only the Response DTO it wraps should be declared in IReturn<TResponseDto>. The only dependency your DTOs should be referencing is ServiceStack.Interfaces.dll, if it’s referencing any other implementation .dll’s it’s no longer a clean Services Contract and you’ll run into interoperability issues when consumed from different languages.
You also shouldn’t use interfaces in place of concrete DTOs, it’s fine to have Request / Response DTOs implement the same interfaces, but should not be used as a substitute for a concrete type, e.g. as a Property Type or in IReturn<T> which should only ever contain the Response Type or a raw response like IReturn<string>, IReturn<byte>.
You don’t need to specify a IReturn<T> marker for your Request DTOs but then you wont be able to get a Typed API.