validate() {
    // Functions that return true when the field is invalid
    const isNull = (v) => v == null
    const intrinsicInvalidations = {
      version: isNaN, // required, int
      parentType: isNull, // required, str
      accountId: isNull, // required, str
      appId: isNull, // required, str
      sampled: (v) => (v == null ? false : isNaN(v)), // not required, int
      priority: (v) => (v == null ? false : isNaN(v)), // not required, float
      timestamp: isNaN // required, int
    }
    for (const [key, validator] of Object.entries(intrinsicInvalidations)) {
      if (validator && validator(this[key]) === true) {
        this.#isValid = false
        this.invalidReason = `${key} failed validation test`
        return
      }
    }
    this.#isValid = true
  }
Ensures that each intrinsic value is valid and updates `isValid`
accordingly. If any intrinsic is not valid, the whole set is invalid.