/* FORGE — space (aetherion) screens registry. Each act registers its routes here.
   Format: { path: "/build/routing", mode: "build", title: "Routing canvas", renderer: () => <Component /> }
   Wave A1+ agents push to AETHERION_ROUTES from their act registries.
   Tenant id `aetherion` is canonical; `htu220` is an alias. SPACE_ROUTES is
   kept as a back-compat alias for earlier wave code that referenced it. */

const AETHERION_ROUTES = (typeof window !== "undefined" && Array.isArray(window.AETHERION_ROUTES))
  ? window.AETHERION_ROUTES
  : (typeof window !== "undefined" && Array.isArray(window.SPACE_ROUTES))
    ? window.SPACE_ROUTES
    : [];

function registerAetherionRoute(route) {
  // De-dupe by path so reloading a single act registry doesn't double-register
  const ix = AETHERION_ROUTES.findIndex(function(r) { return r.path === route.path; });
  if (ix >= 0) {
    AETHERION_ROUTES[ix] = route;
  } else {
    AETHERION_ROUTES.push(route);
  }
  return route;
}

function listAetherionRoutes() {
  return AETHERION_ROUTES.slice();
}

if (typeof window !== "undefined") {
  window.AETHERION_ROUTES        = AETHERION_ROUTES;
  window.registerAetherionRoute  = registerAetherionRoute;
  window.listAetherionRoutes     = listAetherionRoutes;
  // Back-compat aliases for code that imported SPACE_ROUTES / registerSpaceRoute.
  window.SPACE_ROUTES            = AETHERION_ROUTES;
  window.registerSpaceRoute      = registerAetherionRoute;
  window.listSpaceRoutes         = listAetherionRoutes;
}
