With next, Flutter moves focus to the next field on its own. No need for a custom FocusNode.
onFieldSubmitted runs when the user presses the action key, so give it the same method the submit button calls.
done is the neutral pick. When the form has one clear action, match the key to it: TextInputAction.send for a message, go for navigation, search for a query. The behavior is the same, but the keyboard now says what the key does.
That's almost the whole list. The rest are platform-bound: Android also has previous (jump back a field) and none (no action), iOS has join, route, continueAction, and emergencyCall. Using one on the wrong platform throws exception ONLY in debug mode.
One thing not to break: providing onEditingComplete replaces this default behavior, so the next focus and the keyboard close become your job.
Multiline fields are the other direction: there the return key must go down a line, not submit. Set maxLines above 1 and leave the rest alone: the keyboard type defaults to KeyboardType.multiline and the action to TextInputAction.newline, so the key inserts a line break. That's what users will expect in multiline text fields (comments, messages etc.)