Do set the debugLabel of a focus node widget to help with diagnosing
focus issues.

Don’t set the onKey callback on a FocusNode or FocusScopeNode if
they are being managed by a Focus or FocusScope widget. If you want an
onKey handler, then add a new Focus widget around the widget subtree you
would like to listen to, and set the onKey attribute of the widget to your
handler. Set canRequestFocus: false on the widget if you also don’t want
it to be able to take primary focus. This is because the onKey attribute
on the Focus widget can be set to something else in a subsequent build,
and if that happens, it overwrites the onKey handler you set on the node.

Do call requestFocus() on a node to request that it receives the
primary focus, especially from an ancestor that has passed a node it owns to
a descendant where you want to focus.