

Thanks for the reply! Just one clarification: those <link> tags in index.html end up in the <head> of the game iframe (<publicId>.perchance.org/<name>), and iOS “Add to Home Screen” reads the icon of the top-level document (perchance.org/<name>), which has the platform’s default apple-touch-icon.png. The frame can’t touch the top document’s head (cross-origin — SecurityError), so the snippet changes the icon inside the frame but the Home Screen icon stays the default cube. I verified this: Share sheet picks up og:image fine, Home Screen doesn’t.
So the snippet doesn’t solve it — only the platform can, by rendering the generator’s $meta.image (or a new $meta.favicon, per your suggestion, which I support) as the apple-touch-icon of the generator’s top-level page, with fallback to the default. That would fix it for all generators at once.
Thanks, it worked!