Reported by a consumer (axioval), optional. One degenerate input ring (`RepeatedVertex`, or near-zero area) makes the whole overlay fail. The consumer is fixing its own input side regardless (axioval#210).
Proposal
An explicit opt-in option (never the default) that drops degenerate input rings and reports each one dropped: ring index, reason (repeated vertex, area below a stated threshold) and the area removed. The overlay of the remaining rings is then exact as usual. The default behaviour stays a named refusal.
Done when
With the option on, an overlay with one degenerate ring among valid ones returns the result of the valid rings plus a report naming the dropped ring. With the option off, it is refused as today. The threshold for "near-zero area" is explicit and documented.
Reported by a consumer (axioval), optional. One degenerate input ring (`RepeatedVertex`, or near-zero area) makes the whole overlay fail. The consumer is fixing its own input side regardless (axioval#210).
Proposal
An explicit opt-in option (never the default) that drops degenerate input rings and reports each one dropped: ring index, reason (repeated vertex, area below a stated threshold) and the area removed. The overlay of the remaining rings is then exact as usual. The default behaviour stays a named refusal.
Done when
With the option on, an overlay with one degenerate ring among valid ones returns the result of the valid rings plus a report naming the dropped ring. With the option off, it is refused as today. The threshold for "near-zero area" is explicit and documented.