encodeCanvasScene function
Checks runtime integrity before recursive encoding to the current format.
The guard checks cycles, JSON payloads, and node discriminator consistency. Package serializers own canonical wire structure; it is not scanned again.
Implementation
Map<String, Object?> encodeCanvasScene(CanvasSceneDocument scene) {
requireCanvasSceneIntegrity(scene);
return Map<String, Object?>.from(scene.toJson())
..['sceneFormatVersion'] = currentCanvasSceneFormatVersion;
}