VarBuilder.flattenTag

private var flattenTag(VarFrame frame) @safe

Flattens a tag frame into a var according to SDL tag rules.

The flattening depends on the combination of values, attributes, and children:

  • No values, no attrs, no children → empty object
  • Single value, no attrs, no children → just the value
  • Multiple values, no attrs, no children → array
  • Single value + children → value becomes nested key
  • Attributes only → object with @-prefixed keys
  • Value + attributes → #value + @-prefixed keys
  • Multiple values + attrs/children → #values array + other keys

Namespace, if present, is stored under "#ns".

Parameters

frameThe tag frame to flatten.

Returns

The flattened var.