Implementation: Have two orientable docking blocks: turret docking blocks and standard docking blocks.
When placed in a group, they have an \"output\" like weapons. This is the block in the \"frontmost\" layer of the group, and it is chosen the same way the weapon outputs are chosen. The output can also be set manually, like weapons, with \"R\" in astronaut mode.
Standard docking ports dock output to output. Turret docking ports dock with the core over the output. Both types only dock with themselves.
Groups of docking blocks are activatable in the hotbar. When a group of docking blocks is activated, transparent \"blocks\" appear over each output on nearby ships. The markers are green is the ship can securely dock, yellow if the ship can insecurely dock, and red if the ship cannot dock. Meanwhile, a blue block appears over the output of the activated group. Docking occurs when the blue block intersects with a green block. The ship attempting to dock rotates to the nearest 90 degrees and locks one block above the other docking module. This \"nearest 90 degrees\" is how a turret\'s default orientation is chosen.
A ship can securely dock if its mass is under 15 * effective blocks. Effective blocks is number of blocks in the smaller of the docking groups times 2, plus half of the extra blocks in the larger group. A ship can insecurely dock with 30 * effective blocks. Insecure docking means that when either ship accelerates or is hit, the docking breaks.
If the both docking groups are the same size, either ship can be flown. If one docking group is smaller, the ship with that docking group cannot be flown. Docking does add mass to the to the ship. The turn rate is the lower of the two ships.