versa 1.9.0

Versa types and utilities for developing Versa client applications in Rust
Documentation
# Versa Rust Test Suite

This directory contains tests for the versa-rust library, focusing on serialization and deserialization of versioned schemas.

## Running Tests

### With cargo nextest (recommended)
```bash
# Run all tests
cargo nextest run --all-features

# Run with CI profile (less parallelism, more output)
cargo nextest run --all-features --profile ci

# Run specific test file
cargo nextest run basic_types --all-features
```

### With standard cargo test
```bash
cargo test --all-features
```

## Test Structure

- `basic_types.rs` - Tests for basic types like Currency, SchemaVersion, Person, and Metadatum
  - Verifies type conversions and serialization
  - Tests differences between schema versions (e.g., Person type in v2.0.0)

## Schema Versions

The tests cover multiple schema versions:
- **v1.11.0** - Uses string passenger field in flights
- **v2.0.0** - Uses Person object for passenger field with metadata support

## Key Differences Between Versions

### Passenger Field Evolution
- v1.11.0: `passenger: Option<String>`
- v2.0.0: `passenger: Option<Person>` where Person includes:
  - `first_name`, `last_name`, `preferred_first_name`
  - `email`, `phone`
  - `metadata: Vec<Metadatum>`

### Schema Structure
Both versions use the same top-level structure:
```json
{
  "schema_version": "x.x.x",
  "header": { ... },
  "itemization": { ... },
  "payments": [ ... ],
  "footer": { ... }
}
```

## Configuration

Nextest configuration is in `.config/nextest.toml` with profiles for:
- `default` - Standard development testing
- `ci` - Conservative settings for CI environments