type: object
description: |
    Self-shape of a Bigscreen account — `SanitizedLocalAccount` from
    [`auth/Schemas.ts`](../../../../auth/Schemas.ts) — returned to the
    authenticated owner from `/auth/account` and `/auth/profile`. The
    raw `BigscreenAccount` Steam / Oculus / EmailPassword subobjects
    are flattened: identities surface as `email`, `steamProfile`, and
    `oculusProfile`. The runtime attaches `id` to the response (the
    underlying Bigscreen account UUID) — not part of the class but
    always present on the wire.

    For the public-facing snapshot returned to other users, see
    [`PublicAccountData`](./PublicAccountData.yaml).
required: [userSessionId]
properties:
    id:
        type: string
        description: Bigscreen account UUID. Attached by the handler at request time, not stored on the class.
    userSessionId: { type: string }
    createdAt:
        type: string
        format: date-time
        description: Account creation date.
    status:
        $ref: "./BigscreenAccountStatus.yaml"
    isVerified: { type: boolean }
    username: { type: string }
    email: { type: string, format: email }
    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 }
    badges:
        type: array
        items: { type: string }
        description: |
            Derived from `accessPolicies` — each policy name plus
            `verified` when the account is verified.
    storeCountryCode:
        type: string
        description: ISO 3166-1 alpha-2; set after instance creation from the caller's IP.
example:
    id: "acct_01HXJ4Q12345"
    userSessionId: "sess_01HZP12345"
    createdAt: "2026-04-22T10:14:00.000Z"
    status: OK
    isVerified: true
    username: "alice"
    email: "alice@example.com"
    steamProfile:
        steamId: "76561198012345678"
    oculusProfile:
        oculusId: "100012345678901"
        oculusImageURL: "https://cdn.bigscreenvr.com/avatars/oculus_100012345_lg.png"
        oculusSmallImageURL: "https://cdn.bigscreenvr.com/avatars/oculus_100012345_sm.png"
    badges: ["BigscreenDefault", "verified"]
    storeCountryCode: "US"
