More control over series states and state change
Right now series.states looks like the intuitive way to handle a lot of common situations, but its options are extremely limited. The only way to achieve many basic effects is to use mouse events, which do not always work well. It is also impossible to declaratively set a series' state through the API, instead this requires using the (undocumented) .setState() method.
This can become a real nightmare especially if using Highcharts inside a declarative framework like React or Vue where directly calling update methods on chart elements is problematic.
What I would propose is:
Implement more options in series.states -- ideally almost all presentational aspects of the series should be able to change by state, especially things like dataLabels and zIndex. Right now, achieving simple effects like "move a series to the top of the draw order when it is hovered" or "show all markers on a series when it is hovered" are needlessly hard to achieve, especially in React/Vue.
Allow series state to be set declaratively through a series.state option. If series.state is not undefined, then Highcharts should treat that as the current state of the series. This allows controlling state from outside of Highcharts. Example use case: implementing a custom legend component outside of Highcharts that controls the state of series inside the chart.
Add event hooks for state changes. I should be able to trigger side effects when a series is hovered/selected/shown, not just when the user mouses over or out. Something like events.onStateChange(oldState, newState) (or have .oldState and .newState on the event object).