The document OpenID Connect | Google Identity Platform doesn't have a freeform feedback mechanism, so pardon me as I vent here.
When it says "JSON array" it means "JSON object". Okay yeah I figured out that one pretty quick but but but…
When it says "Base64-encoded JSON object", it's correct (yay!) but I sure wish it had said "'raw' (unpadded) Base64URL-encoded JSON object". That would have saved me some time stumbling around using other Base64 flavors. Thanks to the OpenID Connect spec, I was on the lookout for "URL", but I didn't know that padded-vs-unpadded was even a thing.
(I guess I write one whiny blog post about setting up Federated Identity code about once every seven years? Something like that. Anyhow.)