constructor(
    type: ?IntlFbtVariationTypeValue,
    token: ?string,
    range: ?$ReadOnlyArray<string>,
  ) {
    super(type, token);
    this._range = range;
  }
Strings with different hashes might have the same text, so we need to use
description to uniquely identify a string.
For example, in
 <fbt>
  <fbt:pronoun gender={$ex->getGender()} type="subject" human={true} />
  has shared <a href={link}>a photo</a>.
 </fbt>
`<a href={link}>a photo</a>` generates multiple strings with the same text:
{text: 'a photo', desc: 'In the phrase: She has shared {a photo}.'}
{text: 'a photo', desc: 'In the phrase: He has shared {a photo}.'}
....