type: object
description: |
    A media category — a top-level grouping in the Bigscreen TV / store UI that
    contains one or more `ProductCollection`s. Mirrors `Schemas.ProductCategory`
    (LegacySchemas.ts). Drives the home-screen rails and the unity thumbnail
    textures rendered on top of them.
required: [id, name, title, entitlementClass]
properties:
    id: { type: string }
    createdAt: { type: string, format: date-time }
    name:
        type: string
        deprecated: true
        description: Internal name. Obsolete — use ids instead.
    urlName:
        type: string
        description: URL slug; auto-updated when `title` changes.
    title:
        type: string
        description: Visible category name.
    description:
        type: string
    productCollectionIds:
        type: array
        items: { type: string }
        description: Collections that belong to this category.
    entitlementClass:
        type: string
        description: "`EntitlementClass` value the category surfaces (e.g. `TWO_DAY_RENTAL`, `OWNERSHIP`)."
    unityTextureConfig:
        type: object
        properties:
            imageWidth: { type: integer, default: 173 }
            imageHeight: { type: integer, default: 256 }
            canvasWidth: { type: integer, default: 512 }
            canvasHeight: { type: integer, default: 512 }
        description: Image and canvas sizes used when generating the unity thumbnail texture.
    isScheduled:
        type: boolean
        description: Whether the category honors the per-collection scheduling windows.
    defaultCollectionIndex:
        type: [integer, "null"]
        description: Index into `productCollectionIds` to surface by default.
example:
    id: "01HZD12345ABC678DEF90GHJKM"
    createdAt: "2026-04-22T10:14:00.000Z"
    name: "rentals"
    urlName: "rentals"
    title: "Rentals"
    description: "Movies and shows available to rent."
    productCollectionIds:
        - "01HZE12345ABC678DEF90GHJKM"
    entitlementClass: "TWO_DAY_RENTAL"
    unityTextureConfig:
        imageWidth: 173
        imageHeight: 256
        canvasWidth: 512
        canvasHeight: 512
    isScheduled: true
    defaultCollectionIndex: 0
