checkPropertyCanBeValid = (candidate, key, value, check = undefined) => {
  return (
    (typeof key === 'string' ||
      (!!check &&
        CX(
          check,
        )`Records can only have string-named properties: ${candidate}`)) &&
    (!canBeMethod(value) ||
      (!!check &&
        // TODO: Update message now that there is no such thing as "implicit Remotable".
        CX(
          check,
        )`Records cannot contain non-far functions because they may be methods of an implicit Remotable: ${candidate}`))
  );
}
@param {unknown} candidate
@param {PropertyKey} key
@param {unknown} value
@param {Checker} [check]