SwingComponentNode
The node a Swing composition stores for one declared component, read off a node group of its CompositionData:
val component = (group.node as? SwingComponentNode)?.componentA group whose CompositionGroup.node is not a SwingComponentNode declared no Swing component - it is a control-flow or call group, or a node of some other composition sharing the tree.
org.jetbrains.compose.swing.tooling.findDeclaringGroup answers from the other end, starting at a component and returning the group holding its node.
Properties
The modifier chain the composition last declared for component, and SwingModifier itself where it declared none. Walk it with SwingModifier.foldIn, which hands out a SwingModifier.Element; read the name and declaredValues of each one that is a SwingModifier.InspectableElement to show what the component carries.