docs: @NonNull
      public JSONObject toJson() throws JSONException {
          JSONObject jsonObject = new JSONObject();
          jsonObject.put(KEY_COMPONENT_NAME, (mComponentName != null) ? mComponentName.flattenToShortString() : null);
          jsonObject.put(KEY_IMAGE_URI, (mImageUri != null) ? mImageUri.toString() : null);
          jsonObject.put(KEY_TITLE, mTitle);
          jsonObject.put(KEY_BYLINE, mByline);
          jsonObject.put(KEY_ATTRIBUTION, mAttribution);
          jsonObject.put(KEY_TOKEN, mToken);
          jsonObject.put(KEY_VIEW_INTENT, (mViewIntent != null)
                  ? mViewIntent.toUri(Intent.URI_INTENT_SCHEME) : null);
          jsonObject.put(KEY_META_FONT, mMetaFont);
          jsonObject.put(KEY_DATE_ADDED, mDateAdded != null ? mDateAdded.getTime() : 0);
          return jsonObject;
      }