For agents, on top of README.md, which they read first.
Notes for agents
allowlist.txtis a decision, not a cache. Never admit an icon to make a test or a feature pass; the owner reviews the list, and an icon the pack adds failstests/pack.rsuntil a human decides it. The only reason to exclude one is that it does not suit a young child (alcohol, money and payments, anything adult or frightening, a rude meme, interface buttons); a test pins those. Do not write legal or rights reasoning into the list or its docs.IconIdhas no public constructor from a string that skips the allowlist. Do not add one, and do not store an icon name as a bareStringanywhere (a fact, the wire, the app). Deserialising an unknown or excluded name is an error; callers that must survive a newer peer's name (the memory file) read leniently on purpose.- The rasteriser refuses; it does not approximate. A new shape or command the pack starts using is a deliberate extension with a test, not a fallback.
- The pack in
third-party/pixel-iconsis unchanged upstream. Never edit an SVG; see its CLAUDE.md. - No I/O and no clock in the library (it builds for wasm: it is a dependency of
whiskers-core). The file system is only insrc/bin,examplesandtests. - The generated
PixelIconSet.ktis gitignored; the app'sPixelIcon.ktdraws it.