get_meta_fields <- function(x=c("labels", "tracks", "albums", "releases")) {
  is.char_of_length1(x)

  if (grepl ("id$", x))
    x <- sub("_?id$", "", x)

  x <- match.arg(x)
  if (x == "albums")
    x <- "releases"

  meta <- {
    list(
      labels = c("labelid", "label_name", "label_priority", "label_owner", sfBoolCase("label_is_dthree", "is_D3"), supply_chain_group="label_sc_group", "label_country")
    , releases = c(upc="releaseid", "release_name", release_date="release_releasedate", "release_marketing_priority", "release_version", sfBoolCase("release_is_compilation"), sfBoolCase("release_is_deleted"), "release_genre")
    , tracks = c("isrc", "track_name")
    )
  }

  ## Self name the rest... needed for the unlisting
  for (nm in names(meta))
    names(meta[[nm]]) <- colNamesFromVector(meta[[nm]])


  ## TODO:  Add flag to turn off this grouping
  if (x == "tracks")
    x <- c("labels", "releases", "tracks")
  else if (x == "releases")
    x <- c("labels", "releases")
  else if (x == "labels")
    x <- c("labels")

  ret <- c()
  for (x.i in x)
    ret <- c(ret, meta[[x.i]])
  return(ret)
}
