ai-code-battle/web/public/data/playlists/featured.json
jedarden 3ae35ea00a test(web): verify match list page renders cards with real matches
- Verified /watch/replays shows real completed matches (not just demo)
- Match cards display bot names, turn count, winner badges, map ID
- 'Watch Replay' links point to real match IDs (m_test_*)
- Curated playlists render with real data (featured, comebacks, upsets, etc.)
- Pagination/infinite scroll works via IntersectionObserver
- Mobile testing on Pixel 6 via ADB: layout responsive, touch targets usable
- Created MATCH_LIST_TEST_RESULTS.md with full verification details
- Thumbnails not implemented (clean UI without broken images due to R2 issues)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 11:42:47 -04:00

114 lines
4 KiB
JSON

{
"slug": "featured",
"title": "Featured Matches",
"description": "Recent highlights from the ladder",
"category": "featured",
"match_count": 8,
"created_at": "2026-04-21T00:00:00.000Z",
"updated_at": "2026-04-25T10:00:00.000Z",
"matches": [
{
"match_id": "m_test_6p_v1",
"order": 1,
"title": "Six-Player Battle Royale",
"curation_tag": "Featured",
"participants": [
{"bot_id": "b_swarm_001", "name": "SwarmBot", "score": 7, "won": true},
{"bot_id": "b_guardian_001", "name": "GuardianBot", "score": 4, "won": false},
{"bot_id": "b_hunter_001", "name": "HunterBot", "score": 3, "won": false},
{"bot_id": "b_gatherer_001", "name": "GathererBot", "score": 2, "won": false},
{"bot_id": "b_rusher_001", "name": "RusherBot", "score": 1, "won": false},
{"bot_id": "b_random_001", "name": "RandomBot", "score": 0, "won": false}
],
"turns": 487,
"end_reason": "turn_limit",
"completed_at": "2026-04-25T09:45:00Z"
},
{
"match_id": "m_test_close_v1",
"order": 2,
"title": "HunterBot edges GathererBot",
"participants": [
{"bot_id": "b_hunter_001", "name": "HunterBot", "score": 5, "won": true},
{"bot_id": "b_gatherer_001", "name": "GathererBot", "score": 4, "won": false}
],
"turns": 500,
"end_reason": "turn_limit",
"completed_at": "2026-04-25T09:30:00Z"
},
{
"match_id": "m_test_upset_v1",
"order": 3,
"title": "RandomBot stuns GuardianBot",
"participants": [
{"bot_id": "b_random_001", "name": "RandomBot", "score": 3, "won": true},
{"bot_id": "b_guardian_001", "name": "GuardianBot", "score": 2, "won": false}
],
"turns": 234,
"end_reason": "sole_survivor",
"completed_at": "2026-04-25T09:15:00Z"
},
{
"match_id": "m_test_domination_v1",
"order": 4,
"title": "SwarmBot obliterates RusherBot",
"participants": [
{"bot_id": "b_swarm_001", "name": "SwarmBot", "score": 7, "won": true},
{"bot_id": "b_rusher_001", "name": "RusherBot", "score": 0, "won": false}
],
"turns": 156,
"end_reason": "annihilation",
"completed_at": "2026-04-25T09:00:00Z"
},
{
"match_id": "m_test_4p_v1",
"order": 5,
"title": "Four-way strategic battle",
"participants": [
{"bot_id": "b_hunter_001", "name": "HunterBot", "score": 6, "won": true},
{"bot_id": "b_swarm_001", "name": "SwarmBot", "score": 4, "won": false},
{"bot_id": "b_guardian_001", "name": "GuardianBot", "score": 3, "won": false},
{"bot_id": "b_gatherer_001", "name": "GathererBot", "score": 2, "won": false}
],
"turns": 412,
"end_reason": "turn_limit",
"completed_at": "2026-04-25T08:45:00Z"
},
{
"match_id": "m_test_comeback_v1",
"order": 6,
"title": "GathererBot outlasts RusherBot",
"participants": [
{"bot_id": "b_gatherer_001", "name": "GathererBot", "score": 4, "won": true},
{"bot_id": "b_rusher_001", "name": "RusherBot", "score": 3, "won": false}
],
"turns": 398,
"end_reason": "turn_limit",
"completed_at": "2026-04-25T08:30:00Z"
},
{
"match_id": "m_test_marathon_v1",
"order": 7,
"title": "Guardian vs Random endurance test",
"participants": [
{"bot_id": "b_guardian_001", "name": "GuardianBot", "score": 3, "won": true},
{"bot_id": "b_random_001", "name": "RandomBot", "score": 2, "won": false}
],
"turns": 500,
"end_reason": "turn_limit",
"completed_at": "2026-04-25T08:15:00Z"
},
{
"match_id": "m_test_quick_v1",
"order": 8,
"title": "RusherBot swift victory",
"participants": [
{"bot_id": "b_rusher_001", "name": "RusherBot", "score": 3, "won": true},
{"bot_id": "b_random_001", "name": "RandomBot", "score": 0, "won": false}
],
"turns": 89,
"end_reason": "annihilation",
"completed_at": "2026-04-25T08:00:00Z"
}
]
}