type: object
description: |
    Sanitized admin view of a Bigscreen account — `SanitizedAdminAccount`
    from [`auth/Schemas.ts`](../../../../auth/Schemas.ts) — the shape
    returned to admin callers from `/admin/account/*` and
    `/admin/account/query/*`. Built from the raw `BigscreenAccount` minus
    secret fields like password hashes; the Steam / Oculus / EmailPassword
    subobjects are flattened into `email`, `steamProfile`, and
    `oculusProfile`.
required: [id, username]
properties:
    id: { type: string, description: Bigscreen account UUID. }
    createdAt: { type: string, format: date-time }
    status:
        $ref: "./BigscreenAccountStatus.yaml"
    isVerified: { type: boolean, description: Whether the account's primary email is verified. }
    isStaff: { type: boolean, description: Whether the account belongs to Bigscreen staff. }
    username: { type: string }
    lowerCaseUsername:
        type: string
        description: |
            `username` lowercased — surfaced for case-insensitive search.
    email:
        type: string
        format: email
        description: Surfaced from `EmailPasswordAccount.email` when an email identity is attached.
    steamProfile:
        type: object
        description: Steam identity (when attached). Loose shape — Steam fields surfaced as-is.
        additionalProperties: true
    oculusProfile:
        type: object
        description: "`SanitizedOculusProfile` (when an Oculus identity is attached)."
        properties:
            oculusId: { type: string }
            oculusImageURL: { type: string, format: uri }
            oculusSmallImageURL: { type: string, format: uri }
    accessPolicies:
        type: array
        items: { type: string }
        description: "Access policies the account holds (e.g. `Admin`, `Moderator`, `BigscreenDefault`)."
    banHistory:
        type: array
        items:
            type: object
            additionalProperties: true
    adminNotes:
        type: array
        description: "`AdminNote[]` — staff annotations attached to the account."
        items:
            type: object
            additionalProperties: true
example:
    id: "acct_01HXJ4Q12345"
    createdAt: "2026-04-22T10:14:00.000Z"
    status: OK
    isVerified: true
    isStaff: false
    username: "alice"
    lowerCaseUsername: "alice"
    email: "alice@example.com"
    accessPolicies: ["BigscreenDefault"]
    banHistory: []
    adminNotes: []
