import Foundation struct PlayerInfo: Codable, Equatable { /// The name of the player let name: PlayerName var points = 0 /// Indicates that the player is active, i.e. a session is established var isConnected = false /// The player is the next one to perform an action var isNextActor = false /// The card which the player added to the current trick var playedCard: CardId? = nil /// The height of the player card on the table stack var positionInTrick = 0 /// The number of times the player doubled the game cost (initial double and raises) var numberOfDoubles = 0 var leadsGame = false var state: [PlayerStateId] = [] init(name: PlayerName) { self.name = name } /// Convert the property names into shorter strings for JSON encoding enum CodingKeys: String, CodingKey { case name = "name" case points = "points" case isConnected = "connected" case isNextActor = "active" case playedCard = "card" case positionInTrick = "position" case numberOfDoubles = "doubles" case leadsGame = "leads" case state = "state" } }