@elextr I don't get what point you're tying to make? Mine was that Geany's C API is basically only made of compile-time things (functions, structure fields, etc.), so there's no point in checking those at runtime: either it built and linked in which case you're all set, or it didn't and this API won't help. *Maybe* with lazy loading you could build against a newer Geany (so it finds the new symbols at build time) and load against an older one if you guarded the calls so they aren't ever actually reached, but this seems highly fragile to me if at all workable.