Why are animation events so limited?

I was trying to make a function for spawning a prefab, it wasn’t showing up in the animation events and after googling and reading the docs, it seems like the only values it accepts are strings, floats, ints, object references, or AnimationEvent objects. But also, you can only have one of each.
“The parameter can be a float, string, int, or object reference, or an AnimationEvent object” - Unity - Manual: Use Animation Events
I don’t get why. Why can’t we have parameters like Vector3s or Transforms, and why can’t we have multiple of the same parameter? Why aren’t bools supported either? I see the same limitations with UI objects, although there is a way to get multiple parameters with OnClick events, it’s just a hassle because you have to do it with code and not in the inspector.

The animation event also supplies a parameter for a function.