anchor.diff:      last: Int
       userId: String
     ): AnalyticsArtworkRecommendationConnection
  +
  +  # Get price insights for a market for each calendar year sorted by year asc.
  +  analyticsCalendarYearMarketPriceInsights(
  +    artistId: ID!
  +    endYear: String
  +    medium: String!
  +    startYear: String
  +  ): [CalendarYearMarketPriceInsights!]
  +
  +  # Get list of calendar year price insights for an artist for each market sorted by year asc.
  +  analyticsCalendarYearPriceInsights(
  +    artistId: ID!
  +    endYear: String
  +    startYear: String
  +  ): [CalendarYearPriceInsights!]
   
     # Last updated timestamp
     analyticsLastUpdatedAt: AnalyticsDateTime
  
positive.code:   largeHighRangeCents: BigInt
    largeLowRangeCents: BigInt
    largeMidRangeCents: BigInt
    liquidityRank: Float
    lowRangeCents: BigInt
    medianSaleOverEstimatePercentage: Int
  
negative.code:   subtotal: Money
  }
  
  # Market Price Insights Calendar year
  type CalendarYearMarketPriceInsights {
    artistId: ID
    artistName: String
    averageSalePrice: BigInt
    createdAt: ISO8601DateTime
    id: ID!
    lotsSold: BigInt
    medium: String
    updatedAt: ISO8601DateTime
    valueSold: BigInt
    year: String!
  }
  
  # Price Insights Calendar year
  type CalendarYearPriceInsights {
    calendarYearMarketPriceInsights: [CalendarYearMarketPriceInsights!]
    medium: String!
  }
  
  # Autogenerated input type of CaptureHold
  input CaptureHoldInput {
    # A unique identifier for the client performing the mutation.
  