ok, I have attached one of your images with 2 colored lots to explain things.
1]
red lot :
the street egde should also be the first edge ( -> both need to be set, because the first edge defines the front of the building )
'usually', the first edge is a subset ( 1 edge ) of the shape's street edges.
but what happens if the shape were set back 5 meters ( black fat new line ) : would it still be considered as a street edge so far away from the street ?
you already see that you have to define thresholds for certain things.
2]
green lot : [ let's say the curve has 4 segments. ]
we agree that this lot's got 6 street edges, but which would be the First Edge ? in the last post, I've mentioned that in this block subdivision pattern, it usually is the shorter side, thus the shorter edge. but here we have multiple possibilities because we have multiple possible segments, a longer one ( the one we'd choose by our human intuition ) and maybe 2 of the corner segments which also face the street at a small enough angle.
you see now that you need new thresholds for a] 'street facing angle' and 'minimal Edge Length To Be Counted As First Edge'. e.g. if one tiny edge is facing the street on a better angle than the much longer edge right next to it, we'd want the longer one.
3]
in general, you see that we need to :
a] find the abstract concept behind the geometry to be able to quantize each edge individually and compared to each other
b] create the code which does the above for us
are you familiar with vector math and 'scripting in general' ?