"""Asset allowlists + validators shared between the curated marketplace mirror flow (``src/marketplace_asset_mirror.py``) and the Flea / Store upload flow (``app/api/store.py``). Two allowlists are exposed: * **Documents** — PDF, Markdown, plain text. The set is deliberately narrow so that what we serve back to users is something a browser can render directly or download cleanly. HTML and DOCX are rejected (HTML has unbounded external-asset dependencies and looks broken offline; DOCX is opaque to most readers). * **Images** — PNG, JPEG, WEBP. SVG is rejected because inline ``