<!-- source-hash: d9605237dce2835e781a9bc603ec1576 -->
This file defines the core `Media` interface used throughout the application to represent various media assets like images and videos with comprehensive metadata.

## Key Components

- **`Media` interface** - Primary export defining the structure for media objects
- **Type discrimination** - Uses `type` field to distinguish between 'image' and 'video' media
- **Optional metadata fields** - Supports accessibility, display, and video-specific properties

## Usage Example

```typescript
import { Media } from './media';

// Image media example
const imageMedia: Media = {
  id: 'hero-banner-001',
  type: 'image',
  src: '/images/hero-banner.jpg',
  alt: 'Modern office workspace with plants',
  title: 'Our Workspace',
  caption: 'Where innovation happens',
  thumbnail: '/images/hero-banner-thumb.jpg',
  width: 1920,
  height: 1080
};

// Video media example
const videoMedia: Media = {
  id: 'product-demo-001',
  type: 'video',
  src: '/videos/product-demo.mp4',
  alt: 'Product demonstration video',
  poster: '/videos/product-demo-poster.jpg',
  thumbnail: '/videos/product-demo-thumb.jpg',
  width: 1280,
  height: 720,
  duration: 120 // seconds
};

// Type-safe usage
function renderMedia(media: Media) {
  if (media.type === 'video') {
    // TypeScript knows duration property is available
    console.log(`Video duration: ${media.duration}s`);
  }
}
```