Here's what I'm saying isn't easy: imagine that you want to maximize() familiar weight (or any other stat where familiar weight is beneficial), and $effect[chorale of companionship] is recommended. That's the starting point, $effect[chorale of companionship].
And now that I think about it .skill is trivial to implement, so I just did that.
I still think it would also be just as useful if the .skill and .items fields were added to $effects[] too, but at this point I probably sound like a broken record about that.