/** * The item-presenter contract (C24). * * One domain, one presenter, built from that domain's variant constant. Every * surface that has to render "a set of things you pick one of" reads the same * presenter instead of restating the set: * * - `toOptions()` produces the `{value,label}[]` a settings `select` field needs. * - `ResourceSelector` renders rows from `items` + `present()`. * - Future command-palette entries ("Set theme: …") derive from the same pair. * * `present()` returns **data, not markup**, and that is forced rather than * chosen: `SettingsFields` renders each option as a native `