At least for the layering + using text aspect, D2 support this:
defining diagrams as multiple layers like so
x -> y
layers: {
inside_x: {
a -> b
}
}
A fleshed out example hosted on our web service: https://app.terrastruct.com/diagrams/664641071