Editor/Layers/ArchLayerHitStack.cs
namespace Sunless.Architecture;

// What the cursor actually touched on an authored layer - one entry per geometry answer, not a
// single winner. The picker ranks the stack; the tree remains the deterministic escape hatch.
public enum ArchHitChannel {
	Footprint,
	Boundary,
	Path,
	Span,
	Volume,
	Handle,
	Anchor,
}

public sealed class ArchHit {
	public ArchLayerRef Layer { get; init; }
	public ArchHitChannel Channel { get; init; }
	public float Distance { get; init; }
	public int Depth { get; init; }
	// True when the cursor is inside the authored shape itself; a wall met at arm's length is not.
	public bool Direct { get; init; }
}