type: object
description: |
    Newer-style login token returned by `GET /admin/account/{bigscreenAccountId}/token2`.
    Mirrors `AuthSchemas.LoginToken2`. Carries a public token, an expiry, and a
    short attempts budget so it's safer to email or relay than the v1 format.
required: [publicToken, bigscreenAccountId, attempts, ttlSeconds]
properties:
    id: { type: string }
    createdAt: { type: string, format: date-time }
    publicToken:
        type: string
        description: 64-char random id the user types (or follows in a link) to log in.
    bigscreenAccountId: { type: string }
    ip: { type: string }
    verifyEmailAction:
        type: string
        description: "`AuthSchemas.VerifyEmailAction` — e.g. `VerifyEmailOnConfirm`, `DoNothing`."
    redirectUrl:
        type: string
        description: Where the user is redirected after consuming the token.
    attempts:
        type: integer
        description: Remaining redemption attempts. Default 3.
    ttlSeconds:
        type: integer
        description: Time-to-live, in seconds. Default 60.
example:
    id: "lt2_01HZM12345ABC678DEF90GHJKM"
    createdAt: "2026-04-22T10:14:00.000Z"
    publicToken: "8k2L3mN4oP5qR6sT7uV8wX9yZ0aB1cD2eF3gH4iJ5kL6mN7oP8qR9sT0uV1wX2y"
    bigscreenAccountId: "acct_01HXJ4Q12345"
    ip: "203.0.113.10"
    verifyEmailAction: "VerifyEmailOnConfirm"
    redirectUrl: "/accounts"
    attempts: 3
    ttlSeconds: 60
