How do you control individual layer's roughness/specular/metallic amount in a landscape material?

I have a landscape material with grass, rock, dirt, mud, etc. Each of these should technically have separate roughness and specular values. How do you control these for each individual layer?

same as with diffuse or normalmaps: add a copy of your layerblend node and connect a constant node to it.