How to get, set and unset layer color?

It seems batchPlay() isn’t considering passed target _id. I try:

batchPlay(
[
   {
      "_obj": "set",
      "_target": [
         {
            "_ref": "layer",
            "_id": 2
         }
      ],
      "to": {
         "_obj": "layer",
         "color": {
            "_enum": "color",
            "_value": "grain"
         }
      },
      "_isCommand": true
   }
],{
   "synchronousExecution": true,
   "modalBehavior": "execute"
});

But it still sets color to the active/selected layer and not to the layer ID 2.
Any tips @simonhenke?