def METHOD_NAME(self):
    if None in (self.file_type, self.owner, self.utimes):
        raise RuntimeError(f"{self} must have file_type, owner & utimes")
    if stat.S_ISLNK(self.file_type) ^ (self.mode is None):
        raise RuntimeError(f"only symlinks must omit mode, got {self}")
    if self.file_type & ~(stat.S_IFMT(self.file_type)):
        raise RuntimeError(f"bad .file_type bits in {self}")
    if self.mode is not None and (self.mode & stat.S_IFMT(self.mode)):
        raise RuntimeError(f"bad .mode bits in {self}")
    if (self.chunks is not None) ^ stat.S_ISREG(self.file_type):
        raise RuntimeError(f"{self} must have .chunks iff it is a file")
    is_dev = stat.S_ISBLK(self.file_type) or stat.S_ISCHR(self.file_type)
    if (self.dev is not None) ^ is_dev:
        raise RuntimeError(f"{self} must have .dev iff it is a device")
    if (self.dest is not None) ^ stat.S_ISLNK(self.file_type):
        raise RuntimeError(f"{self} must have .dest iff it is a symlink")