If you look at my vehicles you'll find I do brake lights with a script instead of an animation. The brakelight animation, for some reason, only keeps up and makes sense for the person driving the vehicle. For other players, it seems to lag tremendously and stay on the wrong setting for many seconds.
and Zeblote is correct. Steering and springs! Nothing else, as far as I know. And Zeblote probably knows better than me.
The steering sequence goes from far right to far left, and while not steering, it uses the frame in the middle.
The first keyframe of spring0 (or 1, etc) should have hub0 at its normal position, and this position is when it's fully compressed.
The last keyframe should have hub0 translated down to its fully extended position, whatever that is. If you make an animation that can accommodate 1 unit of translation, but then only make the spring datablock's length 0.5, it'll work fine. (But if you make an animation which ends at 0.5, and make the spring length 1, it'll stop animating halfway down) If you try to make the hub do anything but go up and down, it won't care. But I haven't tried that recently.
I'm also not certain but it might help to make the interpolation linear on spring animations. I haven't discovered how to make them perfectly line up with the wheel in-game. Fortunately, this will probably never actually matter to you, since the differences are so minute during normal gameplay.