-- DreamStack Chained Composition — Layer 2: Master Dashboard
-- Receives the aggregated metrics (from Layer 1) AND mood (from Layer 0).
--
-- Architecture:
--   Counter ──┐
--   Clock  ───┤──► compose-metrics ──┐
--   Stats  ───┘    (Layer 1)         │
--                                    ├──► THIS APP (Layer 2)
--   Mood ────────────────────────────┘
--
-- This demonstrates:
--   1. Chained composition (3 → 1 → final)
--   2. Multiple layers of signal derivation
--   3. Mixing independently-sourced streams
--
-- Run with:
--   dreamstack build examples/compose-master.ds

let metrics = stream from "ws://localhost:9100/stream/metrics" {
  select: uptime, events, status
}
let mood = stream from "ws://localhost:9100/stream/mood" {
  select: mood, energy, color
}

view main =
  column [
    text "🏗️ Master Dashboard (Layer 2)"
    text "Chained: 3→1→here + mood"
    row [
      column [
        text "── ⚡ Aggregated Metrics ──"
        text "(from compose-metrics)"
        text "Uptime: {metrics.uptime}s"
        text "Total Events: {metrics.events}"
        text "Status: {metrics.status}"
      ]
      column [
        text "── 😊 Mood (Direct) ──"
        text "(from streaming-mood)"
        text "Mood: {mood.mood}"
        text "Energy: {mood.energy}%"
        text "Color: {mood.color}"
      ]
    ]
  ]
