public static async Task <IMaterialOption> Create(string key, CC0Asset value, Task <PreviewImage> favicon)
        {
            int previewImageSize = 128;
            int orgImgSize       = 16;

            return(new CC0MaterialOption()
            {
                name = key,
                asset = value,
                variants = value.Downloads.Keys.ToArray(),
                selectedVariant = value.Downloads.Keys.Count - 1,
                orgImage = await favicon,
                previewImage = await GrabPreviewImage(value, previewImageSize),
                previewImageSize = previewImageSize,
                orgImgSize = orgImgSize
            });
        }
        private static async Task <PreviewImage> GrabPreviewImage(CC0Asset value, int previewImageSize)
        {
            string preview = value.PreviewSphere[$"{previewImageSize}-PNG"];

            if (preview == null)
            {
                preview = value.PreviewSphere[$"{previewImageSize}-JPG"];
            }
            if (preview == null)
            {
                preview = value.PreviewSphere.Last().Value;
            }
            if (preview != null)
            {
                return(await PreviewImage.LoadUri(preview));
            }
            return(null);
        }