the shape accepted everywhere a node is written (facade blocks / children of stack/section):
a plain string, or an object without type, is a text node — always normalized into a full
ReportNode by resolveNodeInput() before it reaches the registry (type on ReportNode stays
required because it's the union's discriminant — defaulting it at the type level isn't possible)
the shape accepted everywhere a node is written (facade
blocks/ children of stack/section): a plain string, or an object withouttype, is a text node — always normalized into a full ReportNode byresolveNodeInput()before it reaches the registry (typeon ReportNode stays required because it's the union's discriminant — defaulting it at the type level isn't possible)