award
1.a) How do I get any of these to use a custom shader?

1.b) How can I add my own option to this list if 1.a is not possible?
2) Where do I get the default shader code for the CanvasTexture so that I don't start from scratch?
3) Will a custom shader require me not using Sprite2D? Because I don't want to have to re-implement atlas textures, or sprite sheet animation, canvas groups, instancing, lights/shadows etc. I'm hoping whatever shader is used by Sprite2D with CanvasTexture deals with all of those features. If so just point to me the complete shader code, and I'll just copy paste and make modifications. If it's not in the GitHub repo but is autogenerated, how do I get that auto-generated shader code?
4) How do I use the new custom shader with Sprite2D? Do I make a new material and assign it to the Sprite2D material and then assign the new shader to this material? Because that doesn't seem to work, the original texture is still rendered, not my new material.