A struct to specify the domain range of a resource buffer, as defined by compute kernels and data interfaces. Data domains can be multi-dimensional, expression-based, or empty. Empty domains on pins imply a single value, like a parameter.