I changed my mind and just went for the same sorting solution as before! Maybe we'll upgrade this later, or maybe not!
Pulled MarkdownAndSafeHTML into a shared component, and use it on the single list page now too! I also simplified some of the logic for the item list, because I figure we'll have to give the trade matching stuff its own pass, y'know?
A lot is missing! No descriptions, no support for the "Not in a list" case, no scroll performance windowing, no editing! But it's a start :3