I think you miss understood the reverse directive. You can’t set any reverse predicate as it was a custom thing, reverse edges just work on the same edge. By looking at your types, I can see that the only relationship you have between the Brand and the SubBrand is via subBrands and not brand. So in that case you should use like:
subBrands(func:type(SubBrand)){
dgraph.type
name
marketingMessage
<~SubBrand> {
name
}
}
Also, you can use Alias
subBrands(func:type(SubBrand)){
dgraph.type
name
marketingMessage
brand : <~SubBrand> {
name
}
}
Cheers.