"Status is not a field you store. It's a verdict you compute, fresh, from three inputs."
Status is a function, not a field
You never write status: healthy into a machine's record. You compute it every time, from three things: what policy says it should be (desired), what the probe saw (observed), and how old that observation is (freshness). Store the inputs; derive the verdict. A stored status is a lie waiting for the world to move on beneath it.
The vocabulary of verdicts
Green-or-red is too small a language. A useful engine speaks in verdicts that carry their reason: healthy, healthy_sleeping, maintenance, waiting_for_gui_setup, stale, degraded, unreachable_expected, unreachable_unexpected, suspended, retired, unknown. Each tells you not just that something's off, but which lever to reach for.
Membership gates health
Some verdicts short-circuit the rest: a suspended host is intentionally unmanaged, and a retired host is history — neither is unhealthy, they're simply not being asked to be anything right now. A retired machine isn't down. It's not ours to watch anymore.
Keep red expensive, and always explain it
Red belongs to unreachable_unexpected and its kin — reality breaking a promise. A sleeping laptop is healthy_sleeping, never red. And a color is never enough on its own: the interface must show the contributing facts, because red with no why isn't administration, it's an anxiety generator.