type: object
description: |
    A report filed by one Bigscreen account against another, typically with a
    snapshot of the room context the incident happened in. Mirrors
    `Schemas.AccountReport`. The `Admin*` variant returned to admin endpoints
    additionally embeds `targetAccount` and `reporterAccount` `AdminAccount`s.
required: [id, reporterBigscreenAccountId, targetBigscreenAccountId, reason]
properties:
    id: { type: string }
    createdAt: { type: string, format: date-time }
    reporterBigscreenAccountId:
        type: string
        description: Account that filed the report.
    targetBigscreenAccountId:
        type: string
        description: Account being reported.
    reason:
        type: string
        description: Reporter-supplied reason / category.
    roomId:
        type: string
        description: Room the incident took place in (optional).
    roomName: { type: string }
    roomDescription: { type: string }
    roomAdminUsername: { type: string }
    roomCreatorBigscreenAccountId: { type: string }
    roomType: { type: string }
    roomSnapshot:
        type: object
        additionalProperties: true
        description: Snapshot of the room state at the time of the report.
    targetAccount:
        $ref: "./AdminAccount.yaml"
        description: Embedded `AdminAccount` for the target — present on `/admin/*` responses.
    reporterAccount:
        $ref: "./AdminAccount.yaml"
        description: Embedded `AdminAccount` for the reporter — present on `/admin/*` responses.
example:
    id: "rpt_01HZK12345ABC678DEF90GHJKM"
    createdAt: "2026-04-22T10:14:00.000Z"
    reporterBigscreenAccountId: "acct_01HXJ4Q12345"
    targetBigscreenAccountId: "acct_01HXJ4Q67890"
    reason: "harassment"
    roomId: "room_alpha"
    roomName: "Movie Night"
    roomDescription: "Friday-night feature"
    roomAdminUsername: "alice"
    roomCreatorBigscreenAccountId: "acct_01HXJ4Q12345"
    roomType: "private"
    roomSnapshot: {}
