IconRenderer

Icon -- one of the catalog's fifty-nine names, or a path the agent drew itself.

The catalog types name three ways, and all three arrive here as the same property: a string from the enum, an object carrying svgPath, or a data binding that resolves to one of the enum's strings. The first and third are the same read -- rememberString resolves a binding and returns the literal unchanged -- and the second is picked out ahead of it, because an object is not a DynamicString and would resolve to null.

No colour of its own. Material 3's Icon tints with LocalContentColor, which is exactly §4's rule for leaves: an icon inside a filled Button picks up the button's content colour without anything passing it down, and an icon that named its own colour would be the unreadable case that section is about.

A name that is neither in ICON_PATHS nor a readable path draws as an empty 24dp square rather than as nothing. The catalog closes the enum, so an unknown name is a payload the schema already refuses -- CatalogValidator is what reports it -- and a renderer that collapsed the space would shift every sibling in the row as well.

LayoutTraits.Fixed along both axes: a glyph is its square, and a row or column that stretches its children leaves it at that rather than centring it in a box it does not fill.