BuildLens exports the active snapshot to JSON (schema v1.1) or CSV from the toolbar. Both formats are self-contained — no external dependencies are required to read them. Exports are produced by ExportPipeline.cs in the Infrastructure layer.
When a snapshot is loaded and no analysis is running, the toolbar shows ↓ JSON and ↓ CSV. Clicking either opens a Save File dialog.
Default filename pattern:
BuildLens_{Platform}_{yyyyMMddHHmmss}.{ext}
Examples:
BuildLens_StandaloneWindows64_20250401163000.jsonBuildLens_Android_20250215091500.csv
{
"schema_version": "1.1",
"snapshot_id": "c3c3c3c3-0000-0000-0000-000000000003",
"captured_at": "2025-04-01T09:00:00.0000000Z",
"build_guid": "DemoProject_Release_20250401",
"platform": "StandaloneWindows64",
"unity_version": "6000.0.40f1",
"buildlens_version": "1.0.0",
"total_size_bytes": 156237824,
"total_compressed": 70436400,
"asset_node_count": 53,
"dependency_edge_count": 47,
"asset_nodes": [ ... ]
}| Field | Type | Description |
|---|---|---|
schema_version |
string | Export schema version. Current: "1.1" |
snapshot_id |
string | UUID assigned at analysis time |
captured_at |
string | ISO 8601 UTC |
build_guid |
string | ProductName + timestamp ticks |
platform |
string | Unity BuildTarget enum name |
unity_version |
string | Unity Editor version string |
buildlens_version |
string | BuildLens version that produced the snapshot |
total_size_bytes |
integer | Sum of all uncompressed_bytes |
total_compressed |
integer | Sum of all compressed_bytes |
asset_node_count |
integer | Node count |
dependency_edge_count |
integer | Total forward edge count across the graph |
asset_nodes |
array | Per-asset records |
{
"guid": "ccc00001",
"asset_path": "Assets/Art/Characters/Hero/hero_albedo.png",
"type": "Texture",
"uncompressed_bytes": 4194304,
"compressed_bytes": 3200000,
"compression_method": "BC7",
"dependency_status": "Complete",
"dependencies": ["ccc00016", "ccc00038"],
"dependents": [],
"dependency_count": 2,
"dependent_count": 0
}| Field | Type | Description |
|---|---|---|
guid |
string | Unity GUID (real builds) or deterministic fake GUID (demo) |
asset_path |
string | Project-relative path, always beginning with Assets/ |
type |
string | Asset category |
uncompressed_bytes |
integer | In-memory size after decompression. May be estimated for non-texture/audio types. |
compressed_bytes |
integer | On-disk packed size from BuildReport |
compression_method |
string | Format string. Always "None" when no compression applies — never an empty string. |
dependency_status |
string | "Complete" when edges are present; "Unavailable" for legacy snapshots |
dependencies |
string[] | Direct forward GUIDs — assets this node needs |
dependents |
string[] | Direct reverse GUIDs — assets that need this node |
dependency_count |
integer | dependencies.length |
dependent_count |
integer | dependents.length |
| Field | v1.0 | v1.1 |
|---|---|---|
dependencies per node |
Absent | Present |
dependents per node |
Absent | Present |
dependency_count / dependent_count |
Absent | Present |
dependency_edge_count (top-level) |
Absent | Present |
compression_method |
May be "" |
Always "None" or a real format string |
The CSV export is a flat table, one row per asset node. Dependency GUID lists are not included (not representable in CSV without multi-value encoding). Counts are included.
guid, asset_path, type, uncompressed_bytes, compressed_bytes,
compression_method, dependency_status, dependency_count, dependent_count
All string fields are quoted. Integer fields are unquoted. Row 1 is the header.
Both formats are written in UTF-8 without BOM. JSON strings are escaped per RFC 8259. Line endings are platform-native.