docs: @NonNull
      public static Artwork fromJson(@NonNull JSONObject jsonObject) {
          @SuppressWarnings("WrongConstant") // Assume the KEY_META_FONT is valid
          Builder builder = new Builder()
                  .title(jsonObject.optString(KEY_TITLE))
                  .byline(jsonObject.optString(KEY_BYLINE))
                  .attribution(jsonObject.optString(KEY_ATTRIBUTION))
                  .token(jsonObject.optString(KEY_TOKEN))
                  .metaFont(jsonObject.optString(KEY_META_FONT))
                  .dateAdded(new Date(jsonObject.optLong(KEY_DATE_ADDED, 0)));
  
          String componentName = jsonObject.optString(KEY_COMPONENT_NAME);
          if (!TextUtils.isEmpty(componentName)) {
              builder.componentName(ComponentName.unflattenFromString(componentName));
          }
  
          String imageUri = jsonObject.optString(KEY_IMAGE_URI);
          if (!TextUtils.isEmpty(imageUri)) {
              builder.imageUri(Uri.parse(imageUri));
          }
  
          try {
              String viewIntent = jsonObject.optString(KEY_VIEW_INTENT);
              String detailsUri = jsonObject.optString(KEY_DETAILS_URI);
              if (!TextUtils.isEmpty(viewIntent)) {
                  builder.viewIntent(Intent.parseUri(viewIntent, Intent.URI_INTENT_SCHEME));
              } else if (!TextUtils.isEmpty(detailsUri)) {
                  builder.viewIntent(new Intent(Intent.ACTION_VIEW, Uri.parse(detailsUri)));
              }
          } catch (URISyntaxException ignored) {
          }
  
          return builder.build();
      }