At the Hugo boundary
The portable semantic node and Hugo page parameters are different interfaces.
The storage adapter maps root node: into .Params.node for templates. That
mapping should not redefine the identity of the modeled thing.
AI-assisted application
Keep provider-specific response shapes behind a small adapter when the domain actually needs a stable interface. Ask AI to generate contract tests, including failure cases. Do not conceal meaningful provider differences behind an overly broad promise of interchangeability.
A conceptual resemblance to the pattern does not mean this template system is an implementation of the original object-oriented class structure.