Findings — render: showing it to a person
How the API behaves in this part of a session. Each rule is the entry's own Teaches, copied whole.
010_status_icons
Status.icon is an entity link under relationships; display_type picks one of three renderings; url is empty unless image_data is asked for beside it; the stock sprite is in the site's own stylesheet.
Status.iconis an entity link, so it is returned underrelationships, neverattributes. Readattributesalone and every icon looks null (probe 004).display_typepicks one of three renderings:display_typerendering image_mapstock icon. urlis empty; address it byimage_map_key, such asicon_aprimagecustom upload. urlis a self-containeddata:image/png;base64URI whose newlines must be stripped, andimage_dataholds the same byteshtmlcustom text badge. htmlis the label, and there is no imageAsk for
image_databesideurl.?fields=display_type,urlreturns""for theimagerendering and the same request withimage_dataadded returns the data URI, so narrowing the projection is what empties the field, and""is indistinguishable from "this icon has no image".recipes/010measures every combination and draws the whole picker from them.bg_coloris comma-separated RGB ("25,118,27"), not hex, and draws a badge on its own with no icon fetched: the cheapest correct rendering.The
image_mapsprite is not in the API. Nothing in/entity/iconsnames a stylesheet or an image, so do not expect the REST API to hand you a stock icon.image_map_keyis a CSS class. On the probed site the rule is in the web app's/dist/production/stylesheets/login.cssand points at/images/sg_icon_image_map.png?<hash>with a per-icon background offset (div.icon_apr->-89px -11px); both answered a GET with noAuthorizationheader at 200.Those two paths are undocumented and were found by reading the site's own stylesheet, so a client must rediscover them the same way. Fetch the page's stylesheet, match
.<image_map_key>, and take theurl()and the offset from the rule. Hardcoding either path breaks on a differently-versioned deployment.
corpus/findings/010_status_icons.md