Modify implementation to support arbitrary dimensionality and custom field names.

Merged Adam Reichold requested to merge arbitrary-dimensionality into main

Merge request reports