enum ClientCapabilities {
  PeerAPI       @map("peerAPI") // other clients can use the HTTP API to P2P with this client
  UserStatus    @map("userStatus") // this client can report this user's status (playing, online, etc etc)
  CloudSaves    @map("cloudSaves") // ability to save to save slots
  TrackPlaytime @map("trackPlaytime") // ability to track user playtime
}

// References a device
model Client {
  id     String @id @default(uuid())
  userId String
  user   User   @relation(fields: [userId], references: [id], onDelete: Cascade)

  capabilities ClientCapabilities[]

  name          String
  platform      Platform
  lastConnected DateTime

  lastAccessedSaves SaveSlot[]
  tokens            APIToken[]
}
