trackTurns = funcs => {
  if (!ENABLED || typeof globalThis === 'undefined' || !globalThis.assert) {
    return funcs;
  }
  const { details: X, note: annotateError } = globalThis.assert;

  hiddenCurrentEvent += 1;
  const sendingError = Error(
    `Event: ${hiddenCurrentTurn}.${hiddenCurrentEvent}`,
  );
  if (hiddenPriorError !== undefined) {
    annotateError(sendingError, X`Caused by: ${hiddenPriorError}`);
  }

  return /** @type {T} */ (
    funcs.map(func => func && wrapFunction(func, sendingError, X))
  );
}
Given a list of `TurnStarterFn`s, returns a list of `TurnStarterFn`s whose
`this`-free call behaviors are not observably different to those that
cannot see console output. The only purpose is to cause additional
information to appear on the console.

The call to `trackTurns` is itself a sending event, that occurs in some call
stack in some turn number at some event number within that turn. Each call
to any of the returned `TurnStartFn`s is a receiving event that begins a new
turn. This sending event caused each of those receiving events.

@template {TurnStarterFn[]} T
@param {T} funcs
@returns {T}