{{ header }}#nullable enable

using System;

namespace {{ namespace }};

/// <summary>Context passed to every visitor callback.</summary>
public record NodeContext(
    /// <summary>Coarse-grained node type tag.</summary>
    NodeType NodeType,
    /// <summary>HTML element tag name (e.g. "div").</summary>
    string TagName,
    /// <summary>DOM depth (0 = root).</summary>
    ulong Depth,
    /// <summary>0-based sibling index.</summary>
    ulong IndexInParent,
    /// <summary>Parent element tag name, or null at the root.</summary>
    string? ParentTag,
    /// <summary>True when this element is treated as inline.</summary>
    bool IsInline
);
