anchor.diff:  /// ...where "light" is `FontWeight.w300`, "regular" is `FontWeight.w400` and
   /// "medium" is `FontWeight.w500`.
   ///
  -/// By default, text styles are initialized to match the 2018 Material Design
  -/// specification as listed above. To provide backwards compatibility, the 2104
  -/// specification is also available.
  -///
  -/// To explicitly configure a [Theme] for the 2018 sizes, weights, and letter
  -/// spacings, you can initialize its [ThemeData.typography] value using
  -/// [Typography.material2018]. The [Typography] constructor defaults to this
  -/// configuration. To configure a [Theme] for the 2014 sizes, weights, and letter
  -/// spacings, initialize its [ThemeData.typography] value using
  -/// [Typography.material2014].
  +/// The [TextTheme] API was originally based on the original material (2014)
  +/// design spec, which used different text style names. For backwards
  +/// compatibility's sake, this API continues to expose the old names. The table
  +/// below should help with understanding the mapping of the API's old names and
  +/// the new names (those in terms of the 2018 material specification).
  +///
  +/// Each of the [TextTheme] text styles corresponds to one of the
  +/// styles from 2018 spec. By default, the font sizes, font weights
  +/// and letter spacings have not changed from their original,
  +/// 2014, values.
  +///
  +/// ```
  +/// NAME       SIZE   WEIGHT   SPACING  2018 NAME
  +/// display4   112.0  thin     0.0      headline1
  +/// display3   56.0   normal   0.0      headline2
  +/// display2   45.0   normal   0.0      headline3
  +/// display1   34.0   normal   0.0      headline4
  +/// headline   24.0   normal   0.0      headline5
  +/// title      20.0   medium   0.0      headline6
  +/// subhead    16.0   normal   0.0      subtitle1
  +/// body2      14.0   medium   0.0      body1 (bodyText1)
  +/// body1      14.0   normal   0.0      body2 (bodyText2)
  +/// caption    12.0   normal   0.0      caption
  +/// button     14.0   medium   0.0      button
  +/// subtitle   14.0   medium   0.0      subtitle2
  +/// overline   10.0   normal   0.0      overline
  +/// ```
  +///
  +/// Where "thin" is `FontWeight.w100`, "normal" is `FontWeight.w400` and
  +/// "medium" is `FontWeight.w500`. Letter spacing for all of the original
  +/// text styles was 0.0.
  +///
  +/// The old names are deprecated in this API.
  +///
  +/// Since the names `body1` and `body2` are used in both specifications but with
  +/// different meanings, the API uses the terms `bodyText1` and `bodyText2` for
  +/// the new API.
  +///
  +/// To configure a [Theme] for the new sizes, weights, and letter spacings,
  +/// initialize its [ThemeData.typography] value using [Typography.material2018].
   ///
   /// See also:
   ///
  
positive.code:     TextStyle? caption,
      TextStyle? button,
      TextStyle? overline,
    }) {
      return TextTheme(
        headline1: headline1 ?? this.headline1,
        headline2: headline2 ?? this.headline2,
        headline3: headline3 ?? this.headline3,
        headline4: headline4 ?? this.headline4,
        headline5: headline5 ?? this.headline5,
        headline6: headline6 ?? this.headline6,
        subtitle1: subtitle1 ?? this.subtitle1,
        subtitle2: subtitle2 ?? this.subtitle2,
        bodyText1: bodyText1 ?? this.bodyText1,
        bodyText2: bodyText2 ?? this.bodyText2,
        caption: caption ?? this.caption,
        button: button ?? this.button,
        overline: overline ?? this.overline,
  
negative.code:   /// If you do decide to create your own text theme, consider using one of
    /// those predefined themes as a starting point for [copyWith] or [apply].
    const TextTheme({
      TextStyle? headline1,
      TextStyle? headline2,
      TextStyle? headline3,
      TextStyle? headline4,
      TextStyle? headline5,
      TextStyle? headline6,
      TextStyle? subtitle1,
      TextStyle? subtitle2,
      TextStyle? bodyText1,
      TextStyle? bodyText2,
      this.caption,
      this.button,
      this.overline,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is headline1. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? display4,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is headline2. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? display3,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is headline3. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? display2,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is headline4. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? display1,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is headline5. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? headline,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is headline6. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? title,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is subtitle1. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? subhead,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is subtitle2. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? subtitle,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is bodyText1. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? body2,
      @Deprecated(
        'This is the term used in the 2014 version of material design. The modern term is bodyText2. '
        'This feature was deprecated after v1.13.8.',
      )
      TextStyle? body1,
    }) : assert(
           (headline1 == null && headline2 == null && headline3 == null && headline4 == null && headline5 == null && headline6 == null &&
            subtitle1 == null && subtitle2 == null &&
            bodyText1 == null && bodyText2 == null) ||
           (display4 == null && display3 == null && display2 == null && display1 == null && headline == null && title == null &&
            subhead == null && subtitle == null &&
            body2 == null && body1 == null),
           'Cannot mix 2014 and 2018 terms in call to TextTheme() constructor.',
         ),
         headline1 = headline1 ?? display4,
         headline2 = headline2 ?? display3,
         headline3 = headline3 ?? display2,
         headline4 = headline4 ?? display1,
         headline5 = headline5 ?? headline,
         headline6 = headline6 ?? title,
         subtitle1 = subtitle1 ?? subhead,
         subtitle2 = subtitle2 ?? subtitle,
         bodyText1 = bodyText1 ?? body2,
         bodyText2 = bodyText2 ?? body1;
  
    /// Extremely large text.
    final TextStyle? headline1;
  