type: object
description: |
    Public-safe projection of a `SocialProfile` — the shape returned to other
    users from `/social/profile/{socialId}` and friends-list / search routes.
    Mirrors `PublicSocialProfile` in
    [`cloud/src/SocialAPI/Schemas.ts`](../../../../cloud/src/SocialAPI/Schemas.ts).
    Strips moderation-only fields (`bigscreenAccountId`, the full `SocialStats`)
    in favour of `socialId` and `PublicSocialStats`.

    `stats` carries the **full** `SocialStats` when the caller is viewing
    their own profile, and `PublicSocialStats` otherwise.
required: [socialId, username]
properties:
    socialId: { type: string }
    createdAt:
        type: integer
        description: Profile creation, Unix timestamp in **milliseconds**.
    updatedAt:
        type: integer
        description: Last write to the profile row, Unix timestamp in **milliseconds**.
    accountCreatedAt:
        type: integer
        description: Underlying Bigscreen account creation, Unix timestamp in **seconds**.
    bigAccountStatus:
        $ref: "./BigscreenAccountStatus.yaml"
    isVerified: { type: boolean }
    username: { type: string }
    oculusId: { type: string }
    oculusUserId: { type: string }
    steamId: { type: string }
    smallImageUrl: { type: string, format: uri }
    largeImageUrl: { type: string, format: uri }
    badges:
        type: array
        items: { type: string }
    stats:
        oneOf:
            - $ref: "./SocialStats.yaml"
            - $ref: "./PublicSocialStats.yaml"
        description: Full `SocialStats` when viewing own profile; `PublicSocialStats` otherwise.
example:
    socialId: "soc_01HZR12345ABC678DEF90GHJKM"
    createdAt: 1761127240000
    updatedAt: 1762462440000
    accountCreatedAt: 1761127200
    bigAccountStatus: OK
    isVerified: true
    username: "alice"
    oculusId: ""
    oculusUserId: ""
    steamId: "76561198012345678"
    smallImageUrl: "https://cdn.bigscreenvr.com/avatars/alice_sm.png"
    largeImageUrl: "https://cdn.bigscreenvr.com/avatars/alice_lg.png"
    badges: ["beyond-early-supporter"]
    stats:
        friendsCount: 42
        followersCount: 18
        lastOnlineDate: 1762462440
