Unity's Material object allows animating properties of all materials on a renderer, there's no built-in way to target only a specific material slot, meaning you have to create a separate mesh if you want to animate the same property on 2 different slots, unnecessarily increasing the performance rank.
This could be implemented by either adding a state behavior which copies a parameter to a mesh's materiał parameter at a given slot or by adding a new component, which contains an array of ints/floats/bools and a reference to the renderer, material slot, and the property path. Unity doesn't allow defining custom properties at runtime, like how Material does with shader parameters and Skinned Mesh does with blend shapes, but accessing array elements by index is possible. When the value at a given index is animated, the component would set the property at a defined material index of provided render