I've been tinkering with ECS lately and thinking about UI. The questions on my mind are: Do you really want each widget to be an entity? What if the UI overlay was a component of one entity? What if that UI was then described in an "immediate mode" similar to Dear ImGui to avoid state sync issues? They mention immediate vs. retained early in the article but it's not explored as a possible design change.