I think I prefer to keep the basic endpoints simple so they just do a single operation:  render.html, render.png, execute.js, 

If the user needs something fancier (like executing javascript to modify the image being rendered) then he can call render.json.