mtg-playerinfo 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -37,6 +37,12 @@ General meta-data fields like `name`, `photo`, `age`, `country`, and `hometown`
37
37
 
38
38
  > If you notice any inconsistencies or unexpected fields values, you can run the tool with the `-v` or `--verbose` flag to see the full list of extracted fields and if they were promoted to the `general` section or deviated from a previous source.
39
39
 
40
+ ### Global win rate and event-level deduplication
41
+
42
+ The global `win rate` is computed from a deduplicated union of per-event records to avoid double-counting tournaments reported by multiple platforms. Sources that expose per-event data (see [Supported Sources](#supported-sources)) contribute events instead of their aggregate `record`; other sources contribute their aggregate `record` as-is. Two events are merged when they share the **same date**, **same W-L-D**, and have at least a **partial name match**. Per-source `win rate` values are unaffected.
43
+
44
+ > Use `-v` / `--verbose` to see how many duplicates were removed.
45
+
40
46
  ### Example output
41
47
 
42
48
  ```json
@@ -133,11 +139,10 @@ The following sites are currently supported based on HTML scraping and/or API ca
133
139
  | Site | Method |
134
140
  |-----------------|---------------------------------------------------------------------------------|
135
141
  | Unity League | ✅Scraping |
136
- | MTG Elo Project | ✅Scraping |
142
+ | MTG Elo Project | ✅Scraping / ✅API |
137
143
  | Topdeck | ✅Scraping / ✅API |
138
144
  | Melee | ✅Scraping / 🚧API ([#1](https://github.com/bkimminich/mtg-playerinfo/issues/1)) |
139
145
  | Untapped.gg | ✅API |
140
-
141
146
  _Note: Some sites may have anti-bot protections that can lead to "Maximum number of redirects exceeded" or "403 Forbidden" errors depending on the execution environment._
142
147
 
143
148
  ## Contribution Guidelines
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mtg-playerinfo",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "A simple NPM module and CLI tool to pull Magic: The Gathering player data from various sources",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -8,13 +8,70 @@ class MtgEloFetcher {
8
8
  maxRedirects: 10
9
9
  })
10
10
 
11
- return this.parseHtml(html, url, id)
11
+ const data = this.parseHtml(html, url, id)
12
+ if (data) {
13
+ await this.fetchEvents(id, data)
14
+ }
15
+ return data
12
16
  } catch (error) {
13
17
  console.error(`Error fetching MTG Elo Project profile ${id}:`, error.message)
14
18
  return null
15
19
  }
16
20
  }
17
21
 
22
+ async fetchEvents (id, playerInfo) {
23
+ // MTG Elo Project exposes per-tournament data via two JSON endpoints:
24
+ // /api/players/:id/events -> { data: [{ code, name, date, format, ... }] }
25
+ // /api/players/:id/matches -> { <eventCode>: [{ result: "Won 2-0"|"Lost 0-2"|"Draw 1-1", ... }] }
26
+ // Calling them directly is more stable than waiting for the JS-rendered HTML
27
+ // (where W-L-D per tournament is computed client-side from these same payloads).
28
+ try {
29
+ const [eventsRes, matchesRes] = await Promise.all([
30
+ httpClient.request(`https://mtgeloproject.net/api/players/${id}/events`),
31
+ httpClient.request(`https://mtgeloproject.net/api/players/${id}/matches`)
32
+ ])
33
+ const eventsJson = typeof eventsRes.data === 'string' ? JSON.parse(eventsRes.data) : eventsRes.data
34
+ const matchesJson = typeof matchesRes.data === 'string' ? JSON.parse(matchesRes.data) : matchesRes.data
35
+ const events = this.buildEvents(eventsJson, matchesJson)
36
+ if (events.length) {
37
+ playerInfo.events = events
38
+ }
39
+ } catch (error) {
40
+ console.error(`Error fetching MTG Elo Project events for ${id}:`, error.message)
41
+ }
42
+ }
43
+
44
+ buildEvents (eventsJson, matchesJson) {
45
+ const list = Array.isArray(eventsJson) ? eventsJson : (eventsJson && Array.isArray(eventsJson.data) ? eventsJson.data : [])
46
+ const matchesByCode = matchesJson && typeof matchesJson === 'object' ? matchesJson : {}
47
+ const events = []
48
+ for (const ev of list) {
49
+ if (!ev || !ev.code || !ev.date) continue
50
+ const matches = matchesByCode[ev.code]
51
+ if (!Array.isArray(matches)) continue
52
+ let wins = 0
53
+ let losses = 0
54
+ let draws = 0
55
+ for (const m of matches) {
56
+ const r = String((m && m.result) || '').trim()
57
+ if (/^Won\b/i.test(r)) wins++
58
+ else if (/^Lost\b/i.test(r)) losses++
59
+ else if (/^Dr(ew|aw)\b/i.test(r)) draws++
60
+ }
61
+ if (wins + losses + draws === 0) continue
62
+ events.push({
63
+ source: 'MTG Elo Project',
64
+ date: String(ev.date).slice(0, 10),
65
+ name: ev.name || '',
66
+ format: ev.format || null,
67
+ wins,
68
+ losses,
69
+ draws
70
+ })
71
+ }
72
+ return events
73
+ }
74
+
18
75
  parseHtml (html, url, id) {
19
76
  const cheerio = require('cheerio')
20
77
  const $ = cheerio.load(html)
@@ -11,7 +11,7 @@ class TopdeckFetcher {
11
11
  const htmlStr = typeof data === 'string' ? data : ''
12
12
  const playerInfo = this.parseHtml(data, url, cleanHandle)
13
13
 
14
- const internalIdMatch = htmlStr.match(/https:\/\/topdeck\.gg\/profile\/([a-zA-Z0-9]+)\/stats/) ||
14
+ const internalIdMatch = htmlStr.match(/https:\/\/topdeck\.gg\/profile\/([a-zA-Z0-9]+)\/stats/) ||
15
15
  htmlStr.match(/const playerId = "([a-zA-Z0-9]+)";/) ||
16
16
  htmlStr.match(/window\.PROFILE_PLAYER_ID\s*=\s*"([a-zA-Z0-9]+)"/) ||
17
17
  htmlStr.match(/<meta name="player-id" content="([a-zA-Z0-9]+)"/)
@@ -36,6 +36,29 @@ class TopdeckFetcher {
36
36
  const stats = typeof statsJson === 'string' ? JSON.parse(statsJson) : statsJson
37
37
 
38
38
  if (stats) {
39
+ if (stats.gameFormats && typeof stats.gameFormats === 'object') {
40
+ const events = []
41
+ Object.values(stats.gameFormats).forEach(arr => {
42
+ if (!Array.isArray(arr)) return
43
+ arr.forEach(e => {
44
+ if (!e || !e.date || !e.record) return
45
+ const recordMatch = String(e.record).match(/^(\d+)-(\d+)-(\d+)$/)
46
+ if (!recordMatch) return
47
+ events.push({
48
+ source: 'Topdeck',
49
+ date: String(e.date).slice(0, 10),
50
+ name: e.name || '',
51
+ format: e.rawFormat || null,
52
+ wins: parseInt(recordMatch[1], 10),
53
+ losses: parseInt(recordMatch[2], 10),
54
+ draws: parseInt(recordMatch[3], 10)
55
+ })
56
+ })
57
+ })
58
+ if (events.length) {
59
+ playerInfo.events = events
60
+ }
61
+ }
39
62
  if (stats.yearlyStats) {
40
63
  let totalTournaments = 0
41
64
  let wins = 0
@@ -77,6 +77,39 @@ class UnityLeagueFetcher {
77
77
  })
78
78
  }
79
79
 
80
+ // Extract per-event tournament list (normalized for cross-source dedup)
81
+ const events = []
82
+ $('table.table').each((_, table) => {
83
+ const headers = $(table).find('th').map((i, el) => $(el).text().trim()).get()
84
+ if (headers.length === 5 && headers[0] === 'Rank' && headers[1] === 'Event/Date' && headers[3] === 'Record' && headers[4] === 'Type/Format') {
85
+ $(table).find('tbody tr').each((__, tr) => {
86
+ const cells = $(tr).find('td')
87
+ if (cells.length < 5) return
88
+ const eventDateCell = $(cells[1])
89
+ const eventName = eventDateCell.find('a').first().text().trim() || eventDateCell.text().trim()
90
+ const dateMatch = eventDateCell.text().match(/(\d{2})\.(\d{2})\.(\d{4})/)
91
+ const recordRaw = $(cells[3]).text().trim().replace(/\s+/g, '')
92
+ const recordMatch = recordRaw.match(/^(\d+)-(\d+)-(\d+)$/)
93
+ const formatDivs = $(cells[4]).find('div > div')
94
+ const format = formatDivs.length >= 2 ? $(formatDivs[1]).text().trim() : $(cells[4]).text().trim()
95
+ if (dateMatch && recordMatch) {
96
+ events.push({
97
+ source: 'Unity League',
98
+ date: `${dateMatch[3]}-${dateMatch[2]}-${dateMatch[1]}`,
99
+ name: eventName,
100
+ format,
101
+ wins: parseInt(recordMatch[1], 10),
102
+ losses: parseInt(recordMatch[2], 10),
103
+ draws: parseInt(recordMatch[3], 10)
104
+ })
105
+ }
106
+ })
107
+ }
108
+ })
109
+ if (events.length) {
110
+ data.events = events
111
+ }
112
+
80
113
  // Extract tournament record and win rate
81
114
  const overallRow = $('table.table tr').filter((i, el) => {
82
115
  return $(el).find('td').first().text().trim() === 'Overall'
package/src/index.js CHANGED
@@ -3,6 +3,7 @@ const MtgEloFetcher = require('./fetchers/mtgElo')
3
3
  const MeleeFetcher = require('./fetchers/melee')
4
4
  const TopdeckFetcher = require('./fetchers/topdeck')
5
5
  const UntappedFetcher = require('./fetchers/untapped')
6
+ const { dedupeEvents } = require('./utils/eventDedup')
6
7
 
7
8
  class PlayerInfoManager {
8
9
  constructor () {
@@ -87,7 +88,9 @@ class PlayerInfoManager {
87
88
  }
88
89
  }
89
90
 
90
- if (res.record && typeof res.record === 'string' && res.record.includes('-')) {
91
+ // Aggregate record only used for sources that don't expose per-event data;
92
+ // sources with `events` contribute via the deduped union below.
93
+ if (!Array.isArray(res.events) && res.record && typeof res.record === 'string' && res.record.includes('-')) {
91
94
  const parts = res.record.split('-').map(Number)
92
95
  if (parts.length >= 2 && parts.every(p => !isNaN(p))) {
93
96
  totalWins += parts[0]
@@ -99,6 +102,7 @@ class PlayerInfoManager {
99
102
  const sourceData = { ...res }
100
103
  delete sourceData.source
101
104
  delete sourceData.url
105
+ delete sourceData.events
102
106
 
103
107
  player.sources[res.source] = {
104
108
  url: res.url,
@@ -106,6 +110,36 @@ class PlayerInfoManager {
106
110
  }
107
111
  })
108
112
 
113
+ // Cross-source dedup of per-event data (currently UnityLeague + Topdeck).
114
+ // Same date + same W-L-D + at least partial name match collapses to one event.
115
+ const allEvents = results.flatMap(r => Array.isArray(r.events) ? r.events : [])
116
+ if (allEvents.length > 0) {
117
+ const uniqueEvents = dedupeEvents(allEvents)
118
+ uniqueEvents.forEach(e => {
119
+ totalWins += e.wins
120
+ totalLosses += e.losses
121
+ totalDraws += e.draws
122
+ })
123
+ if (verbose) {
124
+ const removed = allEvents.length - uniqueEvents.length
125
+ if (removed > 0) {
126
+ // Group dropped events by their kept counterpart so the log shows which event
127
+ // (and from which source) was kept and which duplicate(s) were removed.
128
+ const { isSameEvent } = require('./utils/eventDedup')
129
+ const groups = uniqueEvents.map(k => ({ kept: k, dups: [] }))
130
+ for (const e of allEvents) {
131
+ const g = groups.find(gr => gr.kept === e) || groups.find(gr => isSameEvent(gr.kept, e))
132
+ if (g && g.kept !== e) g.dups.push(e)
133
+ }
134
+ const details = groups
135
+ .filter(g => g.dups.length > 0)
136
+ .map(g => `"${g.kept.name}" [${g.kept.source}] (duplicates: ${g.dups.map(d => `"${d.name}" [${d.source}]`).join(', ')})`)
137
+ .join('; ')
138
+ console.log(`🧹: Removed ${removed} duplicate event(s) across sources for global win rate (${details})`)
139
+ }
140
+ }
141
+ }
142
+
109
143
  const totalGames = totalWins + totalLosses + totalDraws
110
144
  if (totalGames > 0) {
111
145
  const overall = (totalWins / totalGames) * 100
@@ -0,0 +1,33 @@
1
+ function normName (s) {
2
+ return (s || '').toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim()
3
+ }
4
+
5
+ function tokenSet (s) {
6
+ return new Set(normName(s).split(' ').filter(t => t.length > 2))
7
+ }
8
+
9
+ function nameSimilarity (a, b) {
10
+ const A = tokenSet(a)
11
+ const B = tokenSet(b)
12
+ if (!A.size || !B.size) return 0
13
+ let n = 0
14
+ A.forEach(t => { if (B.has(t)) n++ })
15
+ return n / Math.min(A.size, B.size)
16
+ }
17
+
18
+ function isSameEvent (a, b, threshold = 0.34) {
19
+ if (!a || !b) return false
20
+ if (a.date !== b.date) return false
21
+ if (a.wins !== b.wins || a.losses !== b.losses || a.draws !== b.draws) return false
22
+ return nameSimilarity(a.name, b.name) >= threshold
23
+ }
24
+
25
+ function dedupeEvents (events, threshold = 0.34) {
26
+ const kept = []
27
+ for (const e of events || []) {
28
+ if (!kept.some(k => isSameEvent(k, e, threshold))) kept.push(e)
29
+ }
30
+ return kept
31
+ }
32
+
33
+ module.exports = { dedupeEvents, isSameEvent, nameSimilarity, normName }
@@ -0,0 +1 @@
1
+ {"data":[{"code":"ssutr25","cut_before":"10","date":"2025-03-15","is_pro":false,"name":"Spotlight Series Utrecht 2025","site":"https://melee.gg/Tournament/View/239247","type":"ss","format":"modern"},{"code":"ssliv25","cut_before":"10","date":"2025-11-01","is_pro":false,"name":"Spotlight Series Liverpool 2025","site":"https://melee.gg/Tournament/View/375305","type":"ss","format":"SPM standard"},{"code":"sslyo26","cut_before":"10","date":"2026-01-10","is_pro":false,"name":"Spotlight Series Lyon 2026","site":"https://melee.gg/Tournament/View/392401","type":"ss","format":"TLA standard"}]}
@@ -0,0 +1 @@
1
+ {"ssutr25":[{"match_id":3852678,"round":"1","table":712,"format":"modern","result":"Lost 0-2","own_elo":{"start":1500,"end":1488.04},"opp_data":{"id":"x38ds0oe","opp":"Toledo, Daniel","start":1844.57}},{"match_id":3853344,"round":"2","table":584,"format":"modern","result":"Won 2-0","own_elo":{"start":1488.04,"end":1508.72},"opp_data":{"id":"b70ry18z","opp":"Gosset, Alexis","start":1635.77}},{"match_id":3853791,"round":"3","table":242,"format":"modern","result":"Won 2-0","own_elo":{"start":1508.72,"end":1525.74},"opp_data":{"id":"j9f8abqh","opp":"Veldhuizen, Jeroen","start":1455.08}},{"match_id":3854671,"round":"4","table":334,"format":"modern","result":"Lost 0-2","own_elo":{"start":1525.74,"end":1512.3},"opp_data":{"id":"qja1vwmq","opp":"Hoshino, Masaya","start":1780.9}},{"match_id":3855605,"round":"5","table":490,"format":"modern","result":"Won 2-1","own_elo":{"start":1512.3,"end":1529.7},"opp_data":{"id":"9jbh4hda","opp":"Marin, Tudor","start":1479.93}},{"match_id":3856120,"round":"6","table":256,"format":"modern","result":"Won 2-1","own_elo":{"start":1529.7,"end":1548.69},"opp_data":{"id":"pwwvf4q6","opp":"Mander, Chris","start":1583.62}},{"match_id":3856758,"round":"7","table":211,"format":"modern","result":"Won 2-0","own_elo":{"start":1548.69,"end":1568.13},"opp_data":{"id":"fa0rg67x","opp":"Gomez Galvan, Carlos","start":1628.06}},{"match_id":3857246,"round":"8","table":98,"format":"modern","result":"Lost 1-2","own_elo":{"start":1568.13,"end":1552.31},"opp_data":{"id":"whw1wk6p","opp":"Verkooren, Renzo","start":1687.92}},{"match_id":3857842,"round":"9","table":180,"format":"modern","result":"Lost 0-2","own_elo":{"start":1552.31,"end":1534.59},"opp_data":{"id":"n7n6wpml","opp":"Silva Santos, Italo","start":1567.59}}],"ssliv25":[{"match_id":3927777,"round":"1","table":108,"format":"standard","result":"Lost 0-2","own_elo":{"start":1534.59,"end":1515.96},"opp_data":{"id":"ekt2eukl","opp":"Shirt, Ben","start":1500}},{"match_id":3928235,"round":"2","table":274,"format":"standard","result":"Lost 1-2","own_elo":{"start":1515.96,"end":1497.4},"opp_data":{"id":"256rmshr","opp":"Piras, Gabriele","start":1485.5}},{"match_id":3928535,"round":"3","table":284,"format":"standard","result":"Won 2-1","own_elo":{"start":1497.4,"end":1513.53},"opp_data":{"id":"y3ghykrx","opp":"chagas, guilherme","start":1394.6}},{"match_id":3928782,"round":"4","table":241,"format":"standard","result":"Lost 0-2","own_elo":{"start":1513.53,"end":1494.94},"opp_data":{"id":"d5g0whn0","opp":"Perez Torres, Daniel","start":1480.84}},{"match_id":3929079,"round":"5","table":252,"format":"standard","result":"Lost 0-2","own_elo":{"start":1494.94,"end":1477.64},"opp_data":{"id":"tj1dneb3","opp":"Jakubec, Stepan","start":1533.82}}],"sslyo26":[{"match_id":3965812,"round":"1","table":322,"format":"standard","result":"Lost 0-2","own_elo":{"start":1477.64,"end":1459.93},"opp_data":{"id":"88b6ruie","opp":"Pinto, Rafael","start":1493.13}},{"match_id":3966098,"round":"2","table":232,"format":"standard","result":"Won 2-1","own_elo":{"start":1459.93,"end":1476.77},"opp_data":{"id":"ng8uqupo","opp":"Barbieri, Guglielmo","start":1396.57}},{"match_id":3966396,"round":"3","table":158,"format":"standard","result":"Lost 1-2","own_elo":{"start":1476.77,"end":1461.85},"opp_data":{"id":"xjwz8wb0","opp":"Rossire, Patrick","start":1646.91}},{"match_id":3966819,"round":"4","table":210,"format":"standard","result":"Won 2-0","own_elo":{"start":1461.85,"end":1478.35},"opp_data":{"id":"26zy3coo","opp":"Mathisen, Truls","start":1379.66}},{"match_id":3967116,"round":"5","table":139,"format":"standard","result":"Lost 1-2","own_elo":{"start":1478.35,"end":1462.16},"opp_data":{"id":"j19q6u1e","opp":"Wang, Zijun","start":1577.65}},{"match_id":3967530,"round":"6","table":201,"format":"standard","result":"Won 2-0","own_elo":{"start":1462.16,"end":1480.67},"opp_data":{"id":"iqe0zi0v","opp":"Furet, Antoine","start":1490.26}},{"match_id":3967857,"round":"7","table":205,"format":"standard","result":"Draw 1-1","own_elo":{"start":1480.67,"end":1483.17},"opp_data":{"id":"q2ps6rte","opp":"Boulinguiez, Dylan","start":1618.78}},{"match_id":3968119,"round":"8","table":177,"format":"standard","result":"Lost 0-2","own_elo":{"start":1483.17,"end":1465.68},"opp_data":{"id":"e8qbslqc","opp":"Naumann, Tom","start":1511.06}}]}
@@ -96,7 +96,7 @@ gtag('config', 'G-56527VG23P');
96
96
  }).then((ret) => {
97
97
  location.reload();
98
98
  });
99
- }</script><!-- Page content--><div class="offcanvas offcanvas-end w-100" id="viewDecklistOffcanvas" tabindex="-1" aria-labelledby="viewDecklistOffcanvasLabel" aria-hidden="true"><div class="offcanvas-header bg-primary"><h5 class="offcanvas-title" id="viewDecklistOffcanvasLabel">Decklist</h5><button class="btn-close btn-close-white" type="button" data-bs-dismiss="offcanvas" aria-label="Close"></button></div><div class="offcanvas-body bg-dark"><pre class="mb-3"><code class="language-json" id="decklistContent"></code></pre></div></div><script src="/js/supportedGames?t=1777362567454"></script><script>function viewTextDecklist(decklist, title, tournamentId = null, playerId = null, game = null) {
99
+ }</script><!-- Page content--><div class="offcanvas offcanvas-end w-100" id="viewDecklistOffcanvas" tabindex="-1" aria-labelledby="viewDecklistOffcanvasLabel" aria-hidden="true"><div class="offcanvas-header bg-primary"><h5 class="offcanvas-title" id="viewDecklistOffcanvasLabel">Decklist</h5><button class="btn-close btn-close-white" type="button" data-bs-dismiss="offcanvas" aria-label="Close"></button></div><div class="offcanvas-body bg-dark"><pre class="mb-3"><code class="language-json" id="decklistContent"></code></pre></div></div><script src="/js/supportedGames?t=1777778083040"></script><script>function viewTextDecklist(decklist, title, tournamentId = null, playerId = null, game = null) {
100
100
  // Use dynamically served games list
101
101
  const supportedGames = window.SUPPORTED_GAMES;
102
102
 
@@ -139,7 +139,7 @@ gtag('config', 'G-56527VG23P');
139
139
  #viewDecklistOffcanvas {
140
140
  width: 660px !important;
141
141
  }
142
- }</style><div class="pp-hero" style="background-image: url(https://imagedelivery.net/kN_u_RUfFF6xsGMKYWhO1g/aa6d70ad-de73-4c09-a4d7-1e64d5ed6d00/cover)"></div><div class="container"><div class="pp-profile-card"><div class="pp-profile-row"><div class="pp-avatar-col"><img class="pp-avatar" src="https://imagedelivery.net/kN_u_RUfFF6xsGMKYWhO1g/2a7b8d12-5924-4a58-5f9c-c0bf55766800/square" alt="Björn Kimminich" onerror="this.src='/img/logo/TopDeckLogoBorder.png'"></div><div class="pp-info"><h1 class="pp-name">Björn Kimminich<span class="pp-pronouns">He/Him</span></h1><div class="pp-socials"><a class="pp-social-link" href="https://twitter.com/bkimminich" target="_blank" rel="noopener" title="Twitter"><i class="fa-brands fa-twitter"></i></a><a class="pp-social-link" href="https://www.youtube.com/@Bj%C3%B6rnKimminich" target="_blank" rel="noopener" title="YouTube"><i class="fa-brands fa-youtube"></i></a></div></div></div><div class="pp-stats" id="ppStats"><div class="pp-stat"><span class="pp-stat-value" id="totalTournaments">–</span><span class="pp-stat-label">Events</span></div><div class="pp-stat-divider"></div><div class="pp-stat"><span class="pp-stat-value" id="overallRecord">–</span><span class="pp-stat-label">Record</span></div><div class="pp-stat-divider"></div><div class="pp-stat"><span class="pp-stat-value" id="overallWinRate">–</span><span class="pp-stat-label">Win Rate</span></div><div class="pp-stat-divider"></div><div class="pp-stat"><span class="pp-stat-value" id="conversionRate">–</span><span class="pp-stat-label">Conversion</span></div></div></div></div><div class="container pp-content"><div class="pp-filter-bar eh-filter-bar mt-2"><div class="eh-filter-row"><span class="eh-filter-label">Game</span><div class="eh-chips" id="ppGameChips"><button class="eh-chip active" data-filter="game" data-value="all" type="button">All</button></div></div><div class="eh-filter-row"><span class="eh-filter-label">Year</span><div class="eh-chips" id="ppYearChips"><button class="eh-chip active" data-filter="year" data-value="all" type="button">All</button></div></div></div><section class="pp-heatmap-section" id="ppHeatmapSection" style="display:none"><div class="pp-heatmap-inner"><div class="pp-panel-header"><h3 class="pp-panel-title"><i class="fa-solid fa-fire"></i><span>Activity</span></h3><div class="pp-heatmap-legend"><span class="pp-legend-label">Less</span><span class="pp-legend-cell" data-intensity="1"></span><span class="pp-legend-cell" data-intensity="2"></span><span class="pp-legend-cell" data-intensity="3"></span><span class="pp-legend-cell" data-intensity="4"></span><span class="pp-legend-label">More</span></div></div><div class="pp-heatmap" id="ppHeatmap"></div><div class="pp-streak" id="ppStreak" style="display:none"></div></div></section><div class="pp-h2h" id="ppH2H" style="display:none"></div><div class="pp-tabs-wrap"><ul class="nav pp-tabs" role="tablist"><li class="nav-item"><a class="nav-link active" href="#history" data-bs-toggle="tab"><i class="fa-solid fa-trophy me-2"></i>Tournaments</a></li></ul></div><div class="tab-content pp-tab-content"><div class="tab-pane fade show active" id="history"><div class="pp-elo-group" id="ppEloGroup" style="display:none"><span class="pp-elo-heading">Elo</span><div class="pp-elo-list" id="ppEloList"></div></div><div class="pp-badges" id="badgeContainer"></div><div class="pp-tournament-list" id="tournamentList"></div></div></div></div></main><footer class="footer bg-black py-5"><div class="container pt-md-2 pt-lg-3"><div class="row pt-sm-2"><!-- Logo, description, and social column--><div class="col-md-4 col-lg-3 pb-2 pb-md-0 mb-4 mb-md-0"><a class="d-block mb-3 mb-md-4" href="/"><img class="img-fluid" src="/img/logo/TopDeckFullWhiteNS.png" alt="TopDeck.gg" style="max-width: 200px;"></a><p class="text-muted pb-2 pb-md-3 mb-3 fs-sm">Discover, organize, and compete in trading card game events. Connect with players worldwide and elevate your game.</p><div class="d-flex gap-1"><a class="btn-social bs-outline bs-light bs-facebook bs-lg me-2" href="https://discord.gg/RjS3mDf3wt" target="_blank"><i class="fa-brands fa-discord"></i></a><a class="btn-social bs-outline bs-light bs-youtube bs-lg me-2" href="https://www.youtube.com/@TopDeckGG_" target="_blank"><i class="fa-brands fa-youtube"></i></a></div></div><!-- Nested columns for links--><div class="col-md-8 col-lg-7 offset-lg-2"><div class="row row-cols-1 row-cols-sm-3"><!-- Company column--><div class="col mb-4 mb-md-0"><div class="widget widget-light"><h4 class="widget-title mb-3">Company</h4><ul><li><a class="widget-link" href="/subscribe">Run a Tournament</a></li><li><a class="widget-link" href="https://newsletter.topdeck.gg/">Newsletter</a></li><li><a class="widget-link" href="/docs/tournaments-v2">API Documentation</a></li><li><a class="widget-link" href="/championship-series-2026">Championship Series</a></li></ul></div></div><!-- Support column--><div class="col mb-4 mb-md-0"><div class="widget widget-light"><h4 class="widget-title mb-3">Support</h4><ul><li><a class="widget-link" href="/cdn-cgi/l/email-protection#d8bbb7b6acb9bbac98acb7a8bcbdbbb3f6bfbf">Contact Us</a></li><li><a class="widget-link" href="/cdn-cgi/l/email-protection#bed3dbdad7dffecad1cedadbddd590d9d9">Media Inquiries</a></li><li><a class="widget-link" href="/privacy-policy" target="_blank">Privacy Policy</a></li><li><a class="widget-link" href="/terms-and-conditions" target="_blank">Terms & Conditions</a></li></ul></div></div><!-- Install App column--><div class="col"><h4 class="h6 fw-bold pb-2 mb-0 mb-lg-1">Install App</h4><a class="btn btn-outline-secondary d-inline-flex align-items-center px-3 py-2 mt-3 me-3 me-md-0" href="https://apple.co/3A4Z0FK" role="button" style="min-width: 160px;"><i class="fa-brands fa-apple fs-xl me-2"></i><span class="d-flex flex-column align-items-start"><small class="fs-xs text-white-50">Download on the</small><span class="fs-sm">App Store</span></span></a><a class="btn btn-outline-secondary d-inline-flex align-items-center px-3 py-2 mt-3 me-3 me-md-0" href="https://play.google.com/store/apps/details?id=com.topdeck.app" role="button" style="min-width: 160px;"><i class="fa-brands fa-google-play fs-xl me-2"></i><span class="d-flex flex-column align-items-start"><small class="fs-xs text-white-50">Get it on</small><span class="fs-sm">Google Play</span></span></a></div></div></div></div></div></footer><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>window.PROFILE_PLAYER_ID = "m4VSTJShiXR1PCSCWaM9TBY0rcg1";
142
+ }</style><div class="pp-hero" style="background-image: url(https://imagedelivery.net/kN_u_RUfFF6xsGMKYWhO1g/aa6d70ad-de73-4c09-a4d7-1e64d5ed6d00/cover)"></div><div class="container"><div class="pp-profile-card"><div class="pp-profile-row"><div class="pp-avatar-col"><img class="pp-avatar" src="https://imagedelivery.net/kN_u_RUfFF6xsGMKYWhO1g/2a7b8d12-5924-4a58-5f9c-c0bf55766800/square" alt="Björn Kimminich" onerror="this.src='/img/logo/TopDeckLogoBorder.png'"></div><div class="pp-info"><h1 class="pp-name">Björn Kimminich<span class="pp-pronouns">He/Him</span></h1><div class="pp-socials"><a class="pp-social-link" href="https://twitter.com/bkimminich" target="_blank" rel="noopener" title="Twitter"><i class="fa-brands fa-twitter"></i></a><a class="pp-social-link" href="https://www.youtube.com/@Bj%C3%B6rnKimminich" target="_blank" rel="noopener" title="YouTube"><i class="fa-brands fa-youtube"></i></a></div></div></div><div class="pp-stats" id="ppStats"><div class="pp-stat"><span class="pp-stat-value" id="totalTournaments">–</span><span class="pp-stat-label">Events</span></div><div class="pp-stat-divider"></div><div class="pp-stat"><span class="pp-stat-value" id="overallRecord">–</span><span class="pp-stat-label">Record</span></div><div class="pp-stat-divider"></div><div class="pp-stat"><span class="pp-stat-value" id="overallWinRate">–</span><span class="pp-stat-label">Win Rate</span></div><div class="pp-stat-divider"></div><div class="pp-stat"><span class="pp-stat-value" id="conversionRate">–</span><span class="pp-stat-label">Conversion</span></div></div></div></div><div class="container pp-content"><div class="pp-filter-bar eh-filter-bar mt-2"><div class="eh-filter-row"><span class="eh-filter-label">Game</span><div class="eh-chips" id="ppGameChips"><button class="eh-chip active" data-filter="game" data-value="all" type="button">All</button></div></div><div class="eh-filter-row"><span class="eh-filter-label">Year</span><div class="eh-chips" id="ppYearChips"><button class="eh-chip active" data-filter="year" data-value="all" type="button">All</button></div></div></div><section class="pp-heatmap-section" id="ppHeatmapSection" style="display:none"><div class="pp-heatmap-inner"><div class="pp-panel-header"><h3 class="pp-panel-title"><i class="fa-solid fa-fire"></i><span>Activity</span></h3><div class="pp-heatmap-legend"><span class="pp-legend-label">Less</span><span class="pp-legend-cell" data-intensity="1"></span><span class="pp-legend-cell" data-intensity="2"></span><span class="pp-legend-cell" data-intensity="3"></span><span class="pp-legend-cell" data-intensity="4"></span><span class="pp-legend-label">More</span></div></div><div class="pp-heatmap" id="ppHeatmap"></div><div class="pp-streak" id="ppStreak" style="display:none"></div></div></section><div class="pp-h2h" id="ppH2H" style="display:none"></div><div class="pp-tabs-wrap"><ul class="nav pp-tabs" role="tablist"><li class="nav-item"><a class="nav-link active" href="#history" data-bs-toggle="tab"><i class="fa-solid fa-trophy me-2"></i>Tournaments</a></li></ul></div><div class="tab-content pp-tab-content"><div class="tab-pane fade show active" id="history"><div class="pp-elo-group" id="ppEloGroup" style="display:none"><span class="pp-elo-heading">Elo</span><div class="pp-elo-list" id="ppEloList"></div></div><div class="pp-badges" id="badgeContainer"></div><div class="pp-tournament-list" id="tournamentList"></div></div></div></div></main><footer class="footer bg-black py-5"><div class="container pt-md-2 pt-lg-3"><div class="row pt-sm-2"><!-- Logo, description, and social column--><div class="col-md-4 col-lg-3 pb-2 pb-md-0 mb-4 mb-md-0"><a class="d-block mb-3 mb-md-4" href="/"><img class="img-fluid" src="/img/logo/TopDeckFullWhiteNS.png" alt="TopDeck.gg" style="max-width: 200px;"></a><p class="text-muted pb-2 pb-md-3 mb-3 fs-sm">Discover, organize, and compete in trading card game events. Connect with players worldwide and elevate your game.</p><div class="d-flex gap-1"><a class="btn-social bs-outline bs-light bs-facebook bs-lg me-2" href="https://discord.gg/RjS3mDf3wt" target="_blank"><i class="fa-brands fa-discord"></i></a><a class="btn-social bs-outline bs-light bs-youtube bs-lg me-2" href="https://www.youtube.com/@TopDeckGG_" target="_blank"><i class="fa-brands fa-youtube"></i></a></div></div><!-- Nested columns for links--><div class="col-md-8 col-lg-7 offset-lg-2"><div class="row row-cols-1 row-cols-sm-3"><!-- Company column--><div class="col mb-4 mb-md-0"><div class="widget widget-light"><h4 class="widget-title mb-3">Company</h4><ul><li><a class="widget-link" href="/subscribe">Run a Tournament</a></li><li><a class="widget-link" href="https://newsletter.topdeck.gg/">Newsletter</a></li><li><a class="widget-link" href="/docs/tournaments-v2">API Documentation</a></li><li><a class="widget-link" href="/championship-series-2026">Championship Series</a></li></ul></div></div><!-- Support column--><div class="col mb-4 mb-md-0"><div class="widget widget-light"><h4 class="widget-title mb-3">Support</h4><ul><li><a class="widget-link" href="/cdn-cgi/l/email-protection#1675797862777562566279667273757d387171">Contact Us</a></li><li><a class="widget-link" href="/cdn-cgi/l/email-protection#ff929a9b969ebf8b908f9b9a9c94d19898">Media Inquiries</a></li><li><a class="widget-link" href="/privacy-policy" target="_blank">Privacy Policy</a></li><li><a class="widget-link" href="/terms-and-conditions" target="_blank">Terms & Conditions</a></li></ul></div></div><!-- Install App column--><div class="col"><h4 class="h6 fw-bold pb-2 mb-0 mb-lg-1">Install App</h4><a class="btn btn-outline-secondary d-inline-flex align-items-center px-3 py-2 mt-3 me-3 me-md-0" href="https://apple.co/3A4Z0FK" role="button" style="min-width: 160px;"><i class="fa-brands fa-apple fs-xl me-2"></i><span class="d-flex flex-column align-items-start"><small class="fs-xs text-white-50">Download on the</small><span class="fs-sm">App Store</span></span></a><a class="btn btn-outline-secondary d-inline-flex align-items-center px-3 py-2 mt-3 me-3 me-md-0" href="https://play.google.com/store/apps/details?id=com.topdeck.app" role="button" style="min-width: 160px;"><i class="fa-brands fa-google-play fs-xl me-2"></i><span class="d-flex flex-column align-items-start"><small class="fs-xs text-white-50">Get it on</small><span class="fs-sm">Google Play</span></span></a></div></div></div></div></div></footer><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>window.PROFILE_PLAYER_ID = "m4VSTJShiXR1PCSCWaM9TBY0rcg1";
143
143
  window.PROFILE_PLAYER_USERNAME = "@k0shiii";
144
144
  window.PROFILE_VIEWER_UID = null;
145
145
  </script><script src="/js/player-profile-v2.js?v=1.3" defer></script><!-- Back to top button--><a class="btn-scroll-top" href="#top" data-scroll data-fixed-element><span class="btn-scroll-top-tooltip text-muted fs-sm me-2">Top</span><i class="btn-scroll-top-icon ai-arrow-up"> </i></a><!-- Vendor scrits: js libraries and plugins--><script src="/vendor/bootstrap/dist/js/bootstrap.bundle.min.js"></script><script src="/vendor/simplebar/dist/simplebar.min.js"></script><script src="/vendor/smooth-scroll/dist/smooth-scroll.polyfills.min.js"></script><!-- Main theme script--><script src="/js/theme.min.js"></script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"0e3ccdaf832b48f5a3585d27a3a6e921","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
@@ -168,7 +168,7 @@
168
168
 
169
169
  <td>513th</td>
170
170
 
171
- <td>488</td>
171
+ <td>494</td>
172
172
  </tr>
173
173
  </tbody>
174
174
  </table>
@@ -211,7 +211,7 @@
211
211
 
212
212
  <td>513th</td>
213
213
 
214
- <td>488</td>
214
+ <td>494</td>
215
215
  </tr>
216
216
  </tbody>
217
217
  </table>
@@ -307,9 +307,9 @@
307
307
 
308
308
  <td>78</td>
309
309
 
310
- <td>374</td>
310
+ <td>380</td>
311
311
 
312
- <td>488</td>
312
+ <td>494</td>
313
313
 
314
314
  </tr>
315
315
 
@@ -321,9 +321,9 @@
321
321
 
322
322
  <td>1</td>
323
323
 
324
- <td>41</td>
324
+ <td>42</td>
325
325
 
326
- <td>43</td>
326
+ <td>44</td>
327
327
 
328
328
  </tr>
329
329
 
@@ -373,6 +373,17 @@
373
373
  </thead>
374
374
  <tbody>
375
375
 
376
+ <tr>
377
+
378
+
379
+ <td>Premodern</td>
380
+ <td>8 - 3 - 1</td>
381
+ <td>69.4%</td>
382
+ <td>72.7%</td>
383
+ <td>8.3%</td>
384
+
385
+ </tr>
386
+
376
387
  <tr>
377
388
 
378
389
 
@@ -417,17 +428,6 @@
417
428
 
418
429
  </tr>
419
430
 
420
- <tr>
421
-
422
-
423
- <td>Premodern</td>
424
- <td>6 - 1 - 1</td>
425
- <td>79.2%</td>
426
- <td>85.7%</td>
427
- <td>12.5%</td>
428
-
429
- </tr>
430
-
431
431
  <tr>
432
432
 
433
433
 
@@ -443,10 +443,10 @@
443
443
 
444
444
 
445
445
  <td><b>Overall</b></td>
446
- <td><b>86 - 75 - 9</b></td>
447
- <td><b>52.4%</b></td>
448
- <td><b>53.4%</b></td>
449
- <td><b>5.3%</b></td>
446
+ <td><b>88 - 77 - 9</b></td>
447
+ <td><b>52.3%</b></td>
448
+ <td><b>53.3%</b></td>
449
+ <td><b>5.2%</b></td>
450
450
 
451
451
  </tr>
452
452
 
@@ -480,6 +480,41 @@
480
480
  </thead>
481
481
  <tbody>
482
482
 
483
+ <tr>
484
+ <td>6th</td>
485
+ <td>
486
+ <div class="d-flex flex-column-reverse flex-lg-row">
487
+ <div style="min-width: 150px;" >Wed, 29.04.2026</div>
488
+ <a href="/events/31446/">Premodern Weekly</a>
489
+ </div>
490
+ </td>
491
+ <td>
492
+ <span data-bs-toggle="tooltip"
493
+ data-bs-placement="left"
494
+ data-bs-html="true"
495
+ data-bs-title="
496
+ <ul>
497
+ <li>Match points: 6</li>
498
+ <li>Participation: 3</li>
499
+ </ul>
500
+ <span>Multiplied by 1x: 9 total</span>
501
+ ">
502
+ 9
503
+ </span>
504
+ </td>
505
+ <td class="text-nowrap">2 - 2 - 0</td>
506
+ <td>
507
+ <div class="d-flex flex-column flex-lg-row">
508
+ <div style="min-width: 150px;">
509
+
510
+ <img src="/static/types/text_icons/regular.svg" alt="Regular" style="height: 24px;" title="Regular" itemprop="image">
511
+
512
+ </div>
513
+ <div>Premodern</div>
514
+ </div>
515
+ </td>
516
+ </tr>
517
+
483
518
  <tr>
484
519
  <td>5th</td>
485
520
  <td>
@@ -1 +1 @@
1
- [{"short_id":"Uav8DY3MHck6GdCYVSP4EX","match_start":1776793359000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":273,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQT-wDGLkQRSwAQB1Mo4A-jAMZKAEMamAgq6MfBH4AjiQMXQAerCKanAAYKrA8OVBN_TCwEFjAUCBejAMbcPQPxP-akGAunUGYyZKAKexjG5WQAAAA","player_opening_hands":["AAQAAQWKggHevjDzkQTABM3TCwGMBQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQTzpRm_4BO0zgvY2QgCgBWfyC0AAAEFhwUA":null},"opponent_revealed_deckstrings":["AAQAAQTzpRm_4BO0zgvY2QgCgBWfyC0AAAEFhwUA"]},{"game_number":2,"game_duration_seconds":525,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQT-wDHdX66xA5IFA-jAMY2tEMv5AQOKggHKyDem9ggJujHwR8JJxdAB6sIpqcABgqsDw5UE39MLAQWMBQIFioIBlc4wQPyBBOWUDgLp1Bn_6xcCnsYxuVkAAAA","player_opening_hands":["AAQAAQO6Mc-lNcvzAgLGwTG0_w8AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQiJEODEGbaIFIfuCr4JAtDlBxUFgBWapUA10HMfAAHzpRkBC4cFAA":null},"opponent_revealed_deckstrings":["AAQAAQiJEODEGbaIFIfuCr4JAtDlBxUFgBWapUA10HMfAAHzpRkBC4cFAA"]},{"game_number":3,"game_duration_seconds":421,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQX-wDHdX66xA1LABAL17UHL-QEC1Mo4pvYICrox8EfgCOJAxdAB6sIpqcABgqsDw5UE39MLAQWMBQIDn9AxQOGWEgHp1BkCnsYxuVkB6MAxAAA","player_opening_hands":["AAQAAQW6MffhAqO3NZTgCJIWAYqCAQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQiJEO7ELO3_CwLQ5QcV1HMfAAABhwUAAA":null},"opponent_revealed_deckstrings":["AAQAAQiJEO7ELO3_CwLQ5QcV1HMfAAABhwUAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQT-wDGLkQRSwAQB1Mo4A-jAMZKAEMamAgq6MfBH4AjiQMXQAerCKanAAYKrA8OVBN_TCwEFjAUCBejAMbcPQPxP-akGAunUGYyZKAKexjG5WQAAAA","friendly_deck_name":"flow","friendly_deck_id":"c94c0684-8668-474c-a1da-d8c87a1cfc7a","friendly_deck_colors":10,"friendly_deck_tile_id":97320,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Justinfromthewest","team_id":2}]},{"short_id":"5Nv9a7MKK9nQgcFse8rQCv","match_start":1776794767000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":316,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","player_opening_hands":["AAQAAQG16wEDwIYtm8wInZoMAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQS_wzHJXpSyA__jDQPiCdgCoOFBAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQS_wzHJXpSyA__jDQPiCdgCoOFBAAAAAA"]},{"game_number":2,"game_duration_seconds":304,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQPykBrLzBPezhMFo7wC5JsrnPsH7vUCNgTngC3LywSphgSrAwa16wGLmyvJygTvmxC_Apk6AQuNBQID_3qw1yvYhQEBurwBAvuULsmiEgGkLgAA","player_opening_hands":["AAQAAQW16wHuUI-QL9SJBPKWDAGNBQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQW_wzE2jl3XzA_BygEAAAABCOIJAA":null},"opponent_revealed_deckstrings":["AAQAAQW_wzE2jl3XzA_BygEAAAABCOIJAA"]},{"game_number":3,"game_duration_seconds":360,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQPykBrLzBPezhMFo7wC5JsrnPsH7vUCNgTngC3LywSphgSrAwa16wGLmyvJygTvmxC_Apk6AQuNBQID_3qw1yvYhQEBurwBAvuULsmiEgGkLgAA","player_opening_hands":["AAQAAQeNBajmAYubK8dRwPEKsaMJvwIAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQeV1Cyq7wQ26gykUJmzA76ZDALswgH5kDQAAAEG4gkA":null},"opponent_revealed_deckstrings":["AAQAAQeV1Cyq7wQ26gykUJmzA76ZDALswgH5kDQAAAEG4gkA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"billypiorrea92","team_id":2}]},{"short_id":"CLcEpGLhLhGwdqTBYvxw79","match_start":1776873454000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":159,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","player_opening_hands":["AAQAAQOjvAKPkC-phgQCjQWzgS0AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[25],"opponent_revealed_archetype":{"AAQAAQuHBYR0mMMBxVGxzyrU8AOfA4SGBJ3-AqbUCOVEAb3wQQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuHBYR0mMMBxVGxzyrU8AOfA4SGBJ3-AqbUCOVEAb3wQQAAAAA"]},{"game_number":2,"game_duration_seconds":590,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQP_erDXK46LAQS6vAHpf4CXM-71AgbngC2gV_Q8t7cDqYYE6eQKBbXrAYubK8nKBK6eEJk6AQuNBQIC8pAaqZsnAcfJOAGG1jUCpC7UvkEAAA","player_opening_hands":["AAQAAQG16wEDjQWWtwKh-z0AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[25],"opponent_revealed_archetype":{"AAQAARHiCalvr3LpUJnCKuBe0TWAuwPyAi3YgwSsAp_xAsQOIaSXCcP4AQWHBQHczzhJkJsJAAAAAA":null},"opponent_revealed_deckstrings":["AAQAARHiCalvr3LpUJnCKuBe0TWAuwPyAi3YgwSsAp_xAsQOIaSXCcP4AQWHBQHczzhJkJsJAAAAAA"]},{"game_number":3,"game_duration_seconds":373,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQP_erDXK46LAQS6vAHpf4CXM-71AgbngC2gV_Q8t7cDqYYE6eQKBbXrAYubK8nKBK6eEJk6AQuNBQIC8pAaqZsnAcfJOAGG1jUCpC7UvkEAAA","player_opening_hands":["AAQAAQeNBfJ1u0GGyivHUdT6B0gAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[25],"opponent_revealed_archetype":{"AAQAAQyHBQGDdK9yBOVQypEvnwPYgwSAgANJzpELBOIJ_cYx0PcG5Q4B06lBAAAA":null},"opponent_revealed_deckstrings":["AAQAAQyHBQGDdK9yBOVQypEvnwPYgwSAgANJzpELBOIJ_cYx0PcG5Q4B06lBAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"yomi","team_id":2}]},{"short_id":"Jf7gAZAKsD4hedWf38ukZj","match_start":1776874761000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":226,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","player_opening_hands":["AAQAAQeNBZcpw9IslJQBt7cD3_wGv-AJAAAAAAA","AAQAAQLEt0DztwEBtesBAY0FAAAA"],"player_mulligan_put_on_bottom":[11809],"opponent_revealed_colors":[12],"opponent_revealed_archetype":{"AAQAAQTvlC65vge39gKb9wgCjQXN1C0AAaVkAAA":null},"opponent_revealed_deckstrings":["AAQAAQTvlC65vge39gKb9wgCjQXN1C0AAaVkAAA"]},{"game_number":2,"game_duration_seconds":183,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQPykBrLzBPezhMFo7wC5JsrnPsH7vUCNgTngC3LywSphgSrAwa16wGLmyvJygTvmxC_Apk6AQuNBQID_3qw1yvYhQEBurwBAvuULsmiEgGkLgAA","player_opening_hands":["AAQAAQOjvAKdyiq45hQCsswxnt0QAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[4],"opponent_revealed_archetype":{"AAQAAQOAgS2o0gjS7QsB75QuAaVkAAAA":null},"opponent_revealed_deckstrings":["AAQAAQOAgS2o0gjS7QsB75QuAaVkAAAA"]},{"game_number":3,"game_duration_seconds":391,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQPykBrLzBPezhMFo7wC5JsrnPsH7vUCNgTngC3LywSphgSrAwa16wGLmyvJygTvmxC_Apk6AQuNBQID_3qw1yvYhQEBurwBAvuULsmiEgGkLgAA","player_opening_hands":["AAQAAQXAhi39Vub1B_jYC7V9AY0FAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[4],"opponent_revealed_archetype":{"AAQAAQbiCajMLPP6BKuCBLf2Apv3CASAgS2AV-88tL4HAueALa1XAAAA":null},"opponent_revealed_deckstrings":["AAQAAQbiCajMLPP6BKuCBLf2Apv3CASAgS2AV-88tL4HAueALa1XAAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":4,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"rakdos34","team_id":2}]},{"short_id":"3KsyAsCPekQa8nuvpUKoZp","match_start":1776875723000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":175,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2-N6CXEwKjvAKTq0EGpC7D0iygV6v0A6mGBLb2Aga16wGLmyvJygTvmxC_Apk6AQuNBQIEpC7bTPOVGb3BEgS6vAHpljSk9gL97QcBhtY1AAAA","player_opening_hands":["AAQAAQORyTi_4AnmvQECjQWzgS0AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQab1iypwAHctwPpiATL8wKm9ggBqnkAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQab1iypwAHctwPpiATL8wKm9ggBqnkAAAAA"]},{"game_number":2,"game_duration_seconds":131,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQTykBqVxxO2Bd7OEwajvAKPkC-phgRI7vUCNgPngC2f1QjK0wwGpC6RvQGLmyvJygTvmxC_AgELjQUCB_96sNcrzMIBt7cDqYYEtvYCv-AJBLq8Ac2bLL3fEvKvAwAAAAA","player_opening_hands":["AAQAAQWNBZa3Ap3KKsnKBJLbDwH47EEAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQSqeZ6xIMGsFMLmCwABv8MxAAAA":null},"opponent_revealed_deckstrings":["AAQAAQSqeZ6xIMGsFMLmCwABv8MxAAAA"]},{"game_number":3,"game_duration_seconds":239,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQTykBqVxxO2Bd7OEwajvAKPkC-phgRI7vUCNgPngC2f1QjK0wwGpC6RvQGLmyvJygTvmxC_AgELjQUCB_96sNcrzMIBt7cDqYYEtvYCv-AJBLq8Ac2bLL3fEvKvAwAAAAA","player_opening_hands":["AAQAAQOyzDHGoBC_AgAAAY0FAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQbIqiG5mwSakAepwAGQtAq0DQO_wzHKkwTx6QsAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQbIqiG5mwSakAepwAGQtAq0DQO_wzHKkwTx6QsAAAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQO93S2-N6CXEwKjvAKTq0EGpC7D0iygV6v0A6mGBLb2Aga16wGLmyvJygTvmxC_Apk6AQuNBQIEpC7bTPOVGb3BEgS6vAHpljSk9gL97QcBhtY1AAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Wsquires","team_id":1}]},{"short_id":"fHojHrk3WcrjxbyGaedpeC","match_start":1776876532000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":197,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2-N6CXEwKjvAKTq0EGpC7D0iygV6v0A6mGBLb2Aga16wGLmyvJygTvmxC_Apk6AQuNBQIEpC7bTPOVGb3BEgS6vAHpljSk9gL97QcBhtY1AAAA","player_opening_hands":["AAQAAQWNBajmAf3gL8agENg8AYfYLQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQuMBa4s8EfgCKeRAurCKavrBMOQBMv4ApTgCNi8AgLowDGhlgQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuMBa4s8EfgCKeRAurCKavrBMOQBMv4ApTgCNi8AgLowDGhlgQAAAAA"]},{"game_number":2,"game_duration_seconds":405,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQbykBqVxxO2Bb43lrQKiuMIBKO8Ao-QL_GGBKT2AgWkLsPSLPTRCKsDytMMBbXrAYubK8nKBO-bEL8CAQuNBQIFpC7bTLDXK4P6BJ7dEAW6vAHNmyyK8Qqz7gfyrwMAAAAA","player_opening_hands":["AAQAAQfngC2UlAG3twOphgSrA5XWC7V9AAAAAAA","AAQAAQWkLv-NAriWM7b2AuejCQG16wEAAAAA"],"player_mulligan_put_on_bottom":[95585],"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQeMBf58kdQrzeoEtgX9kATf6QsHujHwR5zIMMOVBMvzApTgCNi8AgAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQeMBf58kdQrzeoEtgX9kATf6QsHujHwR5zIMMOVBMvzApTgCNi8AgAAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQO93S2-N6CXEwKjvAKTq0EGpC7D0iygV6v0A6mGBLb2Aga16wGLmyvJygTvmxC_Apk6AQuNBQIEpC7bTPOVGb3BEgS6vAHpljSk9gL97QcBhtY1AAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":4,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Shadowboy","team_id":1}]},{"short_id":"dN9MTCXWrYy78h3A5epZnb","match_start":1776877262000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":16,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","player_opening_hands":["AAQAAQONBYTEOOejCQKyzDGe3RAAAAAA","AAQAAQXngC2UlAG3twPXBMfYEAGRyTgAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[0],"opponent_revealed_archetype":{"AAQAAA":null},"opponent_revealed_deckstrings":["AAQAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Shredder34","team_id":1}]},{"short_id":"kgkgav4sCLWtYfJdxShc4X","match_start":1776877325000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":411,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","player_opening_hands":["AAQAAQeNBajmAf3gL6mGBLb2Ar_gCea9AQAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQiNBab_LNWdBY61A7HyAtjkCLlA2_0BAoAVoP4CAYcFAAAA":null},"opponent_revealed_deckstrings":["AAQAAQiNBab_LNWdBY61A7HyAtjkCLlA2_0BAoAVoP4CAYcFAAAA"]},{"game_number":2,"game_duration_seconds":320,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2-N8miEgWjvALkmyuc-wf42AubuwIE54Aty8sEqYYEtvYCBrXrAYubK8nKBO-bEL8CmToBC40FAgT_evOVGb3BEpXlEwK6vAGNjTcBhtY1AaQuAAA","player_opening_hands":["AAQAAQHAhi0BidExAAGNBQAA","AAQAAQSJ0THSgQS29gKmpgkAAY0FAAAA"],"player_mulligan_put_on_bottom":[11809],"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQuHBQav5gGrlSuXzASKVb-nBrP3CN4t_PkB9AIAAaQuAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuHBQav5gGrlSuXzASKVb-nBrP3CN4t_PkB9AIAAaQuAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"tmoneysnipe","team_id":2}]},{"short_id":"FKFC6cMkWiQyUq93aaKj5S","match_start":1776878146000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":389,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","player_opening_hands":["AAQAAQONBZa3Au6MNgL47EHYPAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[11],"opponent_revealed_archetype":{"AAQAAQeqeYq1ILueF-DpB8W2AbTKAfguA-xj2NM_y7UBArrrAffCHwAAAA":null},"opponent_revealed_deckstrings":["AAQAAQeqeYq1ILueF-DpB8W2AbTKAfguA-xj2NM_y7UBArrrAffCHwAAAA"]},{"game_number":2,"game_duration_seconds":409,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQK93S2-NwajvALkmyuc-weh5ArXdJu7AgXngC3LywSphgS29gLnowkFtesBi5srycoErp4QmToBC40FAgT_evOVGb3BEsmaFQK6vAGNjTcBhtY1AaQuAAA","player_opening_hands":["AAQAAQONBYTEOKamCQL47EHYPAAAAAA","AAQAAQW93S3M8wPSgQTA2QubuwIBt-9BAAAAAA"],"player_mulligan_put_on_bottom":[97369],"opponent_revealed_colors":[11],"opponent_revealed_archetype":{"AAQAAQuIBaJ0h7UgA4vSC8fQBKn3BsAE5-AIuT-x-QEE7GP98Bjb4iaEgAMAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuIBaJ0h7UgA4vSC8fQBKn3BsAE5-AIuT-x-QEE7GP98Bjb4iaEgAMAAAAA"]},{"game_number":3,"game_duration_seconds":533,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQK93S2-NwajvALkmyuc-weh5ArXdJu7AgXngC3LywSphgS29gLnowkFtesBi5srycoErp4QmToBC40FAgT_evOVGb3BEsmaFQK6vAGNjTcBhtY1AaQuAAA","player_opening_hands":["AAQAAQPb0jXcnAyZOgKNBajmAQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[11],"opponent_revealed_archetype":{"AAQAAQrsY86HAfrCH4vSC8tbpewKwASgoAm5ygH4LgOqeYGFLKuvFAGxriEAAAA":null},"opponent_revealed_deckstrings":["AAQAAQrsY86HAfrCH4vSC8tbpewKwASgoAm5ygH4LgOqeYGFLKuvFAGxriEAAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"KGX","team_id":1}]},{"short_id":"EA4XtBUKd7Q3AzTeC6XRVU","match_start":1776960884000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":253,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","player_opening_hands":["AAQAAQWH2C30PI68A5qCBJScDAGNBQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[2],"opponent_revealed_archetype":{"AAQAAQmNBajmAYqVK9iTAfS2AxfmVoC2BvLoCAGJ0TEAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQmNBajmAYqVK9iTAfS2AxfmVoC2BvLoCAGJ0TEAAAAA"]},{"game_number":2,"game_duration_seconds":448,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQOjvALY2CvMtAoEh9gttgXezhObuwIF54At9NEISO71AuejCQa16wGLmyvyxQTXBK6eEJk6AQqNBQICo9M1pPYCA5cQyLk45e0HAYbWNQGkLgAA","player_opening_hands":["AAQAAQW16wHc3Tbnowm_Apk6AY0FAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQWNBbemAvvUKuPKBOcFBYwF2_ss2QXImwXvkhEBtoAtAAAA":null},"opponent_revealed_deckstrings":["AAQAAQWNBbemAvvUKuPKBOcFBYwF2_ss2QXImwXvkhEBtoAtAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","friendly_deck_name":"Doooooom","friendly_deck_id":"e3e7cd7f-ff8d-4061-93b2-0a21913688d8","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"bobmachine","team_id":2}]},{"short_id":"MLVj8oB5MhwmZ84kxwyQ2b","match_start":1776961668000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":636,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","player_opening_hands":["AAQAAQS16wHS7CuC-QPH2BAAAY0FAAAA","AAQAAQXAhi3yxQTf_AampgmZOgGJ0TEAAAAA"],"player_mulligan_put_on_bottom":[92170],"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQO93S3P0xPHtgIE_f8scdIFuOYUAAiMBQGo5gG53y-bBsaFBKvqC-orBQXY1SwFjysF3bYTBZq1AQXu-wEA":null},"opponent_revealed_deckstrings":["AAQAAQO93S3P0xPHtgIE_f8scdIFuOYUAAiMBQGo5gG53y-bBsaFBKvqC-orBQXY1SwFjysF3bYTBZq1AQXu-wEA"]},{"game_number":2,"game_duration_seconds":235,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQOjvALjmTOwkQ4Fh9gttgXU6wpOvOIIA-eALfTRCJ2aDAe16wGLmyvyxQTXBJqCBJScDJk6AQqNBQID-5QulrQKpZ4LBJcQ78U1wfMC_e0HAAGkLgAA","player_opening_hands":["AAQAAQeNBajmAbKVK6LQBNb4BpmjCdg8AAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQi16wG06RfvgBOPK6LQBMaFBL3aC8C3AgLe7EEGAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQi16wG06RfvgBOPK6LQBMaFBL3aC8C3AgLe7EEGAAAAAA"]},{"game_number":3,"game_duration_seconds":311,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQOjvALjmTOwkQ4Fh9gttgXU6wpOvOIIA-eALfTRCJ2aDAe16wGLmyvyxQTXBJqCBJScDJk6AQqNBQID-5QulrQKpZ4LBJcQ78U1wfMC_e0HAAGkLgAA","player_opening_hands":["AAQAAQeNBdr7LNZc5vUH-NgLnEOZOgAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQqNBcvQLI8rB89cse0DtYgEvPYC5e0HtokBAbXrAQHe7EEAAAA":null},"opponent_revealed_deckstrings":["AAQAAQqNBcvQLI8rB89cse0DtYgEvPYC5e0HtokBAbXrAQHe7EEAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","friendly_deck_name":"Doooooom","friendly_deck_id":"e3e7cd7f-ff8d-4061-93b2-0a21913688d8","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Delmo","team_id":2}]},{"short_id":"W5goxvY8nVxrPSynfz7ykj","match_start":1776962962000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":267,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","player_opening_hands":["AAQAAQeNBajmAe5Qncoq8sUE3_wGv-AJAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQegkwP4wymYvgGurwOgCJiKBLKUDgGNBQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQegkwP4wymYvgGurwOgCJiKBLKUDgGNBQAAAAA"]},{"game_number":2,"game_duration_seconds":404,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsEh9gttgWH2hLyrwME54At9NEItvYC56MJB7XrAYubK_LFBNcEmoIElJwMmToBCo0FAgAElxCwuTgYvOIIAYbWNQGkLgAA","player_opening_hands":["AAQAAQe16wGI8iv17gPf_Aaz7gfztwGZOgAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQ2HBQav5gH0qSylBaqnA_8KilWbsQPzA5vhDZczawKgkwP4wykAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQ2HBQav5gH0qSylBaqnA_8KilWbsQPzA5vhDZczawKgkwP4wykAAAAA"]},{"game_number":3,"game_duration_seconds":191,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsEh9gttgWH2hLyrwME54At9NEItvYC56MJB6Qukb0Bi5sr8sUE1wSunhCZOgEKjQUCAASXELC5OBi84ggBhtY1AaPTNQAA","player_opening_hands":["AAQAAQSkLuOpLav0A4SbEgABwIYtAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[0],"opponent_revealed_archetype":{"AAQAAA":null},"opponent_revealed_deckstrings":["AAQAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","friendly_deck_name":"Doooooom","friendly_deck_id":"e3e7cd7f-ff8d-4061-93b2-0a21913688d8","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":4,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Mythic","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":95.48816680908203,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"bonn","team_id":2}]},{"short_id":"ishsoS8aptTjTdE56QtebG","match_start":1776964624000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":440,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQOJ0jXL-ALg4AgD6MAx85EEn-4LAAu6MfBH4AjiQMXQAerCKanAAYKrA8OVBN_TC9i8AgEHjAUCAq2ZAfi5NwXEqwKlqRf_6xe_Cs6iEAGexjEAAAA","player_opening_hands":["AAQAAQO6Ma75QJIWAonXNbeQDgAAAAA","AAQAAQH6wEEDjAXgvQHF0AEAAAAA","AAQAAQWMBbiRLoKrA5WRBI3YCwHswgEAAAAA"],"player_mulligan_put_on_bottom":[93905,93905],"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQuMBfterocB4-sqqC-VlAGzvQrm1AiKQOc7hsABA7zrAdrrM9P0AgAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuMBfterocB4-sqqC-VlAGzvQrm1AiKQOc7hsABA7zrAdrrM9P0AgAAAAA"]},{"game_number":2,"game_duration_seconds":438,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQG0q0EDxKsCl6czn-4LAuzCAbKDMAq6MfBH4AinkQLqwimpwAGCqwPDlQTf0wvYvAIBB4wFAgWtmQG_KZ2PNMv4AtEIA-nUGb72F86iEAAB6MAxAAA","player_opening_hands":["AAQAAQOMBaWOA-rCKQKexjG9jAQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQiHBQWw5gHc6yqm9AuUAS6fngsFh2SP8zTT9AKfDIDXCAHVmi4AAAA":null},"opponent_revealed_deckstrings":["AAQAAQiHBQWw5gHc6yqm9AuUAS6fngsFh2SP8zTT9AKfDIDXCAHVmi4AAAA"]},{"game_number":3,"game_duration_seconds":368,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQG0q0EDxKsCl6czn-4LAuzCAbKDMAq6MfBH4AinkQLqwimpwAGCqwPDlQTf0wvYvAIBB4wFAgWtmQG_KZ2PNMv4AtEIA-nUGb72F86iEAAB6MAxAAA","player_opening_hands":["AAQAAQW6MdBQp5ECla4uoukPAcSWLgAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQaMBQHa-yyCywuf4wjduQIDh2S1hwHa6zMB-OxBAAAA":null},"opponent_revealed_deckstrings":["AAQAAQaMBQHa-yyCywuf4wjduQIDh2S1hwHa6zMB-OxBAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQOJ0jXL-ALg4AgD6MAx85EEn-4LAAu6MfBH4AjiQMXQAerCKanAAYKrA8OVBN_TC9i8AgEHjAUCAq2ZAfi5NwXEqwKlqRf_6xe_Cs6iEAGexjEAAAA","friendly_deck_name":"Izzet Prowess","friendly_deck_id":"e50c3a8b-e4cd-449d-a6fd-feb78c8f604a","friendly_deck_colors":10,"friendly_deck_tile_id":12053,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Mythic","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":95.50251770019531,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Mythic","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":96.33772277832031,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"LoveSosa95","team_id":2}]},{"short_id":"3M2UwRUABF6x2n7KYRxSw4","match_start":1776966113000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":90,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8DrRGt3EHBygECqYwLwPYhCKp5wknYkyv9vwH7rAMDxwqDiQQBDeIJAgWtEZqFLpi6A_ucEBsB6dQZAAKYli7drQMAAA","player_opening_hands":["AAQAAQWtEb-xAdXTLMjAB_HpCwG_wzEAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[2],"opponent_revealed_archetype":{"AAQAAQTsY74V39cw0oEEAAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQTsY74V39cw0oEEAAAAAAA"]},{"game_number":2,"game_duration_seconds":311,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8Bm7hDAumCLfHqFAmqecJJ2JMr_b8B-6wDAzaRCoOJBAEN4gkCA8eWLpi6A5adEAHp1BkCrRH8-goBmJYuAAA","player_opening_hands":["AAQAAQfiCeLMLP2_Af6sA8cKg4kEkuENAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[15],"opponent_revealed_archetype":{"AAQAAQqIBfK-AbG6K4xfA-v1Ct_jB9q0AyNbAqp56tI3AAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQqIBfK-AbG6K4xfA-v1Ct_jB9q0AyNbAqp56tI3AAAAAA"]},{"game_number":3,"game_duration_seconds":222,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQSxkwPngivrigT3nw8Bm7hDA6mMC8D2IfHqFAiqecJJ2JMr-OwEAzaRCoOJBAEN4gkCA8eWLpi6A5adEAHp1BkCrRHrhC4BwZYuAAA","player_opening_hands":["AAQAAQfiCYq5Ab3JCZvKIfjsBDnlqRAAAAAAAA","AAQAAQTswgG9yQnA9iGytRYAAeIJAAAA"],"player_mulligan_put_on_bottom":[93905],"opponent_revealed_colors":[11],"opponent_revealed_archetype":{"AAQAAQeuEvxm0Eq36h_YohDSgQTKgAMB3OxDAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQeuEvxm0Eq36h_YohDSgQTKgAMB3OxDAAAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8DrRGt3EHBygECqYwLwPYhCKp5wknYkyv9vwH7rAMDxwqDiQQBDeIJAgWtEZqFLpi6A_ucEBsB6dQZAAKYli7drQMAAA","friendly_deck_name":"Quinniac","friendly_deck_id":"e950459b-553e-4f44-845b-379e097c0b91","friendly_deck_colors":8,"friendly_deck_tile_id":11815,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Mythic","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":96.33772277832031,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Mythic","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":95.121337890625,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"PlayerOne","team_id":1}]},{"short_id":"e6WQfHd2tgq4arq3LTdgKK","match_start":1776966908000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":201,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8DrRGt3EHBygECqYwLwPYhCKp5wknYkyv9vwH7rAMDxwqDiQQBDeIJAgWtEZqFLpi6A_ucEBsB6dQZAAKYli7drQMAAA","player_opening_hands":["AAQAAQfiCchvwknQgDDHXYa2A5LhDQAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQbngC3WXAOVPbO9CuaRCwG370EAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQbngC3WXAOVPbO9CuaRCwG370EAAAAA"]},{"game_number":2,"game_duration_seconds":123,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQWxkwOuvS6kUPefD_ssAq0R7qZDAumCLfHqFAiqecJJ2JMr_b8B_qwDNpEKg4kEAQ3iCQICrRGahS4B6dQZAamMCwKYli6krQMAAA","player_opening_hands":["AAQAAQPBli7FtwPUnxAC4gnduTEAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQaNBajmAYjyK4faErS1Ae37AQAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQaNBajmAYjyK4faErS1Ae37AQAAAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8DrRGt3EHBygECqYwLwPYhCKp5wknYkyv9vwH7rAMDxwqDiQQBDeIJAgWtEZqFLpi6A_ucEBsB6dQZAAKYli7drQMAAA","friendly_deck_name":"Quinniac","friendly_deck_id":"e950459b-553e-4f44-845b-379e097c0b91","friendly_deck_colors":8,"friendly_deck_tile_id":11815,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Mythic","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":95.121337890625,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Mythic","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":96.21765899658203,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Naoya","team_id":2}]}]
1
+ [{"short_id":"Uav8DY3MHck6GdCYVSP4EX","match_start":1776793359000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":273,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQT-wDGLkQRSwAQB1Mo4A-jAMZKAEMamAgq6MfBH4AjiQMXQAerCKanAAYKrA8OVBN_TCwEFjAUCBejAMbcPQPxP-akGAunUGYyZKAKexjG5WQAAAA","player_opening_hands":["AAQAAQWKggHevjDzkQTABM3TCwGMBQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQTzpRm_4BO0zgvY2QgCgBWfyC0AAAEFhwUA":null},"opponent_revealed_deckstrings":["AAQAAQTzpRm_4BO0zgvY2QgCgBWfyC0AAAEFhwUA"]},{"game_number":2,"game_duration_seconds":525,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQT-wDHdX66xA5IFA-jAMY2tEMv5AQOKggHKyDem9ggJujHwR8JJxdAB6sIpqcABgqsDw5UE39MLAQWMBQIFioIBlc4wQPyBBOWUDgLp1Bn_6xcCnsYxuVkAAAA","player_opening_hands":["AAQAAQO6Mc-lNcvzAgLGwTG0_w8AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQiJEODEGbaIFIfuCr4JAtDlBxUFgBWapUA10HMfAAHzpRkBC4cFAA":null},"opponent_revealed_deckstrings":["AAQAAQiJEODEGbaIFIfuCr4JAtDlBxUFgBWapUA10HMfAAHzpRkBC4cFAA"]},{"game_number":3,"game_duration_seconds":421,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQX-wDHdX66xA1LABAL17UHL-QEC1Mo4pvYICrox8EfgCOJAxdAB6sIpqcABgqsDw5UE39MLAQWMBQIDn9AxQOGWEgHp1BkCnsYxuVkB6MAxAAA","player_opening_hands":["AAQAAQW6MffhAqO3NZTgCJIWAYqCAQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQiJEO7ELO3_CwLQ5QcV1HMfAAABhwUAAA":null},"opponent_revealed_deckstrings":["AAQAAQiJEO7ELO3_CwLQ5QcV1HMfAAABhwUAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQT-wDGLkQRSwAQB1Mo4A-jAMZKAEMamAgq6MfBH4AjiQMXQAerCKanAAYKrA8OVBN_TCwEFjAUCBejAMbcPQPxP-akGAunUGYyZKAKexjG5WQAAAA","friendly_deck_name":"flow","friendly_deck_id":"c94c0684-8668-474c-a1da-d8c87a1cfc7a","friendly_deck_colors":10,"friendly_deck_tile_id":97320,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Justinfromthewest","team_id":2}]},{"short_id":"5Nv9a7MKK9nQgcFse8rQCv","match_start":1776794767000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":316,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","player_opening_hands":["AAQAAQG16wEDwIYtm8wInZoMAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQS_wzHJXpSyA__jDQPiCdgCoOFBAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQS_wzHJXpSyA__jDQPiCdgCoOFBAAAAAA"]},{"game_number":2,"game_duration_seconds":304,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQPykBrLzBPezhMFo7wC5JsrnPsH7vUCNgTngC3LywSphgSrAwa16wGLmyvJygTvmxC_Apk6AQuNBQID_3qw1yvYhQEBurwBAvuULsmiEgGkLgAA","player_opening_hands":["AAQAAQW16wHuUI-QL9SJBPKWDAGNBQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQW_wzE2jl3XzA_BygEAAAABCOIJAA":null},"opponent_revealed_deckstrings":["AAQAAQW_wzE2jl3XzA_BygEAAAABCOIJAA"]},{"game_number":3,"game_duration_seconds":360,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQPykBrLzBPezhMFo7wC5JsrnPsH7vUCNgTngC3LywSphgSrAwa16wGLmyvJygTvmxC_Apk6AQuNBQID_3qw1yvYhQEBurwBAvuULsmiEgGkLgAA","player_opening_hands":["AAQAAQeNBajmAYubK8dRwPEKsaMJvwIAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQeV1Cyq7wQ26gykUJmzA76ZDALswgH5kDQAAAEG4gkA":null},"opponent_revealed_deckstrings":["AAQAAQeV1Cyq7wQ26gykUJmzA76ZDALswgH5kDQAAAEG4gkA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"billypiorrea92","team_id":2}]},{"short_id":"CLcEpGLhLhGwdqTBYvxw79","match_start":1776873454000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":159,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","player_opening_hands":["AAQAAQOjvAKPkC-phgQCjQWzgS0AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[25],"opponent_revealed_archetype":{"AAQAAQuHBYR0mMMBxVGxzyrU8AOfA4SGBJ3-AqbUCOVEAb3wQQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuHBYR0mMMBxVGxzyrU8AOfA4SGBJ3-AqbUCOVEAb3wQQAAAAA"]},{"game_number":2,"game_duration_seconds":590,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQP_erDXK46LAQS6vAHpf4CXM-71AgbngC2gV_Q8t7cDqYYE6eQKBbXrAYubK8nKBK6eEJk6AQuNBQIC8pAaqZsnAcfJOAGG1jUCpC7UvkEAAA","player_opening_hands":["AAQAAQG16wEDjQWWtwKh-z0AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[25],"opponent_revealed_archetype":{"AAQAARHiCalvr3LpUJnCKuBe0TWAuwPyAi3YgwSsAp_xAsQOIaSXCcP4AQWHBQHczzhJkJsJAAAAAA":null},"opponent_revealed_deckstrings":["AAQAARHiCalvr3LpUJnCKuBe0TWAuwPyAi3YgwSsAp_xAsQOIaSXCcP4AQWHBQHczzhJkJsJAAAAAA"]},{"game_number":3,"game_duration_seconds":373,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQP_erDXK46LAQS6vAHpf4CXM-71AgbngC2gV_Q8t7cDqYYE6eQKBbXrAYubK8nKBK6eEJk6AQuNBQIC8pAaqZsnAcfJOAGG1jUCpC7UvkEAAA","player_opening_hands":["AAQAAQeNBfJ1u0GGyivHUdT6B0gAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[25],"opponent_revealed_archetype":{"AAQAAQyHBQGDdK9yBOVQypEvnwPYgwSAgANJzpELBOIJ_cYx0PcG5Q4B06lBAAAA":null},"opponent_revealed_deckstrings":["AAQAAQyHBQGDdK9yBOVQypEvnwPYgwSAgANJzpELBOIJ_cYx0PcG5Q4B06lBAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"yomi","team_id":2}]},{"short_id":"Jf7gAZAKsD4hedWf38ukZj","match_start":1776874761000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":226,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","player_opening_hands":["AAQAAQeNBZcpw9IslJQBt7cD3_wGv-AJAAAAAAA","AAQAAQLEt0DztwEBtesBAY0FAAAA"],"player_mulligan_put_on_bottom":[11809],"opponent_revealed_colors":[12],"opponent_revealed_archetype":{"AAQAAQTvlC65vge39gKb9wgCjQXN1C0AAaVkAAA":null},"opponent_revealed_deckstrings":["AAQAAQTvlC65vge39gKb9wgCjQXN1C0AAaVkAAA"]},{"game_number":2,"game_duration_seconds":183,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQPykBrLzBPezhMFo7wC5JsrnPsH7vUCNgTngC3LywSphgSrAwa16wGLmyvJygTvmxC_Apk6AQuNBQID_3qw1yvYhQEBurwBAvuULsmiEgGkLgAA","player_opening_hands":["AAQAAQOjvAKdyiq45hQCsswxnt0QAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[4],"opponent_revealed_archetype":{"AAQAAQOAgS2o0gjS7QsB75QuAaVkAAAA":null},"opponent_revealed_deckstrings":["AAQAAQOAgS2o0gjS7QsB75QuAaVkAAAA"]},{"game_number":3,"game_duration_seconds":391,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQPykBrLzBPezhMFo7wC5JsrnPsH7vUCNgTngC3LywSphgSrAwa16wGLmyvJygTvmxC_Apk6AQuNBQID_3qw1yvYhQEBurwBAvuULsmiEgGkLgAA","player_opening_hands":["AAQAAQXAhi39Vub1B_jYC7V9AY0FAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[4],"opponent_revealed_archetype":{"AAQAAQbiCajMLPP6BKuCBLf2Apv3CASAgS2AV-88tL4HAueALa1XAAAA":null},"opponent_revealed_deckstrings":["AAQAAQbiCajMLPP6BKuCBLf2Apv3CASAgS2AV-88tL4HAueALa1XAAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQO93S2H2hLXdAKjvALujDYGpC7D0iygV_Q8t7cDqYYEBrXrAYubK8nKBO-bEL8CmToBC40FAgSkLttM85UZvcESBLq8AemWNKT2Av3tBwGG1jUAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":4,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"rakdos34","team_id":2}]},{"short_id":"3KsyAsCPekQa8nuvpUKoZp","match_start":1776875723000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":175,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2-N6CXEwKjvAKTq0EGpC7D0iygV6v0A6mGBLb2Aga16wGLmyvJygTvmxC_Apk6AQuNBQIEpC7bTPOVGb3BEgS6vAHpljSk9gL97QcBhtY1AAAA","player_opening_hands":["AAQAAQORyTi_4AnmvQECjQWzgS0AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQab1iypwAHctwPpiATL8wKm9ggBqnkAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQab1iypwAHctwPpiATL8wKm9ggBqnkAAAAA"]},{"game_number":2,"game_duration_seconds":131,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQTykBqVxxO2Bd7OEwajvAKPkC-phgRI7vUCNgPngC2f1QjK0wwGpC6RvQGLmyvJygTvmxC_AgELjQUCB_96sNcrzMIBt7cDqYYEtvYCv-AJBLq8Ac2bLL3fEvKvAwAAAAA","player_opening_hands":["AAQAAQWNBZa3Ap3KKsnKBJLbDwH47EEAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQSqeZ6xIMGsFMLmCwABv8MxAAAA":null},"opponent_revealed_deckstrings":["AAQAAQSqeZ6xIMGsFMLmCwABv8MxAAAA"]},{"game_number":3,"game_duration_seconds":239,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQTykBqVxxO2Bd7OEwajvAKPkC-phgRI7vUCNgPngC2f1QjK0wwGpC6RvQGLmyvJygTvmxC_AgELjQUCB_96sNcrzMIBt7cDqYYEtvYCv-AJBLq8Ac2bLL3fEvKvAwAAAAA","player_opening_hands":["AAQAAQOyzDHGoBC_AgAAAY0FAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQbIqiG5mwSakAepwAGQtAq0DQO_wzHKkwTx6QsAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQbIqiG5mwSakAepwAGQtAq0DQO_wzHKkwTx6QsAAAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQO93S2-N6CXEwKjvAKTq0EGpC7D0iygV6v0A6mGBLb2Aga16wGLmyvJygTvmxC_Apk6AQuNBQIEpC7bTPOVGb3BEgS6vAHpljSk9gL97QcBhtY1AAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Wsquires","team_id":1}]},{"short_id":"fHojHrk3WcrjxbyGaedpeC","match_start":1776876532000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":197,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2-N6CXEwKjvAKTq0EGpC7D0iygV6v0A6mGBLb2Aga16wGLmyvJygTvmxC_Apk6AQuNBQIEpC7bTPOVGb3BEgS6vAHpljSk9gL97QcBhtY1AAAA","player_opening_hands":["AAQAAQWNBajmAf3gL8agENg8AYfYLQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQuMBa4s8EfgCKeRAurCKavrBMOQBMv4ApTgCNi8AgLowDGhlgQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuMBa4s8EfgCKeRAurCKavrBMOQBMv4ApTgCNi8AgLowDGhlgQAAAAA"]},{"game_number":2,"game_duration_seconds":405,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQbykBqVxxO2Bb43lrQKiuMIBKO8Ao-QL_GGBKT2AgWkLsPSLPTRCKsDytMMBbXrAYubK8nKBO-bEL8CAQuNBQIFpC7bTLDXK4P6BJ7dEAW6vAHNmyyK8Qqz7gfyrwMAAAAA","player_opening_hands":["AAQAAQfngC2UlAG3twOphgSrA5XWC7V9AAAAAAA","AAQAAQWkLv-NAriWM7b2AuejCQG16wEAAAAA"],"player_mulligan_put_on_bottom":[95585],"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQeMBf58kdQrzeoEtgX9kATf6QsHujHwR5zIMMOVBMvzApTgCNi8AgAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQeMBf58kdQrzeoEtgX9kATf6QsHujHwR5zIMMOVBMvzApTgCNi8AgAAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQO93S2-N6CXEwKjvAKTq0EGpC7D0iygV6v0A6mGBLb2Aga16wGLmyvJygTvmxC_Apk6AQuNBQIEpC7bTPOVGb3BEgS6vAHpljSk9gL97QcBhtY1AAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":4,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Shadowboy","team_id":1}]},{"short_id":"dN9MTCXWrYy78h3A5epZnb","match_start":1776877262000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":16,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","player_opening_hands":["AAQAAQONBYTEOOejCQKyzDGe3RAAAAAA","AAQAAQXngC2UlAG3twPXBMfYEAGRyTgAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[0],"opponent_revealed_archetype":{"AAQAAA":null},"opponent_revealed_deckstrings":["AAQAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Shredder34","team_id":1}]},{"short_id":"kgkgav4sCLWtYfJdxShc4X","match_start":1776877325000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":411,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","player_opening_hands":["AAQAAQeNBajmAf3gL6mGBLb2Ar_gCea9AQAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQiNBab_LNWdBY61A7HyAtjkCLlA2_0BAoAVoP4CAYcFAAAA":null},"opponent_revealed_deckstrings":["AAQAAQiNBab_LNWdBY61A7HyAtjkCLlA2_0BAoAVoP4CAYcFAAAA"]},{"game_number":2,"game_duration_seconds":320,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQO93S2-N8miEgWjvALkmyuc-wf42AubuwIE54Aty8sEqYYEtvYCBrXrAYubK8nKBO-bEL8CmToBC40FAgT_evOVGb3BEpXlEwK6vAGNjTcBhtY1AaQuAAA","player_opening_hands":["AAQAAQHAhi0BidExAAGNBQAA","AAQAAQSJ0THSgQS29gKmpgkAAY0FAAAA"],"player_mulligan_put_on_bottom":[11809],"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQuHBQav5gGrlSuXzASKVb-nBrP3CN4t_PkB9AIAAaQuAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuHBQav5gGrlSuXzASKVb-nBrP3CN4t_PkB9AIAAaQuAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"tmoneysnipe","team_id":2}]},{"short_id":"FKFC6cMkWiQyUq93aaKj5S","match_start":1776878146000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":389,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","player_opening_hands":["AAQAAQONBZa3Au6MNgL47EHYPAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[11],"opponent_revealed_archetype":{"AAQAAQeqeYq1ILueF-DpB8W2AbTKAfguA-xj2NM_y7UBArrrAffCHwAAAA":null},"opponent_revealed_deckstrings":["AAQAAQeqeYq1ILueF-DpB8W2AbTKAfguA-xj2NM_y7UBArrrAffCHwAAAA"]},{"game_number":2,"game_duration_seconds":409,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQK93S2-NwajvALkmyuc-weh5ArXdJu7AgXngC3LywSphgS29gLnowkFtesBi5srycoErp4QmToBC40FAgT_evOVGb3BEsmaFQK6vAGNjTcBhtY1AaQuAAA","player_opening_hands":["AAQAAQONBYTEOKamCQL47EHYPAAAAAA","AAQAAQW93S3M8wPSgQTA2QubuwIBt-9BAAAAAA"],"player_mulligan_put_on_bottom":[97369],"opponent_revealed_colors":[11],"opponent_revealed_archetype":{"AAQAAQuIBaJ0h7UgA4vSC8fQBKn3BsAE5-AIuT-x-QEE7GP98Bjb4iaEgAMAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuIBaJ0h7UgA4vSC8fQBKn3BsAE5-AIuT-x-QEE7GP98Bjb4iaEgAMAAAAA"]},{"game_number":3,"game_duration_seconds":533,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQK93S2-NwajvALkmyuc-weh5ArXdJu7AgXngC3LywSphgS29gLnowkFtesBi5srycoErp4QmToBC40FAgT_evOVGb3BEsmaFQK6vAGNjTcBhtY1AaQuAAA","player_opening_hands":["AAQAAQPb0jXcnAyZOgKNBajmAQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[11],"opponent_revealed_archetype":{"AAQAAQrsY86HAfrCH4vSC8tbpewKwASgoAm5ygH4LgOqeYGFLKuvFAGxriEAAAA":null},"opponent_revealed_deckstrings":["AAQAAQrsY86HAfrCH4vSC8tbpewKwASgoAm5ygH4LgOqeYGFLKuvFAGxriEAAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQK93S2-NwSjvALkmyuU1BObuwIFpC7D0izLywSphgS29gIGtesBi5srycoE75sQvwKZOgELjQUCBKQu20zzlRm9wRIEurwB6ZY0pPYC_e0HAYbWNQAAAA","friendly_deck_name":"Excr","friendly_deck_id":"939bf139-11d5-480a-8a0b-b41d6d03333f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"KGX","team_id":1}]},{"short_id":"EA4XtBUKd7Q3AzTeC6XRVU","match_start":1776960884000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":253,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","player_opening_hands":["AAQAAQWH2C30PI68A5qCBJScDAGNBQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[2],"opponent_revealed_archetype":{"AAQAAQmNBajmAYqVK9iTAfS2AxfmVoC2BvLoCAGJ0TEAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQmNBajmAYqVK9iTAfS2AxfmVoC2BvLoCAGJ0TEAAAAA"]},{"game_number":2,"game_duration_seconds":448,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQOjvALY2CvMtAoEh9gttgXezhObuwIF54At9NEISO71AuejCQa16wGLmyvyxQTXBK6eEJk6AQqNBQICo9M1pPYCA5cQyLk45e0HAYbWNQGkLgAA","player_opening_hands":["AAQAAQW16wHc3Tbnowm_Apk6AY0FAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQWNBbemAvvUKuPKBOcFBYwF2_ss2QXImwXvkhEBtoAtAAAA":null},"opponent_revealed_deckstrings":["AAQAAQWNBbemAvvUKuPKBOcFBYwF2_ss2QXImwXvkhEBtoAtAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","friendly_deck_name":"Doooooom","friendly_deck_id":"e3e7cd7f-ff8d-4061-93b2-0a21913688d8","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"bobmachine","team_id":2}]},{"short_id":"MLVj8oB5MhwmZ84kxwyQ2b","match_start":1776961668000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":636,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","player_opening_hands":["AAQAAQS16wHS7CuC-QPH2BAAAY0FAAAA","AAQAAQXAhi3yxQTf_AampgmZOgGJ0TEAAAAA"],"player_mulligan_put_on_bottom":[92170],"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQO93S3P0xPHtgIE_f8scdIFuOYUAAiMBQGo5gG53y-bBsaFBKvqC-orBQXY1SwFjysF3bYTBZq1AQXu-wEA":null},"opponent_revealed_deckstrings":["AAQAAQO93S3P0xPHtgIE_f8scdIFuOYUAAiMBQGo5gG53y-bBsaFBKvqC-orBQXY1SwFjysF3bYTBZq1AQXu-wEA"]},{"game_number":2,"game_duration_seconds":235,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQOjvALjmTOwkQ4Fh9gttgXU6wpOvOIIA-eALfTRCJ2aDAe16wGLmyvyxQTXBJqCBJScDJk6AQqNBQID-5QulrQKpZ4LBJcQ78U1wfMC_e0HAAGkLgAA","player_opening_hands":["AAQAAQeNBajmAbKVK6LQBNb4BpmjCdg8AAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQi16wG06RfvgBOPK6LQBMaFBL3aC8C3AgLe7EEGAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQi16wG06RfvgBOPK6LQBMaFBL3aC8C3AgLe7EEGAAAAAA"]},{"game_number":3,"game_duration_seconds":311,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQOjvALjmTOwkQ4Fh9gttgXU6wpOvOIIA-eALfTRCJ2aDAe16wGLmyvyxQTXBJqCBJScDJk6AQqNBQID-5QulrQKpZ4LBJcQ78U1wfMC_e0HAAGkLgAA","player_opening_hands":["AAQAAQeNBdr7LNZc5vUH-NgLnEOZOgAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQqNBcvQLI8rB89cse0DtYgEvPYC5e0HtokBAbXrAQHe7EEAAAA":null},"opponent_revealed_deckstrings":["AAQAAQqNBcvQLI8rB89cse0DtYgEvPYC5e0HtokBAbXrAQHe7EEAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","friendly_deck_name":"Doooooom","friendly_deck_id":"e3e7cd7f-ff8d-4061-93b2-0a21913688d8","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Diamond","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Delmo","team_id":2}]},{"short_id":"W5goxvY8nVxrPSynfz7ykj","match_start":1776962962000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":267,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","player_opening_hands":["AAQAAQeNBajmAe5Qncoq8sUE3_wGv-AJAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQegkwP4wymYvgGurwOgCJiKBLKUDgGNBQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQegkwP4wymYvgGurwOgCJiKBLKUDgGNBQAAAAA"]},{"game_number":2,"game_duration_seconds":404,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsEh9gttgWH2hLyrwME54At9NEItvYC56MJB7XrAYubK_LFBNcEmoIElJwMmToBCo0FAgAElxCwuTgYvOIIAYbWNQGkLgAA","player_opening_hands":["AAQAAQe16wGI8iv17gPf_Aaz7gfztwGZOgAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQ2HBQav5gH0qSylBaqnA_8KilWbsQPzA5vhDZczawKgkwP4wykAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQ2HBQav5gH0qSylBaqnA_8KilWbsQPzA5vhDZczawKgkwP4wykAAAAA"]},{"game_number":3,"game_duration_seconds":191,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQKjvALY2CsEh9gttgWH2hLyrwME54At9NEItvYC56MJB6Qukb0Bi5sr8sUE1wSunhCZOgEKjQUCAASXELC5OBi84ggBhtY1AaPTNQAA","player_opening_hands":["AAQAAQSkLuOpLav0A4SbEgABwIYtAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[0],"opponent_revealed_archetype":{"AAQAAA":null},"opponent_revealed_deckstrings":["AAQAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQKjvALY2CsGpC7jqS22Beb1B_jYC5u7AgTngC300Qi29gLnowkGtesBi5sr8sUE1wSunhCZOgEKjQUCAAaXEI0e_6Q1pPYCGOXtBwGG1jUAAAA","friendly_deck_name":"Doooooom","friendly_deck_id":"e3e7cd7f-ff8d-4061-93b2-0a21913688d8","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Diamond","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":4,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Mythic","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":95.48816680908203,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"bonn","team_id":2}]},{"short_id":"ishsoS8aptTjTdE56QtebG","match_start":1776964624000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":440,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQOJ0jXL-ALg4AgD6MAx85EEn-4LAAu6MfBH4AjiQMXQAerCKanAAYKrA8OVBN_TC9i8AgEHjAUCAq2ZAfi5NwXEqwKlqRf_6xe_Cs6iEAGexjEAAAA","player_opening_hands":["AAQAAQO6Ma75QJIWAonXNbeQDgAAAAA","AAQAAQH6wEEDjAXgvQHF0AEAAAAA","AAQAAQWMBbiRLoKrA5WRBI3YCwHswgEAAAAA"],"player_mulligan_put_on_bottom":[93905,93905],"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQuMBfterocB4-sqqC-VlAGzvQrm1AiKQOc7hsABA7zrAdrrM9P0AgAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQuMBfterocB4-sqqC-VlAGzvQrm1AiKQOc7hsABA7zrAdrrM9P0AgAAAAA"]},{"game_number":2,"game_duration_seconds":438,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQG0q0EDxKsCl6czn-4LAuzCAbKDMAq6MfBH4AinkQLqwimpwAGCqwPDlQTf0wvYvAIBB4wFAgWtmQG_KZ2PNMv4AtEIA-nUGb72F86iEAAB6MAxAAA","player_opening_hands":["AAQAAQOMBaWOA-rCKQKexjG9jAQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQiHBQWw5gHc6yqm9AuUAS6fngsFh2SP8zTT9AKfDIDXCAHVmi4AAAA":null},"opponent_revealed_deckstrings":["AAQAAQiHBQWw5gHc6yqm9AuUAS6fngsFh2SP8zTT9AKfDIDXCAHVmi4AAAA"]},{"game_number":3,"game_duration_seconds":368,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQG0q0EDxKsCl6czn-4LAuzCAbKDMAq6MfBH4AinkQLqwimpwAGCqwPDlQTf0wvYvAIBB4wFAgWtmQG_KZ2PNMv4AtEIA-nUGb72F86iEAAB6MAxAAA","player_opening_hands":["AAQAAQW6MdBQp5ECla4uoukPAcSWLgAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQaMBQHa-yyCywuf4wjduQIDh2S1hwHa6zMB-OxBAAAA":null},"opponent_revealed_deckstrings":["AAQAAQaMBQHa-yyCywuf4wjduQIDh2S1hwHa6zMB-OxBAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQOJ0jXL-ALg4AgD6MAx85EEn-4LAAu6MfBH4AjiQMXQAerCKanAAYKrA8OVBN_TC9i8AgEHjAUCAq2ZAfi5NwXEqwKlqRf_6xe_Cs6iEAGexjEAAAA","friendly_deck_name":"Izzet Prowess","friendly_deck_id":"e50c3a8b-e4cd-449d-a6fd-feb78c8f604a","friendly_deck_colors":10,"friendly_deck_tile_id":12053,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Mythic","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":95.50251770019531,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Mythic","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":96.33772277832031,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"LoveSosa95","team_id":2}]},{"short_id":"3M2UwRUABF6x2n7KYRxSw4","match_start":1776966113000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":90,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8DrRGt3EHBygECqYwLwPYhCKp5wknYkyv9vwH7rAMDxwqDiQQBDeIJAgWtEZqFLpi6A_ucEBsB6dQZAAKYli7drQMAAA","player_opening_hands":["AAQAAQWtEb-xAdXTLMjAB_HpCwG_wzEAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[2],"opponent_revealed_archetype":{"AAQAAQTsY74V39cw0oEEAAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQTsY74V39cw0oEEAAAAAAA"]},{"game_number":2,"game_duration_seconds":311,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8Bm7hDAumCLfHqFAmqecJJ2JMr_b8B-6wDAzaRCoOJBAEN4gkCA8eWLpi6A5adEAHp1BkCrRH8-goBmJYuAAA","player_opening_hands":["AAQAAQfiCeLMLP2_Af6sA8cKg4kEkuENAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[15],"opponent_revealed_archetype":{"AAQAAQqIBfK-AbG6K4xfA-v1Ct_jB9q0AyNbAqp56tI3AAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQqIBfK-AbG6K4xfA-v1Ct_jB9q0AyNbAqp56tI3AAAAAA"]},{"game_number":3,"game_duration_seconds":222,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQSxkwPngivrigT3nw8Bm7hDA6mMC8D2IfHqFAiqecJJ2JMr-OwEAzaRCoOJBAEN4gkCA8eWLpi6A5adEAHp1BkCrRHrhC4BwZYuAAA","player_opening_hands":["AAQAAQfiCYq5Ab3JCZvKIfjsBDnlqRAAAAAAAA","AAQAAQTswgG9yQnA9iGytRYAAeIJAAAA"],"player_mulligan_put_on_bottom":[93905],"opponent_revealed_colors":[11],"opponent_revealed_archetype":{"AAQAAQeuEvxm0Eq36h_YohDSgQTKgAMB3OxDAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQeuEvxm0Eq36h_YohDSgQTKgAMB3OxDAAAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8DrRGt3EHBygECqYwLwPYhCKp5wknYkyv9vwH7rAMDxwqDiQQBDeIJAgWtEZqFLpi6A_ucEBsB6dQZAAKYli7drQMAAA","friendly_deck_name":"Quinniac","friendly_deck_id":"e950459b-553e-4f44-845b-379e097c0b91","friendly_deck_colors":8,"friendly_deck_tile_id":11815,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Mythic","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":96.33772277832031,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Mythic","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":95.121337890625,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"PlayerOne","team_id":1}]},{"short_id":"e6WQfHd2tgq4arq3LTdgKK","match_start":1776966908000,"season_ordinal":88,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":201,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8DrRGt3EHBygECqYwLwPYhCKp5wknYkyv9vwH7rAMDxwqDiQQBDeIJAgWtEZqFLpi6A_ucEBsB6dQZAAKYli7drQMAAA","player_opening_hands":["AAQAAQfiCchvwknQgDDHXYa2A5LhDQAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQbngC3WXAOVPbO9CuaRCwG370EAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQbngC3WXAOVPbO9CuaRCwG370EAAAAA"]},{"game_number":2,"game_duration_seconds":123,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQWxkwOuvS6kUPefD_ssAq0R7qZDAumCLfHqFAiqecJJ2JMr_b8B_qwDNpEKg4kEAQ3iCQICrRGahS4B6dQZAamMCwKYli6krQMAAA","player_opening_hands":["AAQAAQPBli7FtwPUnxAC4gnduTEAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQaNBajmAYjyK4faErS1Ae37AQAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQaNBajmAYjyK4faErS1Ae37AQAAAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQOxkwPSjS_3nw8DrRGt3EHBygECqYwLwPYhCKp5wknYkyv9vwH7rAMDxwqDiQQBDeIJAgWtEZqFLpi6A_ucEBsB6dQZAAKYli7drQMAAA","friendly_deck_name":"Quinniac","friendly_deck_id":"e950459b-553e-4f44-845b-379e097c0b91","friendly_deck_colors":8,"friendly_deck_tile_id":11815,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Mythic","friendly_ranking_tier_before":1,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":95.121337890625,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Mythic","friendly_ranking_tier_after":1,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":96.21765899658203,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Naoya","team_id":2}]},{"short_id":"8SAecpSzjEcb3Yas8A5VkD","match_start":1777475388000,"season_ordinal":null,"event_name":"Constructed_BestOf3","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":231,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQHfyTgFpC7_jQLkmyu2Bd7OEwTngC300Qi29gKlngsHtesBi5sr8sUE1wTvmxC_Apk6AQmNBQIC38k4sZ4LBZcQ8gSbGdM20OQ3AYbWNQAAAA","player_opening_hands":["AAQAAQeNBdr7LNkFycoE0oEE3JwM__cBAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQaqeRT3cYngNvsFxOoHAqVkte03AAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQaqeRT3cYngNvsFxOoHAqVkte03AAAAAA"]},{"game_number":2,"game_duration_seconds":211,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQHfyTgFpC7_jQLkmyu2Bd7OEwTngC300Qi29gKlngsHtesBi5sr8sUE1wTvmxC_Apk6AQmNBQIC38k4sZ4LBZcQ8gSbGdM20OQ3AYbWNQAAAA","player_opening_hands":["AAQAAQWNBZa3Ao-QL9cErp4QAfjsQQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[31],"opponent_revealed_archetype":{"AAQAAQu16wG-uhfsox_aByHJ5gfHAxOu7AGtAQ0BpWQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQu16wG-uhfsox_aByHJ5gfHAxOu7AGtAQ0BpWQAAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQHfyTgFpC7_jQLkmyu2Bd7OEwTngC300Qi29gKlngsHtesBi5sr8sUE1wTvmxC_Apk6AQmNBQIC38k4sZ4LBZcQ8gSbGdM20OQ3AYbWNQAAAA","friendly_deck_name":null,"friendly_deck_id":"b7587478-e179-5ab0-af26-907daa29dbf3","friendly_deck_colors":6,"friendly_deck_tile_id":null,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":null,"friendly_ranking_tier_before":null,"friendly_ranking_tier_steps_before":null,"friendly_mythic_percentile_before":null,"friendly_mythic_leaderboard_place_before":null,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":null,"friendly_ranking_tier_after":null,"friendly_ranking_tier_steps_after":null,"friendly_mythic_percentile_after":null,"friendly_mythic_leaderboard_place_after":null,"friendly_course_wins_before":1,"friendly_course_losses_before":1,"opponents":[{"player_name":"capnblacksparrow","team_id":2}]},{"short_id":"6sfefqRtDu9zvFmvPZqPNR","match_start":1777577746000,"season_ordinal":null,"event_name":"Constructed_BestOf3","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":54,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgFpC7_jQLkmyu2Bd7OEwTngC300Qi29gKlngsHtesBi5sr8sUE1wTvmxC_Apk6AQmNBQIC38k4sZ4LBZcQ8gSbGdM20OQ3AYbWNQAAAA","player_opening_hands":["AAQAAQWNBZa3ApqhK6LsCvHfCQH47EEAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[3],"opponent_revealed_archetype":{"AAQAAQSIBeCIA9XPKuXtAwAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQSIBeCIA9XPKuXtAwAAAAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgFpC7_jQLkmyu2Bd7OEwTngC300Qi29gKlngsHtesBi5sr8sUE1wTvmxC_Apk6AQmNBQIC38k4sZ4LBZcQ8gSbGdM20OQ3AYbWNQAAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":null,"friendly_ranking_tier_before":null,"friendly_ranking_tier_steps_before":null,"friendly_mythic_percentile_before":null,"friendly_mythic_leaderboard_place_before":null,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":null,"friendly_ranking_tier_after":null,"friendly_ranking_tier_steps_after":null,"friendly_mythic_percentile_after":null,"friendly_mythic_leaderboard_place_after":null,"friendly_course_wins_before":1,"friendly_course_losses_before":1,"opponents":[{"player_name":"sbuck","team_id":2}]},{"short_id":"VpjyZzkNP2Bo5FawWLFRip","match_start":1777577835000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":184,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQGjvAIFpC7jqS22Beb1B_jYCwXngC300Qi29gLnowm--gEGtesBi5sr8sUE1wSunhCZOgEKjQUCAqPTNZOUDgWXEI0e0zbQ5DcYAYbWNQAAAA","player_opening_hands":["AAQAAQONBYTEOKamCQLngC3ZBQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQSAFZ_ILZTEBJyZDgGb1TgAAAEFhwUA":null},"opponent_revealed_deckstrings":["AAQAAQSAFZ_ILZTEBJyZDgGb1TgAAAEFhwUA"]},{"game_number":2,"game_duration_seconds":120,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQKjvALkmysDlxCmzS2i7AoG54At9NEISO71AuejCb76AQa16wGLmyvyxQTXBK6eEJk6AQqNBQICh9gtr48WA_dk0OQ31OIIAYbWNQGkLgAA","player_opening_hands":["AAQAAQeNBajmAe5QxMQq2QWQoxXmvQEAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQeJEPcEn8gtl90S6XMfrEAAAYcFAAAA":null},"opponent_revealed_deckstrings":["AAQAAQeJEPcEn8gtl90S6XMfrEAAAYcFAAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQGjvAIFpC7jqS22Beb1B_jYCwXngC300Qi29gLnowm--gEGtesBi5sr8sUE1wSunhCZOgEKjQUCAqPTNZOUDgWXEI0e0zbQ5DcYAYbWNQAAAA","friendly_deck_name":"Doooooom","friendly_deck_id":"e3e7cd7f-ff8d-4061-93b2-0a21913688d8","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"LegendLini","team_id":1}]},{"short_id":"ZABZDBqNDzzSai8EBWNTZU","match_start":1777578214000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":289,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQGjvAIFpC7jqS22Beb1B_jYCwXngC300Qi29gLnowm--gEGtesBi5sr8sUE1wSunhCZOgEKjQUCAqPTNZOUDgWXEI0e0zbQ5DcYAYbWNQAAAA","player_opening_hands":["AAQAAQWNBZcpnNgs26UUnEMB29I1AAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQa6MfBHh5oCla4u-qUS5AQE6MAxoZYE39MLuMECAowF_nwAAAA":null},"opponent_revealed_deckstrings":["AAQAAQa6MfBHh5oCla4u-qUS5AQE6MAxoZYE39MLuMECAowF_nwAAAA"]},{"game_number":2,"game_duration_seconds":445,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQGjvAIGvd0t1OsKNhi84gibuwIG54Aty8sEqYYEqwPylgzYPAWkLpG9AYubK8nKBK6eEAEKjQUCA7LMMd_8Br_gCQSXEOBUkPMsr48WAaPTNQAAAA","player_opening_hands":["AAQAAQO16wH94C-phgQCjQWOp0EAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQmqeZzIMJWRBK4E39MLkhb7LMH5Ae4EBbox0FDevjC2BaKhEgABjAUAAA":null},"opponent_revealed_deckstrings":["AAQAAQmqeZzIMJWRBK4E39MLkhb7LMH5Ae4EBbox0FDevjC2BaKhEgABjAUAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQGjvAIFpC7jqS22Beb1B_jYCwXngC300Qi29gLnowm--gEGtesBi5sr8sUE1wSunhCZOgEKjQUCAqPTNZOUDgWXEI0e0zbQ5DcYAYbWNQAAAA","friendly_deck_name":"Doooooom","friendly_deck_id":"e3e7cd7f-ff8d-4061-93b2-0a21913688d8","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"GSCNow","team_id":2}]},{"short_id":"UMLV6VpmBPeMx3nf47Lzzb","match_start":1777579067000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":91,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","player_opening_hands":["AAQAAQOb1izu-wir2QsCjAW04kMAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQK_wzHJXgLiCbaMLgAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQK_wzHJXgLiCbaMLgAAAAA"]},{"game_number":2,"game_duration_seconds":358,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQKJ0jWSBQL6wEH7LAAMujHwR-AI4kDF0AHqwimpwAGkqgNew5UE39ML2LwCAQaMBQIErZkBp7E30QiP2AgExKsCpakXvvYXtIcEAZ7GMQAAAA","player_opening_hands":["AAQAAQWMBf58p5ECk4MrgqsDAboxAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQTswgHYkyvUvwHxwAcBrrlAAAHiCQAA":null},"opponent_revealed_deckstrings":["AAQAAQTswgHYkyvUvwHxwAcBrrlAAAHiCQAA"]},{"game_number":3,"game_duration_seconds":282,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQKJ0jWSBQTEli7jtAPT9Q_7LAALujHwR-AI4kDF0AHqwinN6gRew5UE39ML2LwCAQaMBQIErZkBp7E30QiP2AgExKsCpakX28EUl7wHAZ7GMQAAAA","player_opening_hands":["AAQAAQH17UEDjAWedPHcKwAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[8],"opponent_revealed_archetype":{"AAQAAQXE1iz9vwHFtwOCVIG1AwLiCcyvQAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQXE1iz9vwHFtwOCVIG1AwLiCcyvQAAAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","friendly_deck_name":"Izzet Prowess","friendly_deck_id":"e50c3a8b-e4cd-449d-a6fd-feb78c8f604a","friendly_deck_colors":10,"friendly_deck_tile_id":90492,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"miserablemarriage","team_id":2}]},{"short_id":"3twDaqVrVZhRAMkoXuwi7L","match_start":1777624884000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":276,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQeNBajmAdLsK6v0A9_8BuejCb76AQAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[26],"opponent_revealed_archetype":{"AAQAAQv0D4wFh0-isy3VqQOnEPaFBMn9AvTUCSPSjAEBiNg4AfvMOAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQv0D4wFh0-isy3VqQOnEPaFBMn9AvTUCSPSjAEBiNg4AfvMOAAAAA"]},{"game_number":2,"game_duration_seconds":151,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQGbrEEFiRWapwLkmyu2BaLsCgTngC300Qidmgy--gEHtesBi5sr8sUE1wSI-AampgmZOgEJjQUCA9vSNcDZC91AA5cQsLk4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQKNBaniQwHQqUIBidExAAAA","AAQAAQWNBdr7LNkF8sUEnt0QAYnRMQAAAAA"],"player_mulligan_put_on_bottom":[92360],"opponent_revealed_colors":[18],"opponent_revealed_archetype":{"AAQAAQOHZJTzNLiUDgGAFQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQOHZJTzNLiUDgGAFQAAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":4,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":3,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"ASH_RAY","team_id":2}]},{"short_id":"oLL7PqkpzoYNZTibJx6j2u","match_start":1777625396000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":413,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQWNBfzLMYj4Bk7YpQkBsswxAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQqMBQGo5gHrpwHpvS7J-wamoAm--gEKiAQCvOsBq5UrAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQqMBQGo5gHrpwHpvS7J-wamoAm--gEKiAQCvOsBq5UrAAAAAA"]},{"game_number":2,"game_duration_seconds":195,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQAFlxDyBJqnApqhK9OKFgOkLsPSLM_mFgi16wGLmyvyxQTXBNKBBLb2AqamCZk6AQmNBQIABIfYLcDxChi84ggBhtY1AfjsQQAA","player_opening_hands":["AAQAAQeNBZa3Ap3KKvfoFJk65r0BWgAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQqMBQH6XrWHAeSnAcXJKuE3jwaj0hO--gEB0sw4AYnRMQAAAA":null},"opponent_revealed_deckstrings":["AAQAAQqMBQH6XrWHAeSnAcXJKuE3jwaj0hO--gEB0sw4AYnRMQAAAA"]},{"game_number":3,"game_duration_seconds":398,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQAFlxDyBJqnApqhK9OKFgOkLsPSLM_mFgi16wGLmyvyxQTXBNKBBLb2AqamCZk6AQmNBQIABIfYLcDxChi84ggBhtY1AfjsQQAA","player_opening_hands":["AAQAAQe16wGLmyvyxQSphgS29gK_4AnmvQEAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[22],"opponent_revealed_archetype":{"AAQAAQv0D8jbAeSnAaaBK48GirYDKu-bEL76AQqIBAG16wEAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQv0D8jbAeSnAaaBK48GirYDKu-bEL76AQqIBAG16wEAAAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":3,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":3,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Yuhi","team_id":2}]},{"short_id":"gusfnX5fgJkLykoUH4eXZ7","match_start":1777626574000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":315,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQWNBfrSLbYFu48UvvoBAYnRMQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQaxriH2nBC0hwSf_gKA8AjEqgIAAsSWLo3UFQm6MfBH4AjiQMXQAbetLl7DlQS3kA4CCIwFBdylQQA":null},"opponent_revealed_deckstrings":["AAQAAQaxriH2nBC0hwSf_gKA8AjEqgIAAsSWLo3UFQm6MfBH4AjiQMXQAbetLl7DlQS3kA4CCIwFBdylQQA"]},{"game_number":2,"game_duration_seconds":212,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQGkLgajvAKaoSuK7AoYvOIIm7sCBueALcvLBKmGBKsDi_MCv-AJBbXrAYubK8nKBO-bEL8CAQmNBQIFsswxqYYEtvYCv-AJ5r0BBZcQ8gSbGeOpLYmQFgAAAAA","player_opening_hands":["AAQAAQe16wGLmyubzAiE9wK84gjdQNg8AAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQqMBf58uqkB7WeAmx6VkxCVkQSuBPHpC9epAgHA50MAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQqMBf58uqkB7WeAmx6VkxCVkQSuBPHpC9epAgHA50MAAAAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":3,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":4,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"kiyo","team_id":2}]},{"short_id":"VSD4XM8DhZK3uBRWizBSfG","match_start":1777627185000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":127,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQO93S3U6wrnowkCjQWp4kMAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQiqeYeaAoCbHrL8HzCCAp4CiLoCAYwFAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQiqeYeaAoCbHrL8HzCCAp4CiLoCAYwFAAAAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":4,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":2,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Lumiukko","team_id":2}]},{"short_id":"4NdEjDctmg3t5NCaxBo8Zk","match_start":1777627356000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":23,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQONBdr7LNDuFALb0jX11gwAAAAA","AAQAAQXngC3LywTXBNKBBNuUDgGH2C0AAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[0],"opponent_revealed_archetype":{"AAQAAA":null},"opponent_revealed_deckstrings":["AAQAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"oda","team_id":2}]},{"short_id":"2NtNS8SxubD6LrwdYRaMGM","match_start":1777627424000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":219,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQPb0jW29gKK4wgCjQXa-ywAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQmMBdYEyG-HtSDKlBCOlASy1gsM7AEDsZMDspc-IQHP1jUAAAA":null},"opponent_revealed_deckstrings":["AAQAAQmMBdYEyG-HtSDKlBCOlASy1gsM7AEDsZMDspc-IQHP1jUAAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Vomitory","team_id":2}]},{"short_id":"nFtvhpCNJQPfiDe9dvxu4f","match_start":1777627693000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":153,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","player_opening_hands":["AAQAAQWMBa4sro8x85EE-fcCAap5AAAAAA","AAQAAQOxkwOqvzKuBAKMBbiRLgAAAAA"],"player_mulligan_put_on_bottom":[12053],"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQWAFaQZmL0BzLYwjrUDAZ-uQQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQWAFaQZmL0BzLYwjrUDAZ-uQQAAAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","friendly_deck_name":"Izzet Prowess","friendly_deck_id":"e50c3a8b-e4cd-449d-a6fd-feb78c8f604a","friendly_deck_colors":10,"friendly_deck_tile_id":90492,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"gyapugyapu","team_id":2}]},{"short_id":"QC5PqhFqX9oRVhNaE333Vh","match_start":1777627918000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":686,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","player_opening_hands":["AAQAAQPGwTHDlQQSAqp5mp0tAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQikLtM2voYBi5srvroESJmIB5v3CAaKggHevjC_CrSHBJ2aDMj6AQKMBf3LMQAAAA":null},"opponent_revealed_deckstrings":["AAQAAQikLtM2voYBi5srvroESJmIB5v3CAaKggHevjC_CrSHBJ2aDMj6AQKMBf3LMQAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","friendly_deck_name":"Izzet Prowess","friendly_deck_id":"e50c3a8b-e4cd-449d-a6fd-feb78c8f604a","friendly_deck_colors":10,"friendly_deck_tile_id":90492,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"h67","team_id":1}]},{"short_id":"937RRm2o7NfC9CiGE7SaNb","match_start":1777628634000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":269,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQLngC300QgBo7wCAY0FAAAA","AAQAAQW16wGLmyvyxQTXBMfYEAGNBQAAAAA"],"player_mulligan_put_on_bottom":[68740],"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQa6MfBHwknF0AGN2EBiBIwF_dE139ML6b8CAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQa6MfBHwknF0AGN2EBiBIwF_dE139ML6b8CAAAAAA"]},{"game_number":2,"game_duration_seconds":289,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQAHiRWapwKaoSuK7AoYvOIIm7sCB-eALcvLBKmGBKsDi_MC56MJ2DwEtesBi5srycoErp4QAQmNBQIGsswxqYYEtvYC56MJ2DzmvQEDlxDwxy2JkBYBpC4AAAA","player_opening_hands":["AAQAAQW16wGylSuf1QiL8wK_4AkBjQUAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQaqeb7HMF6i6Q-SFqarAgSMBa4sz6U1yJMOAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQaqeb7HMF6i6Q-SFqarAgSMBa4sz6U1yJMOAAAAAA"]},{"game_number":3,"game_duration_seconds":123,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQAHiRWapwKaoSuK7AoYvOIIm7sCB-eALcvLBKmGBKsDi_MC56MJ2DwEtesBi5srycoErp4QAQmNBQIGsswxqYYEtvYC56MJ2DzmvQEDlxDwxy2JkBYBpC4AAAA","player_opening_hands":["AAQAAQfngC3ZBZvMCOz2AtTiCJxD__cBAAAAAAA","AAQAAQWNBZa3AriWM8DZC7V9AYnRMQAAAAA"],"player_mulligan_put_on_bottom":[87435],"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQW6MdBQnckwmZwSkQMCjAX90TUAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQW6MdBQnckwmZwSkQMCjAX90TUAAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"chung","team_id":1}]},{"short_id":"C5Pf4BkqLs2qx7HFEGE8ov","match_start":1777629434000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":374,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQW16wGLmyvHUav0A9cEAY0FAAAAAA","AAQAAQWNBdr7LNkF_VbM8wMBm6xBAAAAAA","AAQAAQWNBdr7LNkF26UUtX0B29I1AAAAAA"],"player_mulligan_put_on_bottom":[94869,97369],"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQmqeeAInckw-AS8ggSuBPHpC8amApEDArGTA5ODKwKMBeC9AQAAAA":null},"opponent_revealed_deckstrings":["AAQAAQmqeeAInckw-AS8ggSuBPHpC8amApEDArGTA5ODKwKMBeC9AQAAAA"]},{"game_number":2,"game_duration_seconds":228,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQAFo7wCmqEriuwKGNedCwekLsPSLMvLBKmGBKsDi_MCv-AJBbXrAYubK8nKBO-bEL8CAQmNBQIFsswxqYYEtvYCv-AJ5r0BBZcQ8gT-wi2U1BP1uwIAAAAA","player_opening_hands":["AAQAAQWNBZcpkb0Bw4FA2DwB54AtAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQfTEbdwuqkB7We3rS7zkQSf7gsEujHwR5qdLfzQFQGMBQAAAA":null},"opponent_revealed_deckstrings":["AAQAAQfTEbdwuqkB7We3rS7zkQSf7gsEujHwR5qdLfzQFQGMBQAAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"sejima","team_id":2}]},{"short_id":"mfhyQ9E55oC8knqPZ7ZCrQ","match_start":1777630126000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":265,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQWNBajmAbKVK6BXq_QDAZHJOAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQWyhi2yzgvn5QcE73MCiRCSxTgAAAEGhwUA":null},"opponent_revealed_deckstrings":["AAQAAQWyhi2yzgvn5QcE73MCiRCSxTgAAAEGhwUA"]},{"game_number":2,"game_duration_seconds":99,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQHfyTgGiRWapwLkmyu2Bd7OE5u7AgLngC3LywQItesBi5srycoE0oEEtvYC56MJvwKZOgEJjQUCA7LMMa39BtedCwOXELC5OMmeCwKkLuKnNQAAAA","player_opening_hands":["AAQAAQeNBajmAYubK_LFBNcEiPgGv-AJAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQSJEPcEn8gtn9ETAYcFAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQSJEPcEn8gtn9ETAYcFAAAAAA"]},{"game_number":3,"game_duration_seconds":634,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgGiRWapwLkmyu2Bd7OE5u7AgLngC3LywQItesBi5srycoE0oEEtvYC56MJvwKZOgEJjQUCA7LMMa39BtedCwOXELC5OMmeCwKkLuKnNQAAAA","player_opening_hands":["AAQAAQeJFbfxLP1WzPMD0oEEtvYCpqYJAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[16],"opponent_revealed_archetype":{"AAQAAQuJEPcE85AZ9i6OgBO7MdFT4foKu9kIH6xABJ_dLfz3CpvlBxkAAAEJhwUA":null},"opponent_revealed_deckstrings":["AAQAAQuJEPcE85AZ9i6OgBO7MdFT4foKu9kIH6xABJ_dLfz3CpvlBxkAAAEJhwUA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Kieff","team_id":2}]},{"short_id":"CkY5JQS4o5uZtdnuqcNSMW","match_start":1777634314000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":508,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQOjvAKdyiqfwwsCtesBspUrAAAAAA","AAQAAQWNBdr7LKLQBO-bEL8CAbLMMQAAAAA"],"player_mulligan_put_on_bottom":[92170],"opponent_revealed_colors":[10],"opponent_revealed_archetype":{"AAQAAQSKggG6qQHjny-qnxIGqnnCScXQAZWuLsOVBN_TCwOMBdy7MdimEgG6MQAA":null},"opponent_revealed_deckstrings":["AAQAAQSKggG6qQHjny-qnxIGqnnCScXQAZWuLsOVBN_TCwOMBdy7MdimEgG6MQAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"LUCA","team_id":2}]},{"short_id":"aR4n6NiLzhRvJUdkqEPSXY","match_start":1777665979000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":193,"active_player_id":1,"winning_team_id":2,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","player_opening_hands":["AAQAAQeKggHiQJ2UNBK58wKU4AhMAAAAAAA","AAQAAQeMBeC9AdjTLKSqA6GWBN_TC9i8AgAAAAAA"],"player_mulligan_put_on_bottom":[97320],"opponent_revealed_colors":[3],"opponent_revealed_archetype":{"AAQAAQa1hi24jAGeuAOk_Qag7gerigEAAYgFAAAA":null},"opponent_revealed_deckstrings":["AAQAAQa1hi24jAGeuAOk_Qag7gerigEAAYgFAAAA"]}],"winning_team_id":2,"active_player_id":1,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","friendly_deck_name":"Izzet Prowess","friendly_deck_id":"e50c3a8b-e4cd-449d-a6fd-feb78c8f604a","friendly_deck_colors":10,"friendly_deck_tile_id":90492,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Xx_Xibalba_xX","team_id":2}]},{"short_id":"JyZGQK92kQ4beHCh6HWRts","match_start":1777669659000,"season_ordinal":89,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":74,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","player_opening_hands":["AAQAAQeMBf58upQtl7wHwATN0wvYvAIAAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[1],"opponent_revealed_archetype":{"AAQAAQOG0TGChwfP3gcAAAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQOG0TGChwfP3gcAAAAAAA"]}],"winning_team_id":1,"active_player_id":1,"friendly_deckstring":"AAQAAQSJ0jWSBbnzAuDgCAPowDHzkQSf7gsAC7ox8EfgCOJAxdAB6sIpqcABgqsDw5UE39ML2LwCAQaMBQICrZkB-Lk3BcSrAqWpF__rF78KzqIQAZ7GMQAAAA","friendly_deck_name":"Izzet Prowess","friendly_deck_id":"e50c3a8b-e4cd-449d-a6fd-feb78c8f604a","friendly_deck_colors":10,"friendly_deck_tile_id":90492,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":"Platinum","friendly_ranking_tier_after":4,"friendly_ranking_tier_steps_after":0,"friendly_mythic_percentile_after":0.0,"friendly_mythic_leaderboard_place_after":0,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Blaze","team_id":1}]},{"short_id":"hf6b8YV9AJB7jfAL5TuuQ8","match_start":1777674921000,"season_ordinal":null,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":317,"active_player_id":2,"winning_team_id":1,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","player_opening_hands":["AAQAAQWH2C2K8QqK4wjdQNg8AbbnQwAAAAA","AAQAAQWjvALExCrZBZvMCLb2AgGNBQAAAAA"],"player_mulligan_put_on_bottom":[11809],"opponent_revealed_colors":[6],"opponent_revealed_archetype":{"AAQAAQeNBajmAfupLPK1A9gEgPEP_fMBAYnRMQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQeNBajmAfupLPK1A9gEgPEP_fMBAYnRMQAAAAA"]}],"winning_team_id":1,"active_player_id":2,"friendly_deckstring":"AAQAAQHfyTgEo7wC5JsrtgXezhMC54Atz-YWCbXrAYubK_LFBNcE0oEEtvYC56MJvwKZOgEJjQUCAd_JOASXEPIEvrQ4yZ4LAqQu4qc1AAAA","friendly_deck_name":"Doooooom 2.0.","friendly_deck_id":"fbec4789-a0b2-4c8a-b93e-e569a7576d0f","friendly_deck_colors":6,"friendly_deck_tile_id":87235,"friendly_deck_archetype":null,"friendly_system_seat_id":2,"friendly_team_id":2,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":0,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":null,"friendly_ranking_tier_after":null,"friendly_ranking_tier_steps_after":null,"friendly_mythic_percentile_after":null,"friendly_mythic_leaderboard_place_after":null,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"Felipe_Gon","team_id":1}]},{"short_id":"XC7Ft5Y7ZdD2a8Qwmw22eL","match_start":1777714616000,"season_ordinal":null,"event_name":"Traditional_Ladder","super_format":2,"match_win_condition":2,"games":[{"game_number":1,"game_duration_seconds":689,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQP-wDGdlgSw5gsC1Mo4pvYIAZvWLAu6MfBH4AjiQMXQAZODK4KrA8OVBN_TC9i8ApEDAQaMBQIFm9Ysg_AEgQqghQS2mAwFxKsCpakX_-sXvwrunRIAAAAA","player_opening_hands":["AAQAAQWqecJJr5MrzdQU2LwCAYqCAQAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQ2NBa_mAdzrKs8poFfHBJH0A7eGBND9AtDlB9J05roCBQGHBQAAAAA":null},"opponent_revealed_deckstrings":["AAQAAQ2NBa_mAdzrKs8poFfHBJH0A7eGBND9AtDlB9J05roCBQGHBQAAAAA"]},{"game_number":2,"game_duration_seconds":999,"active_player_id":1,"winning_team_id":1,"friendly_deckstring":"AAQAAQWexjGhjwTcAbDmC6owAfrAQQGb1iwLujHwR-AI4kDF0AGTgyuCqwPDlQTf0wvYvAKRAwEGjAUCA5vWLOPqBKEPBsSrAqWpF__rF78Krf8GwZ4LAAAAAA","player_opening_hands":["AAQAAQWxkwPqwimpwAGklBPpvwIBwOdDAAAAAA","AAQAAQeMBf58_9Q0Es3TC9i8ApEDAAAAAAA"],"player_mulligan_put_on_bottom":[95072],"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQqJELPbAdzrKraFAbM6470K0uUHwrIB0P4BawTzpRmUshTY-AOUmRIBltc1AocFBgAA":null},"opponent_revealed_deckstrings":["AAQAAQqJELPbAdzrKraFAbM6470K0uUHwrIB0P4BawTzpRmUshTY-AOUmRIBltc1AocFBgAA"]},{"game_number":3,"game_duration_seconds":699,"active_player_id":2,"winning_team_id":2,"friendly_deckstring":"AAQAAQWexjGhjwTcAbDmC6owAfrAQQGb1iwLujHwR-AI4kDF0AGTgyuCqwPDlQTf0wvYvAKRAwEGjAUCA5vWLOPqBKEPBsSrAqWpF__rF78Krf8GwZ4LAAAAAA","player_opening_hands":["AAQAAQW6MdBQp5ECk4MrjdQVAZvWLAAAAAA"],"player_mulligan_put_on_bottom":null,"opponent_revealed_colors":[20],"opponent_revealed_archetype":{"AAQAAQe86wGrlSvuBduOAa-7A7eGBJ2VDgSJEI_HLOm_AbWjEgKNBeagGQGHBQAA":null},"opponent_revealed_deckstrings":["AAQAAQe86wGrlSvuBduOAa-7A7eGBJ2VDgSJEI_HLOm_AbWjEgKNBeagGQGHBQAA"]}],"winning_team_id":2,"active_player_id":2,"friendly_deckstring":"AAQAAQP-wDGdlgSw5gsC1Mo4pvYIAZvWLAu6MfBH4AjiQMXQAZODK4KrA8OVBN_TC9i8ApEDAQaMBQIFm9Ysg_AEgQqghQS2mAwFxKsCpakX_-sXvwrunRIAAAAA","friendly_deck_name":"PT Aggro","friendly_deck_id":"72406585-d770-4464-8831-3bf1f2d6c63d","friendly_deck_colors":10,"friendly_deck_tile_id":86940,"friendly_deck_archetype":null,"friendly_system_seat_id":1,"friendly_team_id":1,"friendly_ranking_class_before":"Platinum","friendly_ranking_tier_before":4,"friendly_ranking_tier_steps_before":2,"friendly_mythic_percentile_before":0.0,"friendly_mythic_leaderboard_place_before":0,"friendly_rating_before":null,"friendly_rating_deviation_before":null,"friendly_rating_volatility_before":null,"friendly_rating_mythic_before":null,"friendly_ranking_class_after":null,"friendly_ranking_tier_after":null,"friendly_ranking_tier_steps_after":null,"friendly_mythic_percentile_after":null,"friendly_mythic_leaderboard_place_after":null,"friendly_course_wins_before":null,"friendly_course_losses_before":null,"opponents":[{"player_name":"grinche","team_id":2}]}]
@@ -0,0 +1,84 @@
1
+ const test = require('node:test')
2
+ const assert = require('node:assert/strict')
3
+ const { dedupeEvents, isSameEvent, nameSimilarity } = require('../src/utils/eventDedup')
4
+ const UnityLeagueFetcher = require('../src/fetchers/unityLeague')
5
+ const { readFixture } = require('../test_utils/helpers')
6
+
7
+ test('nameSimilarity: partial match between Unity and Topdeck event names', () => {
8
+ const score = nameSimilarity('Premodern Weekly', 'Untap Altona Premodern Weekly 18.03')
9
+ assert.ok(score >= 0.5, `expected >= 0.5, got ${score}`)
10
+ })
11
+
12
+ test('isSameEvent: same date + same record + partial name match -> duplicate', () => {
13
+ const a = { date: '2026-03-18', name: 'Premodern Weekly', wins: 3, losses: 0, draws: 1 }
14
+ const b = { date: '2026-03-18', name: 'Untap Altona Premodern Weekly 18.03', wins: 3, losses: 0, draws: 1 }
15
+ assert.strictEqual(isSameEvent(a, b), true)
16
+ })
17
+
18
+ test('isSameEvent: same date but different record -> not a duplicate', () => {
19
+ const a = { date: '2026-03-18', name: 'Premodern Weekly', wins: 3, losses: 0, draws: 1 }
20
+ const b = { date: '2026-03-18', name: 'Premodern Weekly', wins: 2, losses: 1, draws: 1 }
21
+ assert.strictEqual(isSameEvent(a, b), false)
22
+ })
23
+
24
+ test('isSameEvent: same record but different date -> not a duplicate', () => {
25
+ const a = { date: '2026-03-18', name: 'Premodern Weekly', wins: 3, losses: 0, draws: 1 }
26
+ const b = { date: '2026-03-11', name: 'Premodern Weekly', wins: 3, losses: 0, draws: 1 }
27
+ assert.strictEqual(isSameEvent(a, b), false)
28
+ })
29
+
30
+ test('isSameEvent: same date + same record but unrelated names -> not a duplicate', () => {
31
+ const a = { date: '2026-03-18', name: 'Premodern Weekly', wins: 3, losses: 0, draws: 1 }
32
+ const b = { date: '2026-03-18', name: 'Modern Showdown', wins: 3, losses: 0, draws: 1 }
33
+ assert.strictEqual(isSameEvent(a, b), false)
34
+ })
35
+
36
+ test('UnityLeagueFetcher: parseHtml emits normalized events array from fixture', () => {
37
+ const html = readFixture('unityLeague.html')
38
+ const fetcher = new UnityLeagueFetcher()
39
+ const result = fetcher.parseHtml(html, 'https://unityleague.gg/player/16215/')
40
+
41
+ assert.ok(Array.isArray(result.events), 'expected events array')
42
+ assert.ok(result.events.length > 0, 'expected non-empty events array')
43
+ for (const e of result.events) {
44
+ assert.match(e.date, /^\d{4}-\d{2}-\d{2}$/, `bad date: ${e.date}`)
45
+ assert.strictEqual(typeof e.wins, 'number')
46
+ assert.strictEqual(typeof e.losses, 'number')
47
+ assert.strictEqual(typeof e.draws, 'number')
48
+ assert.ok(e.name, 'expected event name')
49
+ }
50
+
51
+ // Two known duplicates exist with Topdeck data: 2026-03-18/3-0-1 and 2026-03-11/3-1-0
52
+ const has0318 = result.events.some(e => e.date === '2026-03-18' && e.wins === 3 && e.losses === 0 && e.draws === 1)
53
+ const has0311 = result.events.some(e => e.date === '2026-03-11' && e.wins === 3 && e.losses === 1 && e.draws === 0)
54
+ assert.ok(has0318, 'expected 2026-03-18 3-0-1 event')
55
+ assert.ok(has0311, 'expected 2026-03-11 3-1-0 event')
56
+ })
57
+
58
+ test('dedupeEvents: collapses two known UnityLeague/Topdeck duplicates from fixtures', () => {
59
+ const html = readFixture('unityLeague.html')
60
+ const fetcher = new UnityLeagueFetcher()
61
+ const ulResult = fetcher.parseHtml(html, 'url')
62
+
63
+ const td = JSON.parse(readFixture('topdeck.json'))
64
+ const tdEvents = []
65
+ Object.values(td.gameFormats || {}).forEach(arr => {
66
+ arr.forEach(e => {
67
+ const m = String(e.record).match(/^(\d+)-(\d+)-(\d+)$/)
68
+ if (!m) return
69
+ tdEvents.push({
70
+ source: 'Topdeck',
71
+ date: String(e.date).slice(0, 10),
72
+ name: e.name,
73
+ format: e.rawFormat,
74
+ wins: parseInt(m[1], 10),
75
+ losses: parseInt(m[2], 10),
76
+ draws: parseInt(m[3], 10)
77
+ })
78
+ })
79
+ })
80
+
81
+ const merged = [...ulResult.events, ...tdEvents]
82
+ const unique = dedupeEvents(merged)
83
+ assert.strictEqual(merged.length - unique.length, 2, `expected exactly 2 duplicates removed, got ${merged.length - unique.length}`)
84
+ })
@@ -46,14 +46,83 @@ test('MtgEloFetcher: parseHtml handles malformed astro-island JSON', async () =>
46
46
  })
47
47
  })
48
48
 
49
+ test('MtgEloFetcher: buildEvents joins events with matches and tallies W-L-D from result strings', () => {
50
+ const fetcher = new MtgEloFetcher()
51
+ const events = JSON.parse(readFixture('mtgEloEvents.json'))
52
+ const matches = JSON.parse(readFixture('mtgEloMatches.json'))
53
+
54
+ const result = fetcher.buildEvents(events, matches)
55
+
56
+ assert.strictEqual(result.length, 3)
57
+ const byCode = (date) => result.find(e => e.date === date)
58
+
59
+ // ssutr25 (2025-03-15): 5W-4L-0D
60
+ assert.deepStrictEqual(
61
+ { date: byCode('2025-03-15').date, w: byCode('2025-03-15').wins, l: byCode('2025-03-15').losses, d: byCode('2025-03-15').draws },
62
+ { date: '2025-03-15', w: 5, l: 4, d: 0 }
63
+ )
64
+ // ssliv25 (2025-11-01): 1W-4L-0D
65
+ assert.deepStrictEqual(
66
+ { w: byCode('2025-11-01').wins, l: byCode('2025-11-01').losses, d: byCode('2025-11-01').draws },
67
+ { w: 1, l: 4, d: 0 }
68
+ )
69
+ // sslyo26 (2026-01-10): 3W-4L-1D (one "Draw 1-1" round)
70
+ assert.deepStrictEqual(
71
+ { w: byCode('2026-01-10').wins, l: byCode('2026-01-10').losses, d: byCode('2026-01-10').draws },
72
+ { w: 3, l: 4, d: 1 }
73
+ )
74
+
75
+ for (const ev of result) {
76
+ assert.strictEqual(ev.source, 'MTG Elo Project')
77
+ assert.match(ev.date, /^\d{4}-\d{2}-\d{2}$/)
78
+ assert.ok(ev.name)
79
+ }
80
+ })
81
+
82
+ test('MtgEloFetcher: buildEvents tolerates empty/malformed inputs', () => {
83
+ const fetcher = new MtgEloFetcher()
84
+ assert.deepStrictEqual(fetcher.buildEvents(null, null), [])
85
+ assert.deepStrictEqual(fetcher.buildEvents({ data: [] }, {}), [])
86
+ // event with no matching match list -> skipped
87
+ assert.deepStrictEqual(
88
+ fetcher.buildEvents({ data: [{ code: 'x', date: '2025-01-01', name: 'X' }] }, {}),
89
+ []
90
+ )
91
+ // event with empty match list -> skipped (no W-L-D info)
92
+ assert.deepStrictEqual(
93
+ fetcher.buildEvents({ data: [{ code: 'x', date: '2025-01-01', name: 'X' }] }, { x: [] }),
94
+ []
95
+ )
96
+ })
97
+
98
+ test('MtgEloFetcher: fetchById populates events via API endpoints', async (t) => {
99
+ const fetcher = new MtgEloFetcher()
100
+ const events = JSON.parse(readFixture('mtgEloEvents.json'))
101
+ const matches = JSON.parse(readFixture('mtgEloMatches.json'))
102
+
103
+ const mockRequest = t.mock.method(httpClient, 'request', async (url) => {
104
+ if (url.endsWith('/events')) return { data: events, status: 200 }
105
+ if (url.endsWith('/matches')) return { data: matches, status: 200 }
106
+ return { data: '<html><div class="text-[22pt]">Test User</div></html>', status: 200 }
107
+ })
108
+ const result = await fetcher.fetchById('3irvwtmk')
109
+ mockRequest.mock.restore()
110
+
111
+ assert.ok(Array.isArray(result.events))
112
+ assert.strictEqual(result.events.length, 3)
113
+ assert.ok(result.events.every(e => e.source === 'MTG Elo Project'))
114
+ })
115
+
49
116
  test('MtgEloFetcher: fetchById handles success and error scenarios', async (t) => {
50
117
  const fetcher = new MtgEloFetcher()
51
118
 
52
119
  await t.test('successful fetch', async () => {
53
- const mockRequest = t.mock.method(httpClient, 'request', async () => ({
54
- data: '<html><div class="text-[22pt]">Test User</div></html>',
55
- status: 200
56
- }))
120
+ const mockRequest = t.mock.method(httpClient, 'request', async (url) => {
121
+ if (url.includes('/api/players/')) {
122
+ return { data: url.endsWith('/events') ? { data: [] } : {}, status: 200 }
123
+ }
124
+ return { data: '<html><div class="text-[22pt]">Test User</div></html>', status: 200 }
125
+ })
57
126
  const result = await fetcher.fetchById('123')
58
127
  assert.strictEqual(result.name, 'Test User')
59
128
  mockRequest.mock.restore()