✨ What's New
- **Improved Documentation & Code Clarity**:
Enhanced the `iRail` class documentation and refactored code for better readability and maintainability. [45](https://github.com/tjorim/pyrail/pull/45)
- **README Updates**:
Improved language selection and session management sections for a better user experience. [42](https://github.com/tjorim/pyrail/pull/42)
- **Dependency Updates**:
Bumped `ruff` from 0.9.2 to 0.9.3 for the latest fixes and improvements. [44](https://github.com/tjorim/pyrail/pull/44)
⚠️ Breaking Changes
1. **Data Models**:
- Introduced `OccupancyName` enum, replacing string types for occupancy names.
- Updated data structures to replace wrapper classes with direct lists:
- `LiveboardDepartures` → `list[LiveboardDeparture]`
- `LiveboardArrivals` → `list[LiveboardArrival]`
- `ConnectionStops` → `list[ConnectionStop]`
- `CompositionSegments` → `list[Segment]`
- `CompositionUnits` → `list[Unit]`
- `DescriptionLinks` → `list[DescriptionLink]`
2. **Response Structure**:
- Simplified nested responses for easier access:
- `LiveboardApiResponse.departures` and `arrivals` are now optional (`None`).
- Removed nested access for lists (e.g., `.departure` and `.arrival`).
3. **Type Hint Changes**:
- Modernized type hints throughout the codebase:
- `Dict` → `dict`
- `List` → `list`
**Full Changelog**: [v0.3.0...v0.4.0](https://github.com/tjorim/pyrail/compare/v0.3.0...v0.4.0)