use alloc::string::String;
use hashbrown::HashSet;
use serde::{
Deserialize,
Serialize,
};
use crate::{
Gender,
Nature,
PartialStatTable,
ShinyChance,
};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EventData {
pub level: Option<u8>,
#[serde(default)]
pub shiny: ShinyChance,
pub gender: Option<Gender>,
pub nature: Option<Nature>,
#[serde(default)]
pub ivs: PartialStatTable,
#[serde(default)]
pub hidden_ability: bool,
#[serde(default)]
pub moves: HashSet<String>,
pub ball: Option<String>,
}