So I created this flowchart for developers to use. It’s big – you’ll need to click through, open it, and expand to see the details.
Warnings: I am not a lawyer, I am a technologist. This is not legal advice. This is my personal attempt, as a technologist, to collate available information and share what I have learned. I have taken care with this, but I am just some dude on the Internet. I’m very happy to make corrections if you see an issue – I already found and fixed one major error.
I’m happy to help explain bits of this or otherwise help out.