When dealing with huge racks that are very full its often a pain to perform tiny rearrangements
it would be great to workaround this by temporary injecting empty rows and remove them again
something like this

Row functions
├── Swap Rows
│   ├── Row 1
│   │   ├── with Row 2
│   │   └── with Row 3
│   ├── Row 2
│   │   ├── with Row 1
│   │   └── with Row 3
│   └── Row 3
│       ├── with Row 1
│       └── with Row 2
├── Move Row
│   ├── Row 1
│   │   ├── to position 2
│   │   └── to bottom
│   ├── Row 2
│   │   ├── to top
│   │   └── to bottom
│   └── Row 3
│       ├── to top
│       └── to position 2
├── Insert empty row
│   ├── 3U
│   │   ├── top
│   │   ├── between rows 1 & 2
│   │   ├── between rows 2 & 3
│   │   └── bottom
│   └── 1U
│       ├── top
│       ├── between rows 1 & 2
│       ├── between rows 2 & 3
│       └── bottom
└── Remove empty rows
    ├── all
    ├── empty row y
    └── empty row x