{"nodes": [{"id": "ads_backend_frontend_api", "label": "FRONTEND_API.md - Levion content fetch reference", "file_type": "document", "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "ads_backend_frontend_api_get_api_pages", "label": "GET /api/pages (by slug, locale, depth=2)", "file_type": "concept", "source_file": "ads-backend/FRONTEND_API.md", "source_location": "## 3", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "ads_backend_frontend_api_get_api_theme_css", "label": "GET /api/theme.css theme tokens stylesheet", "file_type": "concept", "source_file": "ads-backend/FRONTEND_API.md", "source_location": "## 7", "source_url": null, "captured_at": null, "author": null, "contributor": null, "rationale": "Pre-compiled CSS custom properties so the frontend needs no JS theme fetching; /api/globals/themeTokens requires auth and returns raw JSON."}, {"id": "ads_backend_frontend_api_resolve_design_part", "label": "Client-side header/footer resolver (resolveDesignPart, displayConditions)", "file_type": "concept", "source_file": "ads-backend/FRONTEND_API.md", "source_location": "## 5", "source_url": null, "captured_at": null, "author": null, "contributor": null, "rationale": "There is no /api/headers/resolve endpoint; frontend fetches all headers/footers and mirrors the algorithm."}, {"id": "ads_backend_frontend_api_depth_2_canonical_fetch", "label": "depth=2 canonical fetch", "file_type": "rationale", "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null, "rationale": "depth=1 leaves nested page refs as bare ids; depth=3+ re-hydrates and inflates payload size."}, {"id": "ads_backend_frontend_api_localized_slug_fallback_gotcha", "label": "Localized slug WHERE ignores locale fallback", "file_type": "concept", "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null, "rationale": "Fallback applies to output fields, not WHERE conditions; use one slug for all locales, query by id, or locale=all."}, {"id": "ads_backend_frontend_api_cors_not_configured", "label": "CORS not configured in payload.config.ts", "file_type": "concept", "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null, "rationale": "Recommend cors allowlist for the frontend domain before production deploy."}, {"id": "ads_backend_frontend_api_block_renderer_reference", "label": "Block-type renderer reference (blockType -> XxxBlockData)", "file_type": "concept", "source_file": "ads-backend/FRONTEND_API.md", "source_location": "## 9", "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ads_backend_frontend_api", "target": "ads_backend_frontend_api_get_api_pages", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api", "target": "ads_backend_frontend_api_get_api_theme_css", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api", "target": "ads_backend_frontend_api_resolve_design_part", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api", "target": "ads_backend_frontend_api_depth_2_canonical_fetch", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api", "target": "ads_backend_frontend_api_localized_slug_fallback_gotcha", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api", "target": "ads_backend_frontend_api_cors_not_configured", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api", "target": "ads_backend_frontend_api_block_renderer_reference", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api", "target": "ads_backend_levion_api_routes", "relation": "cites", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api_block_renderer_reference", "target": "ads_backend_migration_notes_fm_new_block_types", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api_block_renderer_reference", "target": "ads_backend_levion_audit_block_system", "relation": "shares_data_with", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api_localized_slug_fallback_gotcha", "target": "ads_backend_locale_system_audit_payload_localization_config", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api_resolve_design_part", "target": "ads_backend_levion_api_routes_headers_footers_resolution_algorithm", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api_get_api_pages", "target": "ads_backend_levion_api_routes_pages_anonymous_read_filter", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api_resolve_design_part", "target": "ads_backend_page_meta_contract_page_type", "relation": "shares_data_with", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_frontend_api_cors_not_configured", "target": "ads_backend_levion_api_routes_rest_conventions", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": "ads-backend/FRONTEND_API.md", "source_location": null, "weight": 1.0}], "hyperedges": []}