ICCCM
The Inter-Client Communication Conventions Manual, designed by David Rosenthal at the MIT X Consortium (1987-1989), specifies how X11 clients cooperate on selections, cut buffers, window manager hints, and session management. It is notorious for being ambiguous and is one of the things Wayland was designed to make unnecessary.
The ICCCM (Inter-Client Communication Conventions Manual) is a specification that defines how X11 clients are supposed to cooperate with each other and with window managers. It was designed by David S. H. Rosenthal of the MIT X Consortium between 1987 and 1989; a draft appeared in X11R2 (1988), version 1.0 shipped with X11R4 in July 1989, and version 2.0 followed in X11R6 in May 1994. The ICCCM exists because the X Window System deliberately specified 'mechanism, not policy'. The core X protocol says how to draw a rectangle or read a keypress but not, for example, how an application should hand the clipboard to another, how it should ask the window manager to maximize a window, or how session state should survive a logout. The ICCCM filled those gaps, covering selections (X's name for clipboard-style transfers), cut buffers, window manager hints (the WM_HINTS and WM_NORMAL_HINTS properties), colormap installation on 8-bit displays, and session management. The ICCCM is widely cited as one of the hardest-to-implement specifications in Unix graphics: ambiguities, race conditions, and edge cases meant that toolkits like Xt, Motif, GTK, and Qt each shipped their own subtly incompatible interpretations. The preface to version 2.0 explicitly acknowledged these problems and aimed 'to fix problems with earlier drafts, and to improve readability and understandability'. Eliminating the ICCCM-style coordination layer was a stated goal of Wayland (Display Server), where the compositor mediates these interactions directly instead of clients negotiating with each other through X properties and events.