{
  "$defs": {
    "Account": {
      "description": "A user account as the auth service represents it on the wire: a stable id, the\nlogin `username`, and the human-facing `display_name` shown beside a review.\nThe password hash never leaves the service, so it is not part of this shape.",
      "properties": {
        "displayName": {
          "description": "The human-facing name shown beside the account's reviews.",
          "type": "string"
        },
        "id": {
          "description": "The account's stable id (a UUID), the key a review is attributed to.",
          "type": "string"
        },
        "pictureUpdatedAt": {
          "description": "RFC 3339 of when the account's profile picture was last set, or `None` when\nthe account has no picture. Doubles as a \"has picture\" flag and a cache-bust\nversion: the picture bytes themselves are served separately\n(`GET /auth/users/{id}/picture`), never carried inline on this shape.",
          "type": ["string", "null"]
        },
        "username": {
          "description": "The unique login handle.",
          "type": "string"
        }
      },
      "required": ["id", "username", "displayName"],
      "type": "object"
    }
  },
  "$id": "https://docs.testcabinet.ai/schema/backend-api/auth.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "The auth service's response to a successful register or login: the freshly\nminted bearer `token` (shown once; the service stores only its hash) and the\nresolved [`Account`]. Clients persist the token and send it as\n`Authorization: Bearer <token>` on every mutating request.",
  "properties": {
    "account": {
      "$ref": "#/$defs/Account",
      "description": "The account the token authenticates as."
    },
    "token": {
      "description": "The opaque bearer token to authenticate subsequent requests with.",
      "type": "string"
    }
  },
  "required": ["token", "account"],
  "title": "AuthResult",
  "type": "object"
}
