For Chrome, it didn't store screenshots in its manifest. Instead, it's uploaded through its dashboard. (ref) It only stores icons in the form of below. (ref)
"icons": {
"16": "icon16.png",
"32": "icon32.png",
"48": "icon48.png",
"128": "icon128.png"
},
And it's the same for Firefox Addons. But I found that in the Firefox web app, it contains a field like this. (ref)
"screenshots" : [
{
"src": "screenshot1.webp",
"sizes": "1280x720",
"type": "image/webp",
"platform": "wide",
"label": "Homescreen of Awesome App"
},
{
"src": "screenshot2.webp",
"sizes": "1280x720",
"type": "image/webp",
"platform": "wide",
"label": "List of Awesome Resources available in Awesome App"
}
]
And in all, I think there are two ways of implementing it. The first is to let developers declare the relative path of media in the manifest and store the files in their separate repos. Then we can use Joplin Bot to fetch the media from the repo and store it in joplin/plugins. The second is only allowing URLs in the manifest. In this way we don't need to store all the screenshots and it can support more media types potentially.