Thanks everyone for your input on this! I have confirmed that GalacticOptim and Optim also meet the basic requirements and have added them to the list!
At first it was not clear if GalacticOptim supported NL constraints, but an example I found in the package’s tests proved sufficient for explaining the API.
At first it was not clear to me how Optim supported AD. Then I noticed that TwiceDifferentiable
and TwiceDifferentiableConstraints
use ForwardDiff under the hood when explicit oracle functions are not provided. Implementations can be found in NLSolversBase.