for me it comes down to: zero vs O disambiguation, good ligatures for arrows (-> =>), and comfortable line-height defaults.
been using JetBrains Mono for a while. the 1/l/I disambiguation is solid and the ligatures are not too aggressive. recently switched a few terminals to Monaspace Neon (from GitHub) which has this subtle texture that's easier on my eyes for long sessions.
the thing i care about more than people realize: how it renders on low-DPI monitors. some fonts that look great on hidpi look terrible at 1080p with no subpixel rendering. JBM handles this better than most.

