Middle of edge is eventually here. Also the code closes to get shape to the final code. There are fixes on crashes (sometimes you will get recursive call on stack and crashes, hope to target this bug). Also I found a limitation on design that I will try to fix it as I wanted to align to horizontal line/vertical line and this cannot be done both in case if you want to put a point just on the both intersections (probably an extra solver type should be added, like there is a SolverPoint).
This new Solver functionality enable adding constraints that make sense (like end of a line, middle of an edge, I will add very soon: middle of rectangle, middle of rectangle2p - the 2D rectangle) but in a lot of other cases, those constraints are not that important: for instance in case of spline's points, or in cases that the code gets complex on adding a constraint that rarely is needed (middle of base of the pyramid!?). For those cases the old solver code was added nicely in the current design as a fallback code.