/** * Config types for the `xMarketing` app.config.ts namespace. * * Exported so consumers and sibling layers can reference the shape * (config-typing convention, plan 21 ยง3). This is the *input* contract โ€” * every field is optional so site overrides can set any subset. */ export interface XMarketingNavLink { label: string; to?: string; target?: string; children?: XMarketingNavLink[]; } export interface XMarketingTrackingScript { /** Stable ID โ€” used to dedupe re-injection. */ id: string; /** External script URL (e.g. "https://www.googletagmanager.com/gtag/js?id=G-XXX"). */ src?: string; /** Inline script body (no `src` required). */ inline?: string; /** Consent category gate. "necessary" fires immediately; "analytics" / "marketing" gated. */ category?: "necessary" | "analytics" | "marketing"; /** Extra attributes applied to the injected