code: async function sendTelemetry(payload) {
            utilsLogger.debug("called sendTelemetry payload");
  
            function throwIfInvalid(obj) {
              // Check: all keys and values must be strings,
              for (const k in obj) {
                if (typeof k !== "string")
                  throw new ExtensionError(`key ${k} not a string`);
                if (typeof obj[k] !== "string")
                  throw new ExtensionError(`value ${k} ${obj[k]} not a string`);
              }
              return true;
            }
  
            throwIfInvalid(payload);
            return studyUtils.telemetry(payload);
          }
docs: Send Telemetry using appropriate shield or pioneer methods.
  
  shield:
  - `shield-study-addon` ping, requires object string keys and string values
  
  pioneer:
  - TBD
  
  Note:
  - no conversions / coercion of data happens.
  
  Note:
  - undefined what happens if validation fails
  - undefined what happens when you try to send 'shield' from 'pioneer'
  
  TBD fix the parameters here.
  
  @param {Object} payload Non-nested object with key strings, and key values
  @returns {undefined}