Looks good to me!
On controller you just target the boss, press the context menu button (it’s the square button on PlayStation controllers, like how you open your map), and select Focus Target.
It’s helpful on other jobs too. If you’re targeting adds in a fight, for example. I’d say it’s especially helpful for tanks, SMN, and RDM. As RDM I’m often helping to raise people and not targeting the boss.
For validation and/or (de)serialization: pydantic.
Otherwise, dataclasses.
I also like to replace tuples with NamedTuple, but I tend to use tuples a lot in the first place. It’s generally recommended to use dataclasses instead if you don’t specifically need tuple-like behavior.