package entity // MatchStatus represents the lifecycle phase of a match. type MatchStatus string const ( MatchStatusScheduled MatchStatus = "SCHEDULED" MatchStatusPreMatch MatchStatus = "PRE_MATCH" MatchStatusLive MatchStatus = "LIVE" MatchStatusResolving MatchStatus = "RESOLVING" MatchStatusSettled MatchStatus = "SETTLED" ) // Match represents a live engagement between two factions at a venue. type Match struct { ID string `json:"id"` Name string `json:"name"` Quadrant string `json:"quadrant"` Status MatchStatus `json:"status"` Tick int `json:"tick"` MaxTicks int `json:"maxTicks"` KineticYield float64 `json:"kinetic_yield"` Venue Venue `json:"venue"` Factions MatchFactions `json:"factions"` Markets []Market `json:"markets"` RecentEvents []MatchEvent `json:"recentEvents"` } // MatchFactions holds the two competing factions. type MatchFactions struct { Home FactionState `json:"home"` Away FactionState `json:"away"` } // TickResult captures the outcome of a single combat tick. type TickResult struct { HomeDamageDealt float64 AwayDamageDealt float64 HomeShieldsAfter float64 AwayShieldsAfter float64 KineticYieldDelta float64 EventsFired []MatchEvent }