type: object
description: |
    Shared activity — `Activity` class from
    [`cloud/src/Activities/Schemas.ts`](../../../../cloud/src/Activities/Schemas.ts).
    A live instance of an `ActivityTemplate` attached to a room
    (YouTube, Hyperbeam browser, etc.). Each `Activity` belongs to one
    room, has one `owner` (the only user with admin permissions on it),
    and carries a host-managed `state` blob synced to the rest of the
    room.
required: [id, owner, activityTemplateId, roomId]
properties:
    id: { type: string }
    createdAt:
        type: integer
        description: Unix milliseconds.
    updatedAt:
        type: integer
        description: Unix milliseconds.
    owner:
        description: The activity owner — `BigscreenUser` shape (loosely typed).
        type: object
        additionalProperties: true
    activityTemplateId:
        type: string
        description: ID of the `ActivityTemplate` this instance was created from.
    activitySnapshot:
        type: object
        description: |
            `PublicApp` — denormalised copy of the template at
            activity-creation time, so the activity survives template
            mutations.
        additionalProperties: true
    roomId: { type: string }
    version:
        type: string
        description: Activity version — tied to the room it's attached to.
    title:
        type: string
        description: |
            Currently-active title (e.g. for YouTube, the title of the
            video currently playing). Mutable.
    displayTitle:
        type: string
        description: Fixed display title (e.g. `"YouTube"`).
    screenShot:
        type: string
        format: uri
        description: URL of the latest screenshot from the host. Currently unused.
    state:
        description: |
            `ActivityState` — host-managed state blob, propagated to all
            users in the room. Free-form per `schema`.
        additionalProperties: true
    schema:
        type: string
        description: "`ActivitySchema` — `Unknown`, plus per-template variants."
example:
    id: "act_01HZQ01234"
    createdAt: 1762462440000
    updatedAt: 1762462500000
    owner:
        bigscreenAccountId: "acct_01HXJ4Q12345"
        userSessionId: "sess_01HZP12345"
    activityTemplateId: "tmpl_youtube"
    activitySnapshot: {}
    roomId: "room:abc1234567"
    version: "1.42.0"
    title: "How To Train Your Dragon (full movie)"
    displayTitle: "YouTube"
    screenShot: ""
    state: {}
    schema: "Unknown"
