Agent Patterns

Pattern 1: Friday Night Action Block

POST /add_marathon
  { "key": "action", "groupBy": "show",
    "searches": ["Die Hard", "John Wick", "The Raid"],
    "itemOrder": "chronological", "playAllItems": false }

POST /pad_until { "content": "action", "when": "23:00" }

POST /watermark_on { "watermark": ["channel-logo"] }
POST /graphics_on { "graphics": ["lower-third"], "variables": {"show": "Action Block"} }

POST /start_epg_group { "advance": true, "customTitle": "Friday Action" }
POST /add_duration { "content": "action", "duration": "03:00:00" }
POST /stop_epg_group

POST /watermark_off
POST /graphics_off

Pattern 2: Rotating blocks with EPG grouping

POST /start_epg_group { "advance": true, "customTitle": "Sitcom Hour" }
POST /add_collection { "key": "sitcoms", "collection": "Sitcoms", "order": "shuffle" }
POST /add_duration { "content": "sitcoms", "duration": "01:00:00" }
POST /stop_epg_group

POST /start_epg_group { "advance": true, "customTitle": "Movie Prime" }
POST /add_smart_collection { "key": "movies", "smartCollection": "Unwatched Movies", "order": "shuffle" }
POST /add_duration { "content": "movies", "duration": "02:30:00" }
POST /stop_epg_group

Pattern 3: Exact time scheduling

POST /wait_until_exact { "when": "2026-05-15T20:00:00" }
POST /add_marathon { "key": "prime", "groupBy": "show", "guids": {"tvdb": ["ghost-in-the-shell-sac"]} }
POST /add_count { "content": "prime", "count": 3 }
POST /wait_until { "when": "23:00", "tomorrow": true }