type: object
description: |
    Public channel group — the response shape returned by
    `getPublicChannelGroup` / `getPublicChannelGroups` in
    [`api/src/Channels.ts`](../../../../api/src/Channels.ts). Wraps a
    set of `Channel`s with display metadata. The admin `ChannelGroup`
    (with `channelIds`, `createdAt`, etc.) is the storage shape; this
    is the resolved public projection.
required: [name, channels]
properties:
    name:
        type: string
        description: URL-friendly slug.
    title:
        type: string
        description: Display title.
    imageUrl:
        type: string
        format: uri
        description: Optional thumbnail for the group tile.
    isPublished:
        type: boolean
        description: Whether the group is exposed to non-staff clients.
    channels:
        type: array
        items: { $ref: "./Channel.yaml" }
    textures:
        type: array
        description: Generated atlas `Texture` records associated with the group.
        items:
            type: object
            additionalProperties: true
example:
    name: "featured-this-week"
    title: "Featured This Week"
    imageUrl: "https://dev-internal-files.bigscreencloud.com/channel-groups/featured.png"
    isPublished: true
    channels:
        - id: "01HXKV5G6PQRS8T9UVWXYZABCD"
          name: "live-events"
          title: "Live Events"
          description: "Live concerts, sports, and special broadcasts."
          roomSettings: {}
          texture: {}
    textures: []
