You can use two different predicates in those services:
type Service {
Service.deps
}
type Service2 {
Service2.deps
}
Service.deps: [uid] @reverse @count .
Service2.deps: [uid] @count .
It is not possible to share the same predicate across types and have differing indexes.
No, DQL schema doesn’t have the concept of interfaces. They exist only in GraphQL schema.