parseSongFlat function
Parses a song from data.
Implementation
JsonMap parseSongFlat(JsonMap data) {
  final columns = List.generate(
    (data['flexColumns'] as List).length,
    (i) => getFlexColumnItem(data, i),
  );
  final song = <String, dynamic>{
    'title': nav(columns[0], TEXT_RUN_TEXT),
    'videoId': nav(columns[0], [
      ...TEXT_RUN,
      ...NAVIGATION_VIDEO_ID,
    ], nullIfAbsent: true),
    'thumbnails': nav(data, THUMBNAILS),
    'isExplicit': nav(data, BADGE_LABEL, nullIfAbsent: true) != null,
  };
  final runs = nav(columns[1], TEXT_RUNS);
  song.addAll(parseSongRuns(runs as List, skipTypeSpec: true));
  if (columns.length > 2 &&
      columns[2] != null &&
      (nav(columns[2], TEXT_RUN) as JsonMap).containsKey(
        'navigationEndpoint',
      )) {
    song['album'] = {
      'name': nav(columns[2], TEXT_RUN_TEXT),
      'id': nav(columns[2], [...TEXT_RUN, ...NAVIGATION_BROWSE_ID]),
    };
  }
  return song;
}