use crate::round::RoundDuration;
use jiff::Zoned;
use nil_core::continent::ContinentSize;
use nil_core::player::PlayerId;
use nil_core::round::RoundId;
use nil_core::world::config::WorldConfig;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
pub struct RemoteWorld {
pub config: WorldConfig,
pub description: Option<String>,
pub created_by: PlayerId,
pub created_at: Zoned,
pub updated_at: Zoned,
pub has_password: bool,
pub current_round: RoundId,
pub round_duration: Option<RoundDuration>,
pub active_players: u32,
pub total_players: u32,
pub continent_size: ContinentSize,
}