docs: NullSafeAccumulator dotAccess(FieldAccess access, boolean nullSafe) {
      if (access instanceof ProtoCall) {
        ProtoCall protoCall = (ProtoCall) access;
        Expression maybeUnpack = protoCall.unpackFunction();
        if (maybeUnpack != null) {
          Preconditions.checkState(
              unpackFunction == null, "this chain will already unpack with %s", unpackFunction);
          unpackFunction = maybeUnpack;
          accessType = protoCall.accessType();
        }
      }
      chain.add(access.toChainAccess(nullSafe));
      return this;
    }