class MAGES::SceneGraph::Editor::StoryboardSyncSerialization

Overview

Converts SceneGraph assets into storyboard domain/json payloads used by cloud sync. More…

class StoryboardSyncSerialization
{
public:
    // classes

    class DomainEdgeDto;
    class DomainGraphDto;
    class DomainGroupDto;
    class DomainNodeDto;
    class GroupInfo;

    // methods

    static string ExportDomainJson(SceneGraphData graphData);
    static string ExportDrawioXml(SceneGraphData graphData);
    static string ComputeJsonFingerprint(string jsonPayload);
    static string ComputeStructuralFingerprint(string jsonPayload);

    static string MergeLocalDomainWithCloudSupplementalData(
        string localDomainJson,
        string cloudDomainJson
    );
};

Detailed Documentation

Converts SceneGraph assets into storyboard domain/json payloads used by cloud sync.

Methods

static string ExportDomainJson(SceneGraphData graphData)

Exports the active scene graph into storyboard domain JSON.

Parameters:

graphData

The scene graph asset.

Returns:

The exported domain JSON.

static string ExportDrawioXml(SceneGraphData graphData)

Exports the active scene graph into draw.io XML.

Parameters:

graphData

The scene graph asset.

Returns:

The exported draw.io XML payload.

static string ComputeJsonFingerprint(string jsonPayload)

Computes a stable SHA-256 fingerprint for JSON payload comparison.

Parameters:

jsonPayload

The JSON payload to hash.

Returns:

Hex encoded SHA-256 fingerprint.

static string ComputeStructuralFingerprint(string jsonPayload)

Computes a structural fingerprint for storyboard sync comparison. Includes only action node IDs and action-to-action connectivity. Ignores supplemental fields (descriptions/tools/images), drawio IDs, and edge IDs.

Parameters:

jsonPayload

The domain JSON payload.

Returns:

Hex encoded SHA-256 structural fingerprint.

static string MergeLocalDomainWithCloudSupplementalData(
    string localDomainJson,
    string cloudDomainJson
)

Merges a local domain export with supplemental cloud-only storyboard data. Applies local action add/remove membership updates by action label while preserving existing cloud action content (descriptions/errors/supplemental nodes) for matches.

Parameters:

localDomainJson

Local domain JSON exported from SceneGraph.

cloudDomainJson

Cloud domain JSON from storyboard storage.

Returns:

Merged domain JSON suitable for compare/upload.