I suspect that you have many more properties here than you need. Most of this state can be in the focus controller, I think, can't it?  Only things that need build-time configuration, or that need to be persistent or that need to  behave like settings should be here.

Unless you write out documentation explaining what all of this is for, I don't believe that you need it.

I'm concerned about the 'next' and 'priority' properties: they make me think that you're trying to create some competely general focus controller that can work with any number of possible focus modes.  I think that will make it more difficult, and I don't think you can make it work that way anyway. Each focus mode has very specific details that you have to get right in the code. You can't write something generic and have it work.  I think that things like priorities and fallbacks are going to be hardcoded into the logic of your code no matter what you do, so don't set out to make them configurable here.