lighty-version 0.8.6

Minecraft version management for Lighty Launcher
Documentation
# lighty-version


Version metadata types for [LightyLauncher](https://crates.io/crates/lighty-launcher).

## Note


This is an internal crate for the LightyLauncher ecosystem. Most users should use the main [`lighty-launcher`](https://crates.io/crates/lighty-launcher) crate instead.

## Features


- **Version Metadata**: Comprehensive metadata structures for Minecraft versions
- **Builder Pattern**: Construct version configurations easily
- **Type Safety**: Strongly typed version information
- **Serialization**: Full serde support for JSON import/export

## Structure


```
lighty-version/
└── src/
    ├── lib.rs                  # Module declarations and re-exports
    ├── version_builder.rs      # Version builder pattern
    ├── lighty_builder.rs       # LightyUpdater builder
    └── loader_extensions_impl.rs # Loader-specific extensions
```

## Usage


```toml
[dependencies]
lighty-version = "0.6.3"
```

```rust
use lighty_version::version_metadata::{VersionMetaData, VersionBuilder};

// Use version metadata
let metadata = VersionMetaData {
    id: "1.21".to_string(),
    main_class: "net.minecraft.client.main.Main".to_string(),
    // ... other fields
};

// Or use the builder
let builder = VersionBuilder::new()
    .id("1.21")
    .main_class("net.minecraft.client.main.Main")
    .build();
```

## Types


### VersionMetaData


Complete metadata for a Minecraft version including:
- Version ID
- Main class
- Libraries
- Assets
- Arguments
- Download URLs

### VersionBuilder


Builder for constructing version metadata:

```rust
use lighty_version::version_metadata::VersionBuilder;

let builder = VersionBuilder::new()
    .id("1.21")
    .main_class("net.minecraft.client.main.Main")
    .asset_index("16")
    .build();
```

## Integration


This crate is typically used with `lighty-loaders` to provide version information:

```rust
use lighty_loaders::version::Version;
use lighty_version::version_metadata::VersionMetaData;

// Version objects contain VersionMetaData internally
let version = Version::new(/* ... */);
let metadata: &VersionMetaData = version.get_metadata();
```

## License


MIT

## Links


- **Main Package**: [lighty-launcher]https://crates.io/crates/lighty-launcher
- **Repository**: [GitHub]https://github.com/Lighty-Launcher/LightyLauncherLib
- **Documentation**: [docs.rs/lighty-version]https://docs.rs/lighty-version