{#- TypeScript helper functions for tree assertions

   Static content: no context variables needed
#}
function _alefE2eText(value: unknown): string {
	return value == null ? "" : String(value);
}

function _alefE2eItemTexts(item: unknown): string[] {
	if (item == null || typeof item !== "object") {
		return [_alefE2eText(item)];
	}
	const record = item as Record<string, unknown>;
	const itemsText = Array.isArray(record.items) ? record.items.map(_alefE2eText).join(" ") : "";
	return [_alefE2eText(item), _alefE2eText(record.kind), _alefE2eText(record.name), _alefE2eText(record.source), _alefE2eText(record.alias), _alefE2eText(record.text), _alefE2eText(record.signature), itemsText];
}

function _alefE2eFormatMetadataDisplay(fm: unknown): string {
	if (fm == null) return "";
	if (typeof fm !== "object") return String(fm);
	const record = fm as Record<string, unknown>;
	const formatType = record.format_type;

	// FormatMetadata is a tagged union: { format_type: 'image', image: { format: 'PNG', ... }, ... }
	// Extract the display string based on the variant type
	if (formatType === "image" && typeof record.image === "object") {
		const imageData = record.image as Record<string, unknown>;
		if (typeof imageData.format === "string") return imageData.format;
	}

	// Fallback: return format_type variant name
	if (typeof record.format_type === "string") return record.format_type;
	return "";
}
