web: resolve node.source by node id; render latestPost from node.loaded master
Move the wired card from the cardType-keyed additionalData stopgap to the node model: stamp a declarative node.source (migrate-on-read from cardType), resolve the graph via @blento/sources.resolveNodes keyed by node id, and hand the component its data as loaded[nodeId] (data.loaded, threaded through ContextProvider). Sourced cards skip the bespoke loadAdditionalData; a CacheService->CacheAdapter bridge preserves KV caching. loaded is runtime-only (never written back). Component falls back to additionalData for entry points that don't resolve the graph. Render gated at 0px / 0 content diffs on flo-bit.dev (a live site with the card); SSR HTML carries the post with additionalData absent, proving the node.loaded path. sources 20/20, web check 0/0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>