Using NamedAarrays.jl I can define an array as:

```
x = NamedArray( zeros(2,3,4),
(
[:A, :B],
[:X, :Y, :Z],
1:4
),
(:Dim1, :DimXYZ, :DimNum)
)
```

I’d like to write it as:

```
x = NamedArray( value = 0, dim_struct =
(
:Dim1 = [:A, :B],
:DimXYZ = [:X, :Y, :Z],
:DimNum = 1:4
))
```

Using a named tuple of arrays to represent the dimension structure and item names,

and have the system take the length of each dimension from the length of each array.

Similarly I can specify x[:A, :, :]

But it would by nice to write it as x.Dim1.A

Are there any packages that allow this?