Yes that's it. Though there's a few tricky things to be mindful of when implementing castling - king not moving, king moving to a square that is occupied by the castling rook, or stepping into a discovery attack, that would otherwise be blocked by the rook ... I found it easiest to just remove the rook -> check all squares are safe -> move the king -> place a new rook at the destination square. Maybe this will help you avoid some bugs i found in my code when implemeting FRC

Also, Ethereal's FRC Perft test suite was very helpful for making sure everything works properly.
Since there is no official UCI command for FRC (as far as i know), the biggest problem i found was trying to figure out how to encode the castling move when sending it to the GUI (and decoding the move sent from GUI). I believe most GUIs and engines just encode the castling move as king capturing the rook on the side you are trying to castle towards. But as PK said, Arena seems to be broken when playing FRC matches, i never got that one working properly.