constructor(id, data, usesRemaining, nextReset) {
    // Use underscores to avoid conflict with property accessors.
    Object.assign(this, {
      _id: id,
      _data: data,
      _usesRemaining: usesRemaining,
      _nextReset: nextReset,
      _isValid: true,
      _isFrozen: false,
    })
  }
Token Constructor

@param {string} id token string
@param {*} data reserved for future use
@param {number} usesRemaining
   Number of uses remaining until the token is exhausted
@param {number} nextReset
   Time when the token can be used again even if it's exhausted (unix timestamp)