WordPress renderiza los menús a través de wp_nav_menu y Walker_Nav_Menu, que emiten markup como efecto secundario de recorrer el árbol. Cambiar ese markup implica hacer una subclase del walker y sobrescribir concatenaciones de strings, y por eso tantos themes enterprise arrastran una clase walker que nadie quiere modificar.
Log1x/Navi construye el mismo menú como un array estructurado: ítems, hijos, clases, estados activos. El theme renderiza eso como componentes. Estructura y markup quedan separados, así agregar un campo de ícono o un atributo ARIA es un cambio en un componente, no una reescritura del renderer. Es un paquete de Composer open source, y es lo que corre este sitio.