{
    onPrepareHit(source, target, move) {
      if (move.hasBounced || move.flags["futuremove"] || move.sourceEffect === "snatch")
        return;
      const type = move.type;
      if (type && type !== "???" && source.getTypes().join() !== type) {
        if (!source.setType(type))
          return;
        this.effectState.genesis = true;
        this.add("-start", source, "typechange", type, "[from] ability: Genesis");
      }
    },
    flags: {},
    name: "Genesis",
    rating: 4.5,
    num: -32033
}