late-java-core 2.2.9

A Rust library for launching Minecraft Java Edition
use serde::{Deserialize, Serialize};
use crate::error::Result;

/// Información de versión de Minecraft
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VersionInfo {
    pub id: String,
    pub r#type: String,
    pub url: String,
    pub time: String,
    pub release_time: String,
}

/// Manifest de versiones de Minecraft
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VersionManifest {
    pub latest: LatestVersions,
    pub versions: Vec<VersionInfo>,
}

/// Versiones más recientes
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LatestVersions {
    pub release: String,
    pub snapshot: String,
}

impl VersionManifest {
    /// Obtener el manifest de versiones
    pub async fn fetch() -> Result<Self> {
        let client = reqwest::Client::new();
        let response = client
            .get("https://launchermeta.mojang.com/mc/game/version_manifest.json")
            .send()
            .await?;
        
        let manifest: VersionManifest = response.json().await?;
        Ok(manifest)
    }
}