MySQL's internal data structures change from version to version without notice. Everyone wants abstract APIs. But MySQL engineering management executives dont want to spend the effort to implement them.
In their defense, MySQL is already so late in delivery that it's hard to justify tasking people to work on that instead.
To demolish that argument, one of the main reasons that MySQL is so slow to ship, is BECAUSE we dont have workable abstract interfaces to our internal data structures.