I just use 0 → 1 greyscale heightmaps, likely as we all use.
For the structure it’s the heightlerpwith2heightmaps node:
I only use the alpha-path, no diffuse and then use that alpha to blend materials, etc, etc..