animate(Object, var1=new_value1, var2=new_value2, ..., time, loop, easing)
I'm sure there's some excuse for this abomination, but it's quite annoying since it means it doesn't support positional arguments properly.
Ran into this recently when attempting to do something like this, which doesn't work since the list can't be made associative with identifiers to feed animate with named args (DM only supports strings and paths for associative lists, which is terrible but that's another request):
//For the curious, this is useful for abstracting animation sets and changing them dynamically
var/list/animation = list(
new_value1,
new_value2,
new_value3,
time,
loop,
easing,
)
/proc/animatize(X)
animate(arglist(list(X)+animation))
return
It'd be nice to stick the variable args after the strict ones to improve feng shui and allow calling this proc with positional arguments as well.
According to this post associative lists are a combination of a red-black tree and an array, so they'll maintain insertion order, and this code should be safe.
Also, you can use anything except a number as a key in an associative list.