Align(X, [Lefts/Rights/Centers/Marks, [First/Last/pcb_crosshair/Average[, Gridless]]])

Align(Y, [Tops/Bottoms/Centers/Marks, [First/Last/pcb_crosshair/Average[, Gridless]]])

Arguments:

X or Y | Select which axis will move, other is untouched.
Lefts, Rights, Tops, Bottoms, Centers, Marks | Pick alignment point within each object
First, Last, pcb_crosshair, Average | Alignment reference, First=Topmost/Leftmost, Last=Bottommost/Rightmost, Average or pcb_crosshair point
Gridless | Do not force results to align to prevailing grid.

Defaults are Marks, First.

For non-subcircuit objects: using Marks is not recommended, using Gridless is recommended.