{"appId":"demo-kids-playroom","generatedAt":"2026-08-10T00:28:19.362Z","status":"ready","fingerprint":"7c629ff71e7b5216ef5c1ee2f68a22a7e11cb3d0cbd56405cdab5608c07bbe2c","stages":[{"id":"manifest","label":"Manifest validation","status":"passed","findings":[]},{"id":"assets","label":"Asset preflight","status":"passed","findings":[]},{"id":"analytics","label":"Analytics readiness","status":"passed","findings":[]},{"id":"security","label":"Embed security","status":"passed","findings":[]},{"id":"adapter","label":"WebTV adapter","status":"passed","findings":[]},{"id":"adapter","label":"android-tv adapter","status":"passed","findings":[]},{"id":"adapter","label":"roku adapter","status":"passed","findings":[]}],"summary":{"errors":0,"warnings":0,"assetsChecked":13,"adapterTargets":3,"webtvAdapterStatus":"ready"},"manifest":{"valid":true,"status":"valid","fingerprint":"7c629ff71e7b5216ef5c1ee2f68a22a7e11cb3d0cbd56405cdab5608c07bbe2c","findings":[]},"assets":{"appId":"demo-kids-playroom","generatedAt":"2026-08-10T00:28:19.361Z","totals":{"assets":13,"ok":13,"warnings":0,"errors":0},"findings":[{"asset":{"id":"demo-kids-playroom.logo","type":"image","url":"https://placehold.co/512x512/12213A/8DE969?text=Demo%20Kids%20Playroom","usage":"logo"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":198,"status":200},{"asset":{"id":"demo-kids-playroom.splash","type":"image","url":"https://placehold.co/1920x1080/12213A/FFF8E8?text=Demo%20Kids%20Playroom","usage":"splash"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":190,"status":200},{"asset":{"id":"kids-alphabet.poster","type":"image","url":"https://placehold.co/960x540/243B6B/FFF8E8?text=Alphabet%20Adventure","usage":"poster","contentId":"kids-alphabet"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":190,"status":200},{"asset":{"id":"kids-alphabet.background","type":"image","url":"https://placehold.co/1920x1080/12213A/FFF8E8?text=Alphabet%20Adventure","usage":"background","contentId":"kids-alphabet"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":204,"status":200},{"asset":{"id":"kids-alphabet.playback","type":"playback","url":"https://samplelib.com/lib/preview/mp4/sample-10s.mp4","usage":"playback","contentId":"kids-alphabet"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"video/mp4","elapsedMs":618,"status":200},{"asset":{"id":"kids-counting.poster","type":"image","url":"https://placehold.co/960x540/243B6B/FFF8E8?text=Counting%20Game","usage":"poster","contentId":"kids-counting"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":256,"status":200},{"asset":{"id":"kids-counting.background","type":"image","url":"https://placehold.co/1920x1080/12213A/FFF8E8?text=Counting%20Game","usage":"background","contentId":"kids-counting"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":254,"status":200},{"asset":{"id":"kids-counting.playback","type":"playback","url":"https://samplelib.com/lib/preview/mp4/sample-5s.mp4","usage":"playback","contentId":"kids-counting"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"video/mp4","elapsedMs":531,"status":200},{"asset":{"id":"kids-shapes.poster","type":"image","url":"https://placehold.co/960x540/243B6B/FFF8E8?text=Shapes%20Poster","usage":"poster","contentId":"kids-shapes"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":162,"status":200},{"asset":{"id":"kids-shapes.background","type":"image","url":"https://placehold.co/1920x1080/12213A/FFF8E8?text=Shapes%20Poster","usage":"background","contentId":"kids-shapes"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":146,"status":200},{"asset":{"id":"kids-weekend.poster","type":"image","url":"https://placehold.co/960x540/243B6B/FFF8E8?text=Weekend%20Playlist","usage":"poster","contentId":"kids-weekend"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":138,"status":200},{"asset":{"id":"kids-weekend.background","type":"image","url":"https://placehold.co/1920x1080/12213A/FFF8E8?text=Weekend%20Playlist","usage":"background","contentId":"kids-weekend"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":160,"status":200},{"asset":{"id":"demo-kids-playroom-home.background","type":"image","url":"https://placehold.co/1920x1080/12213A/FFF8E8?text=Demo%20Kids%20Playroom%20Home","usage":"background","screenId":"demo-kids-playroom-home"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":126,"status":200}]},"adapters":[{"adapterId":"webtv-reference","target":"browser-webtv","status":"ready","entryRoutes":{"portal":"/portal?project=demo-kids-playroom","preview":"/?project=demo-kids-playroom","manifest":"/api/app-manifest/current?project=demo-kids-playroom"},"supported":{"blockTypes":["hero","rail","grid","liveGuide","continueWatching","posterList","text","banner","actions","embed","searchKeyboard","searchResults","searchPreview","bundleOffer","providerLogoRail","promoMosaic"],"streamFormats":["mp4","external","youtube","hls","dash","webrtc"],"navigationModels":["browser","spatial","rowPriority"]},"findings":[]},{"adapterId":"android-tv-target","target":"android-tv","status":"ready","runtime":{"language":"Kotlin / Jetpack Compose for TV","rendererEntry":"native/android-tv/app/src/main/java/app/universalmedia/MainActivity.kt","packageRoot":"native/android-tv"},"supported":{"blockTypes":["hero","searchKeyboard","searchResults","searchPreview","bundleOffer","providerLogoRail","promoMosaic"],"nativeBlockTypes":["hero","searchKeyboard","searchResults","searchPreview","bundleOffer"],"fallbackBlockTypes":["providerLogoRail","promoMosaic"],"streamFormats":["hls","dash","mp4","external"],"billingProviders":["iap","external"]},"billing":{"entitlementEndpoint":"/api/subscription/entitlement?project=demo-kids-playroom","purchaseEndpoint":"/api/subscription/purchase","restoreEndpoint":"/api/subscription/restore","providerMode":"none"},"findings":[]},{"adapterId":"roku-target","target":"roku","status":"ready","runtime":{"language":"BrightScript / SceneGraph","rendererEntry":"native/roku/source/main.brs","packageRoot":"native/roku"},"supported":{"blockTypes":["searchKeyboard","searchResults","searchPreview","bundleOffer","providerLogoRail","promoMosaic"],"nativeBlockTypes":["searchKeyboard","searchResults","searchPreview","bundleOffer"],"fallbackBlockTypes":["providerLogoRail","promoMosaic"],"streamFormats":["hls","dash","mp4","external"],"billingProviders":["iap","external"]},"billing":{"entitlementEndpoint":"/api/subscription/entitlement?project=demo-kids-playroom","purchaseEndpoint":"/api/subscription/purchase","restoreEndpoint":"/api/subscription/restore","providerMode":"none"},"findings":[]}],"webtvAdapter":{"adapterId":"webtv-reference","target":"browser-webtv","status":"ready","entryRoutes":{"portal":"/portal?project=demo-kids-playroom","preview":"/?project=demo-kids-playroom","manifest":"/api/app-manifest/current?project=demo-kids-playroom"},"supported":{"blockTypes":["hero","rail","grid","liveGuide","continueWatching","posterList","text","banner","actions","embed","searchKeyboard","searchResults","searchPreview","bundleOffer","providerLogoRail","promoMosaic"],"streamFormats":["mp4","external","youtube","hls","dash","webrtc"],"navigationModels":["browser","spatial","rowPriority"]},"findings":[]}}