export interface NavItemConfig {
  /** Unique key for identifying the nav item */
  key: string;

  /** Display title for the item (shown in nav UI) */
  title?: string;

  /** Optional descriptive label (e.g. “New”, “Beta”) */
  label?: string;

  /** Optional icon name (for Phosphor icons) */
  icon?: string;

  /** The URL path this item links to */
  href?: string;

  /** Whether the item is disabled (non-clickable) */
  disabled?: boolean;

  /** Whether the link should open externally */
  external?: boolean;

  /**
   * Nested items for grouped or dropdown navigation.
   * Used for sections like “Credit” or “Tools”.
   */
  items?: NavItemConfig[];

  /**
   * Optional matcher for route-based highlighting.
   * Allows pattern matching for active route detection.
   */
  matcher?: {
    type: 'startsWith' | 'equals';
    href: string;
  };

  /**
   * Optional flag to mark section headers
   * (useful for visual grouping in sidebars).
   */
  section?: boolean;
}
