WM_STATE
The property a window manager sets on a client window to say which state it is in — and which, in practice, became the receipt proving that a window is a real application at all.
Most ICCCM properties are written by the client and read by the window manager. WM_STATE runs the other way. Once the window manager has adopted a top-level window, typically by wrapping it in a frame of its own, it sets the property with two fields: the state, and the ID of the icon window if there is one. The states are WithdrawnState (0), NormalState (1) and IconicState (3). The gap at 2 is not a mistake: ZoomState and InactiveState (4) appeared in early drafts and were left in Xutil.h marked obsolete, where they remain. A client wanting to change state asks by sending WM_CHANGE_STATE to the root window, and one wanting to vanish entirely unmaps its window and sends a synthetic UnmapNotify so the window manager knows it was deliberate.
The side effect outgrew the purpose. Because only managed client windows carry WM_STATE, the property is the simplest way to tell the actual application window apart from the frame around it and from every helper window in the tree. xprop, xdotool, wmctrl and EWMH's _NET_CLIENT_LIST all locate clients by looking for it. A window without WM_STATE under a running window manager is therefore a menu, a frame, or an application nobody has adopted.