"""
Package metadata management.

Provides dataclasses and utilities for managing package
and asset metadata in advanced packaging formats.
"""

from dataclasses import dataclass
from typing import List, Optional


@dataclass
class AssetMetadata:
    """Metadata for an asset in a package."""
    path: str
    original_path: str
    size: int
    checksum: str
    mime_type: Optional[str] = None


@dataclass
class PackageMetadata:
    """Metadata for a package."""
    format: str
    version: str
    created: str
    markitect_version: str
    assets: List[AssetMetadata]
    dependencies: List[str] = None