type: object
description: |
    A scheduled collection of `MediaProduct`s — the second-level grouping under
    `MediaCategory`. Mirrors `Schemas.ProductCollection` (LegacySchemas.ts). Has
    an availability window so curators can stage holiday rails, premieres, etc.
    in advance.
required: [id, name, mediaProductIds]
properties:
    id: { type: string }
    createdAt: { type: string, format: date-time }
    name:
        type: string
        description: Internal Bigscreen name.
    startTimestamp:
        type: [string, "null"]
        format: date-time
        description: Availability window opens.
    endTimestamp:
        type: [string, "null"]
        format: date-time
        description: Availability window closes.
    mediaProductIds:
        type: array
        items: { type: string }
        description: Products in this collection, ordered.
    isPublished:
        type: boolean
        description: Whether the collection is currently surfaced.
    textures:
        type: array
        items:
            type: object
            additionalProperties: true
        description: Generated atlas textures the unity client renders.
example:
    id: "01HZE12345ABC678DEF90GHJKM"
    createdAt: "2026-04-22T10:14:00.000Z"
    name: "spring-2026"
    startTimestamp: "2026-04-01T00:00:00.000Z"
    endTimestamp: "2026-06-30T23:59:59.000Z"
    mediaProductIds:
        - "01HXKV8QRSTU9VWXYZABCDEFGH"
    isPublished: true
    textures: []
