type TrackDownloadsTimeseries {
    items: [DownloadsTimeseries!]!
}

type TrackAnalytics {
    """Note that the streams field can not currently be federated due to connected sorting and pagination logic in the 'Product.tracks' resolver."""
    streams(countries: [String!], storeIds: [Int!], distributors: [Distributor!]): Streams!
    downloads(storeIds: [Int], countries: [String], startDate: String, days: Int, distributors: String): TrackDownloadsTimeseries!
}

type TrackSampleArtist {
    artistId: Int
    artistName: String
    artistType: String
}

type TrackSample {
    sampleId: Int
    uniqueTrackId: Int
    sampleType: String
    trackName: String
    isrc: String
    pLine: String
    trackLength: Int
    notes: String
    updatedDate: String
    artists: [TrackSampleArtist]
}

type TrackPublishing {
    usPublishingObligation: USPublishingObligation
    thirdPartyPublisher: String
    publisherNames: [String] @deprecated(reason: "Use `publishers.name`")
    publishers: [TrackPublisher!]!
}

type TrackPublisher {
  id: ID!
  name: String!
}

type Track @key(fields: "tuid") {
    analytics: TrackAnalytics
    audioAttributes: [TrackAudioAttribute!]!
    audioAttributesEdits: [TrackAudioAttribute!]!
    suggestedAudioAttributes(reviewQueueId: Int): [TrackAudioAttribute!]!
    durationMinutes: Int
    durationSeconds: Int
    explicit: String
    focusTrack: FocusTrack
    isOwner: Boolean
    instantGrats: [TrackInstantGrat]
    isrc: String
    isrcInfo: Isrc
    language: Language
    localizations: [TrackLocalization!]!
    lyrics: String
    metaLanguageCode: String
    name: String @deprecated(reason: "Use `trackName`.")
    number: Int @deprecated(reason: "Use `trackNumber`.")
    offerType: TrackOfferType!
    originalRightsHolderCountry: Territory
    """This Territory assumed standard ISO_3166_1_2016."""
    originalRightsHolderCountryId: Int @deprecated(reason: "Use `originalRightsHolderCountry.orchId`")
    ownershipRights: String
    performers: [Performer]
    pInfo: String
    previewStartTime: Int
    primaryArtists: [Artist] @deprecated(reason: "Use `participations` with a filter")
    product: Product
    productId: String
    publishing: TrackPublishing
    recordingCountry: Territory
    """This Territory assumed standard ISO_3166_1_2016."""
    recordingCountryId: Int @deprecated(reason: "Use `recordingCountry.orchId`")
    rightsAttributes(reviewQueueId: Int): [TrackRightsAttribute!]!
    rightsAttributesEdits: [TrackRightsAttribute!]!
    suggestedRightsAttributes(reviewQueueId: Int): [TrackRightsAttribute!]!
    samples: [TrackSample]
    source: String
    streamingAudioUrl(isCorrection: Boolean! = false): String
    territories: [String]
    trackName: String
    trackNumber: Int
    trackType: String
    tuid: ID!
    version: String
    volumeNumber: Int
    writers: [TrackWriter] @deprecated(reason: "Use `participations` with a filter")
}

type TrackInstantGrat {
      track: Track!
      date: String!
      store: Store!
      active: Boolean!
}

type TrackLocalization {
  trackName: String!
  version: String
  iTunesLanguage: ITunesLanguage
  artists: [Artist]! @deprecated(reason: "Should use type LabelParticipant.")
}

type Isrc @key(fields: "isrc") {
    isrc: String!
    tracks: TrackResult!
}

type TrackResult {
    totalCount: Int!
    tracks: [Track!]!
}

type FocusTrack {
    startDate: Date
    endDate: Date
}

type TrackOverridePricingTier {
    trackPricingOverrideId: ID!
    orchardPricingTier: OrchardPricingTier!
    trackId: ID!
}
