{"summary":"VS Engine Widget Registry: 17 widgets\n  ✅ Production: 11\n  ⚠️  Reduced: 3\n  ❌ Blocked: 3\n  📊 Data points: 92/145 (63% coverage)","widgets":[{"id":"kampindsigt","name":"Kampindsigt","description":"Matchöversikt med lagform, målstatistik, insikter och odds. Kombinerar data från tre API:er till en snabb matchsammanfattning.","category":"both","status":"production","statusNote":"Fullt funktionell med alla datakällor.","dataSources":["Kambi (odds)","SportRadar (standings, form)","ValueStats (insights)"],"missingDataSources":[],"availableMetrics":8,"totalMetrics":8,"sampleOutput":"Lagform (W/D/L), mål/match, topp-3 bettinginsikter, 1X2 odds","version":"1.0","addedDate":"2026-04-09"},{"id":"duell-radar","name":"Duell-Radar","description":"Spelarjämförelse mellan toppspelare från varje lag. Percentilbaserad radar med 13 metrics (6 live, 7 väntar på Opta/StatsBomb).","category":"match_detail","status":"reduced","statusNote":"6 av 13 metrics tillgängliga. npxG, xA, xT, dribblingar och nyckelpass kräver Opta/StatsBomb.","dataSources":["SportRadar (player stats per match)"],"missingDataSources":["Opta (advanced events)","StatsBomb (xG, xA, xT)"],"availableMetrics":6,"totalMetrics":13,"sampleOutput":"Hümmet vs Olusanya: Mål/90 (72:a vs 61:a percentilen), Assists/90, Skud/90...","version":"1.0","addedDate":"2026-04-09"},{"id":"momentum-duel","name":"Momentum-Duel","description":"Formkurva senaste 8 matcher med kumulativa mål, momentumpoäng och trendkategorisering. xG-baserad version väntar på ny datakälla.","category":"match_detail","status":"reduced","statusNote":"Goals-baserad. xG-momentum, regression probability och xG-delta kräver Opta/StatsBomb.","dataSources":["SportRadar (player goals/shots per match)"],"missingDataSources":["Opta/StatsBomb (xG per spelare per match)"],"availableMetrics":5,"totalMetrics":9,"sampleOutput":"Hümmet: momentum 6.2 (warm 🌡️), 5 mål senaste 8. Olusanya: 7.8 (hot 🔥), 6 mål senaste 8.","version":"1.0","addedDate":"2026-04-09"},{"id":"dolda-monster","name":"Dolda Mönster","description":"Surprising statistiska mönster — korrelationer mellan kalender, vila, tidpunkt och matchutfall. Nu med 3 säsongers data och spelarmönster. Underhållning meets data.","category":"match_detail","status":"production","statusNote":"3-season data (2024-2026), team + player patterns, top-10 per team. Väder, måne, aktiemarknad, Spotify kräver externa API:er.","dataSources":["SportRadar competitors/{urn}/summaries (match results, per-player stats)","SportRadar seasons/{urn}/schedules (historical season results: sr:season:113569, sr:season:126567, sr:season:138196)","Calendar math (weekday, prime date, digit sum, kickoff time bucket)"],"missingDataSources":["OpenWeatherMap","ephem/USNO (moon)","yfinance","Spotify API","Google Trends"],"availableMetrics":18,"totalMetrics":30,"sampleOutput":"\"Pettersson startar på lördag → ren start (100%, 6/6 matcher)\" | \"Mjällby på primtalsdatum → gör mål (87%, 20/23 matcher, 3 säsonger 2024-2026)\"","version":"2.0","addedDate":"2026-04-09"},{"id":"domareffekten","name":"Domareffekten","description":"Domarprofil med statistiska tendenser jämfört med ligagenomsnitt. Visar om domaren är kortsträng, straffbenägen etc.","category":"match_detail","status":"production","statusNote":"Gula kort, frisparkar och hemmaseger fullt funktionella. Straffar och tilläggstid väntar på timeline-parsing.","dataSources":["SportRadar (referee data, match stats)"],"missingDataSources":[],"availableMetrics":3,"totalMetrics":5,"sampleOutput":"Glenn Nyberg: 4.25 gula kort/match (+37% vs liga), 58% hemmaseger.","version":"1.0","addedDate":"2026-04-09"},{"id":"skudkort-h2h","name":"Skudkort H2H","description":"Spatiell skottkarta med xG-viktade cirklar på halvplanvy. Jämför var två spelare skjuter ifrån.","category":"match_detail","status":"blocked","statusNote":"Kräver Opta Event Stream (skottkoordinater x/y + xG per skott). Inte tillgängligt.","dataSources":[],"missingDataSources":["Opta Event Stream","StatsBomb (per-shot xG)"],"availableMetrics":0,"totalMetrics":7,"sampleOutput":"(Blockerad — visar placeholder)","version":"0.0","addedDate":"2026-04-09"},{"id":"matchens-nyckel","name":"Matchens Nyckel","description":"AI-identifierad taktisk matchup — den mest asymmetriska spelare-mot-spelare duellen på planen.","category":"match_detail","status":"blocked","statusNote":"Kräver Opta heatmaps, dribble/tackle/cross data och zonbaserad attackfördelning.","dataSources":[],"missingDataSources":["Opta heatmaps","Opta detailed events","StatsBomb"],"availableMetrics":0,"totalMetrics":6,"sampleOutput":"(Blockerad — visar placeholder)","version":"0.0","addedDate":"2026-04-09"},{"id":"odds-row","name":"Odds Row","description":"Kompakt oddsvisning med 1X2, Över/Under och Båda Lagen Gör Mål.","category":"both","status":"production","statusNote":"Fullt funktionell.","dataSources":["Kambi (betOffers)"],"missingDataSources":[],"availableMetrics":6,"totalMetrics":6,"sampleOutput":"Hemma 2.10 | Oavgjort 3.40 | Borta 3.20 | Ö/U 2.5: 1.85/1.95","version":"1.0","addedDate":"2026-04-09"},{"id":"league-table","name":"League Table","description":"Fullständig ligatabell med placering, matcher, mål, poäng och form.","category":"lobby","status":"production","statusNote":"Fullt funktionell.","dataSources":["SportRadar (standings)"],"missingDataSources":[],"availableMetrics":9,"totalMetrics":9,"sampleOutput":"1. Malmö FF — 18 matcher, 42 poäng, +18 målskillnad, form: WWDWL","version":"1.0","addedDate":"2026-04-09"},{"id":"malprofil","name":"Målprofil","description":"Målfördelning per halvlek per lag. Visar om ett lag gör flest mål i 1:a eller 2:a halvlek, med procentuell fördelning och trendanalys.","category":"both","status":"production","statusNote":"Fullt funktionell från SportRadar period_scores. Alla lag med matchhistorik inkluderas.","dataSources":["SportRadar (team summaries → period_scores)"],"missingDataSources":[],"availableMetrics":6,"totalMetrics":6,"sampleOutput":"AIK — 78% mål i 2:a halvlek (14 av 18 mål). Dominansgrad: 56/100.","version":"1.0","addedDate":"2026-04-09"},{"id":"spelarprofil","name":"Spelarprofil","description":"Spelare säsongsprofil med per-90 metrics, overall rating, och statistik-breakdown. Visar top-spelare per lag.","category":"match_detail","status":"reduced","statusNote":"Goals, assists, skott, kort baserat. xG, passning, dribbling kräver Opta.","dataSources":["SportRadar (team summaries → per-player stats)"],"missingDataSources":["Opta (xG, xA, pass accuracy, dribbles, progressive carries)"],"availableMetrics":10,"totalMetrics":18,"sampleOutput":"Hümmet: Rating 72, 0.44 mål/90, 0.22 assists/90, 47% skott på mål.","version":"1.0","addedDate":"2026-04-09"},{"id":"skytteliga","name":"Skytteliga","description":"Ligans topscorerlista med antal mål, lag-tillhörighet och mål/match ratio.","category":"both","status":"production","statusNote":"Fullt funktionell från SportRadar season leaders.","dataSources":["SportRadar (season leaders → goals)"],"missingDataSources":[],"availableMetrics":4,"totalMetrics":4,"sampleOutput":"1. Olusanya (Djurgårdens IF) — 12 mål, 0.75/match","version":"1.0","addedDate":"2026-04-09"},{"id":"assistliga","name":"Assistliga","description":"Ligans topp-assistlista med antal assists, lag och assists/match ratio.","category":"both","status":"production","statusNote":"Fullt funktionell från SportRadar season leaders.","dataSources":["SportRadar (season leaders → assists)"],"missingDataSources":[],"availableMetrics":4,"totalMetrics":4,"sampleOutput":"1. Karlsson (Malmö FF) — 8 assists, 0.53/match","version":"1.0","addedDate":"2026-04-09"},{"id":"kort-liga","name":"Kort-Liga","description":"Ligans mest varnade spelare — gula och röda kort, sorterat efter antal.","category":"both","status":"production","statusNote":"Fullt funktionell från SportRadar season leaders.","dataSources":["SportRadar (season leaders → yellow_cards, red_cards)"],"missingDataSources":[],"availableMetrics":4,"totalMetrics":4,"sampleOutput":"1. Svensson (IFK Göteborg) — 7 gula kort | 1. Andersson (Hammarby) — 2 röda kort","version":"1.0","addedDate":"2026-04-09"},{"id":"liga-bast","name":"Liga-Bäst","description":"Multidimensionella lagrankningar: bäst totalt, bäst attack, bäst försvar, bäst form, bäst målskillnad.","category":"both","status":"production","statusNote":"Fullt funktionell från SportRadar standings.","dataSources":["SportRadar (standings)"],"missingDataSources":[],"availableMetrics":5,"totalMetrics":7,"sampleOutput":"Bäst Attack: Malmö FF (2.1 mål/match). Bäst Försvar: Djurgården (0.6 insläppta/match).","version":"1.0","addedDate":"2026-04-09"},{"id":"marknadens-blinda-flack","name":"Marknadens Blinda Fläck","description":"Identifierar lag vars faktiska prestationer avviker signifikant från vad oddsen/marknaden förväntar — xG vs mål diskrepans.","category":"lobby","status":"blocked","statusNote":"Kräver xG-data (Opta/StatsBomb) för att beräkna expected goals vs actual goals. Odds-data finns via Kambi.","dataSources":["Kambi (odds)"],"missingDataSources":["Opta/StatsBomb (xG per match)"],"availableMetrics":0,"totalMetrics":5,"sampleOutput":"(Blockerad — aktiveras vid Opta-integration)","version":"0.0","addedDate":"2026-04-09"},{"id":"odds-varde","name":"Odds/Värde","description":"Värdebets — matcher där hög konfidens-insight kombineras med generösa odds. Standalone-version av odds-row.","category":"lobby","status":"production","statusNote":"Kräver matchdata med både insights (ValueStats) och odds (Kambi).","dataSources":["Kambi (betOffers)","ValueStats (insights)"],"missingDataSources":[],"availableMetrics":4,"totalMetrics":4,"sampleOutput":"AIK vs Malmö — \"Över 2.5 mål\" @ 1.95 (82% konfidens)","version":"1.0","addedDate":"2026-04-09"}]}