@ue-shed/protocol 0.1.0-rc.4 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +1 -1
  2. package/contracts/cameras/provisioning/v1/README.md +12 -0
  3. package/contracts/cameras/provisioning/v1/fixtures/provision-request-valid.json +14 -0
  4. package/contracts/cameras/provisioning/v1/provision-request.schema.json +90 -0
  5. package/contracts/cameras/review/v1/README.md +39 -10
  6. package/contracts/cameras/review/v1/assessment-capabilities.schema.json +86 -0
  7. package/contracts/cameras/review/v1/capture-request.schema.json +173 -19
  8. package/contracts/cameras/review/v1/capture-response.schema.json +576 -1
  9. package/contracts/cameras/review/v1/fixtures/assessment-capabilities.json +36 -0
  10. package/contracts/cameras/review/v1/fixtures/capture-area.json +42 -0
  11. package/contracts/cameras/review/v1/fixtures/capture-assessed-v2.json +56 -0
  12. package/contracts/cameras/review/v1/fixtures/capture-assessed.json +55 -0
  13. package/contracts/cameras/review/v1/fixtures/capture-clear-failed.json +62 -0
  14. package/contracts/cameras/review/v1/fixtures/capture-clear.json +72 -0
  15. package/contracts/cameras/review/v1/fixtures/capture-request-area-valid.json +29 -0
  16. package/contracts/cameras/review/v1/fixtures/capture-request-clear-valid.json +30 -0
  17. package/contracts/cameras/review/v1/fixtures/capture-request-relative-valid.json +29 -0
  18. package/contracts/cameras/review/v1/fixtures/invalid-assessment-capabilities-supported-without-effective-method.json +14 -0
  19. package/contracts/scenarios/live/v1/README.md +9 -0
  20. package/contracts/scenarios/live/v1/fixtures/cancel-accepted.json +8 -0
  21. package/contracts/scenarios/live/v1/fixtures/execution-request.json +44 -0
  22. package/contracts/scenarios/live/v1/fixtures/prepare-prepared.json +9 -0
  23. package/contracts/scenarios/live/v1/fixtures/start-accepted.json +10 -0
  24. package/contracts/scenarios/live/v1/fixtures/status-active.json +11 -0
  25. package/contracts/scenarios/live/v1/fixtures/status-rejected-stale.json +10 -0
  26. package/contracts/scenarios/live/v1/fixtures/status-terminal-cancelled.json +33 -0
  27. package/contracts/scenarios/live/v1/fixtures/status-terminal-missing-divergence.json +54 -0
  28. package/contracts/uasset-io/v1/README.md +34 -0
  29. package/contracts/uasset-io/v1/event.schema.json +6779 -0
  30. package/contracts/uasset-io/v1/fixtures/invalid/event-result-unknown-kind.json +7 -0
  31. package/contracts/uasset-io/v1/fixtures/invalid/event-unknown-kind.json +6 -0
  32. package/contracts/uasset-io/v1/fixtures/invalid/project-index-page-unbounded.json +7196 -0
  33. package/contracts/uasset-io/v1/fixtures/invalid/project-index-query-oversize-limit.json +15 -0
  34. package/contracts/uasset-io/v1/fixtures/invalid/request-wrong-major.json +6 -0
  35. package/contracts/uasset-io/v1/fixtures/valid/accepted-event.json +7 -0
  36. package/contracts/uasset-io/v1/fixtures/valid/authoring-result-event.json +26 -0
  37. package/contracts/uasset-io/v1/fixtures/valid/extract-text-occurrence-result-event.json +26 -0
  38. package/contracts/uasset-io/v1/fixtures/valid/extract-text-result-event.json +23 -0
  39. package/contracts/uasset-io/v1/fixtures/valid/extract-text-summary-result-event.json +23 -0
  40. package/contracts/uasset-io/v1/fixtures/valid/extract-texture-record-result-event.json +29 -0
  41. package/contracts/uasset-io/v1/fixtures/valid/inspect-result-event.json +29 -0
  42. package/contracts/uasset-io/v1/fixtures/valid/partial-completed-event.json +7 -0
  43. package/contracts/uasset-io/v1/fixtures/valid/project-index-accepted-event.json +7 -0
  44. package/contracts/uasset-io/v1/fixtures/valid/project-index-page-result-event.json +28 -0
  45. package/contracts/uasset-io/v1/fixtures/valid/project-index-progress-event.json +9 -0
  46. package/contracts/uasset-io/v1/fixtures/valid/project-index-query-request.json +19 -0
  47. package/contracts/uasset-io/v1/fixtures/valid/project-index-rebuild-request.json +13 -0
  48. package/contracts/uasset-io/v1/fixtures/valid/project-index-refresh-request.json +13 -0
  49. package/contracts/uasset-io/v1/fixtures/valid/project-index-stale-generation-failed-event.json +11 -0
  50. package/contracts/uasset-io/v1/fixtures/valid/project-index-status-request.json +13 -0
  51. package/contracts/uasset-io/v1/fixtures/valid/project-index-status-result-event.json +22 -0
  52. package/contracts/uasset-io/v1/fixtures/valid/project-index-summary-result-event.json +25 -0
  53. package/contracts/uasset-io/v1/fixtures/valid/saved-world-result-event.json +27 -0
  54. package/contracts/uasset-io/v1/fixtures/valid/scan-asset-result-event.json +47 -0
  55. package/contracts/uasset-io/v1/fixtures/valid/scan-inventory-result-event.json +15 -0
  56. package/contracts/uasset-io/v1/fixtures/valid/scan-request.json +17 -0
  57. package/contracts/uasset-io/v1/fixtures/valid/scan-summary-result-event.json +24 -0
  58. package/contracts/uasset-io/v1/request.schema.json +512 -0
  59. package/dist/companion.d.ts +16 -0
  60. package/dist/companion.d.ts.map +1 -1
  61. package/dist/companion.js +8 -0
  62. package/dist/companion.js.map +1 -1
  63. package/dist/editor-asset-navigation.d.ts +63 -0
  64. package/dist/editor-asset-navigation.d.ts.map +1 -0
  65. package/dist/editor-asset-navigation.js +32 -0
  66. package/dist/editor-asset-navigation.js.map +1 -0
  67. package/dist/index.d.ts +4 -0
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +4 -0
  70. package/dist/index.js.map +1 -1
  71. package/dist/saved-world.d.ts +223 -0
  72. package/dist/saved-world.d.ts.map +1 -0
  73. package/dist/saved-world.js +82 -0
  74. package/dist/saved-world.js.map +1 -0
  75. package/dist/uasset-inspection.d.ts +1037 -0
  76. package/dist/uasset-inspection.d.ts.map +1 -0
  77. package/dist/uasset-inspection.js +446 -0
  78. package/dist/uasset-inspection.js.map +1 -0
  79. package/dist/uasset-io.d.ts +2602 -0
  80. package/dist/uasset-io.d.ts.map +1 -0
  81. package/dist/uasset-io.js +306 -0
  82. package/dist/uasset-io.js.map +1 -0
  83. package/package.json +3 -2
@@ -0,0 +1,15 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "limits": {},
4
+ "operation": {
5
+ "cacheRoot": "C:/Caches/project-index",
6
+ "kind": "project_index_query",
7
+ "query": {
8
+ "expectedGeneration": 1,
9
+ "kind": "maps",
10
+ "limit": 1025,
11
+ "projectId": "fixture-project"
12
+ }
13
+ },
14
+ "requestId": "project-index-query-oversize"
15
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 2, "minor": 0 } },
3
+ "limits": {},
4
+ "operation": { "assetPath": "C:/project/Content/A.uasset", "kind": "inspect" },
5
+ "requestId": "request-001"
6
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "accepted",
4
+ "operation": "scan",
5
+ "requestId": "request-001",
6
+ "sequence": 0
7
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 2,
6
+ "result": {
7
+ "kind": "authoring",
8
+ "snapshot": {
9
+ "contract": { "name": "unreal-authoring", "version": { "major": 2, "minor": 1 } },
10
+ "authority": { "kind": "project_files", "packageName": "/Game/Example" },
11
+ "completeness": "complete",
12
+ "diagnostics": [],
13
+ "fingerprint": { "status": "unavailable", "reason": "not_available" },
14
+ "producer": { "name": "fixture", "version": "1" },
15
+ "table": {
16
+ "kind": "data_table",
17
+ "objectPath": "/Game/Example.Example",
18
+ "rowStruct": "/Script/Example.Row",
19
+ "parentTables": [],
20
+ "rows": [],
21
+ "packageName": "/Game/Example",
22
+ "schema": { "status": "unavailable", "reason": "not_available" }
23
+ }
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 9,
6
+ "result": {
7
+ "kind": "extract_text",
8
+ "event": {
9
+ "event": "text_occurrence",
10
+ "schema_version": 1,
11
+ "path": "Content/Example.uasset",
12
+ "fileBytes": 128,
13
+ "occurrence": {
14
+ "source": "Hello",
15
+ "identity": { "status": "resolved", "namespace": "Example", "key": "Hello" },
16
+ "location": {
17
+ "kind": "asset_property",
18
+ "object_path": "/Game/Example.Example",
19
+ "class_path": "/Script/Example.Example",
20
+ "property_path": "Title"
21
+ },
22
+ "edit_capability": "source_editable"
23
+ }
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 6,
6
+ "result": {
7
+ "kind": "extract_text",
8
+ "event": {
9
+ "event": "text_summary",
10
+ "cacheHits": 0,
11
+ "depth": "text",
12
+ "diagnostics": [],
13
+ "emittedAssets": 0,
14
+ "failedAssets": 0,
15
+ "partialAssets": 0,
16
+ "projectRoot": ".",
17
+ "roots": [],
18
+ "scannedAssets": 0,
19
+ "schema_version": 8,
20
+ "skippedAssets": 0
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 7,
6
+ "result": {
7
+ "kind": "extract_texture",
8
+ "event": {
9
+ "event": "texture_summary",
10
+ "cacheHits": 0,
11
+ "depth": "texture",
12
+ "diagnostics": [],
13
+ "emittedAssets": 0,
14
+ "failedAssets": 0,
15
+ "partialAssets": 0,
16
+ "projectRoot": ".",
17
+ "roots": [],
18
+ "scannedAssets": 0,
19
+ "schema_version": 8,
20
+ "skippedAssets": 0
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 10,
6
+ "result": {
7
+ "kind": "extract_texture",
8
+ "event": {
9
+ "event": "texture_record",
10
+ "schema_version": 1,
11
+ "path": "Content/Example.uasset",
12
+ "record": {
13
+ "object_path": "/Game/Example.Example",
14
+ "package_file_bytes": { "status": "available", "source": "file", "value": 128 },
15
+ "dimensions": {
16
+ "status": "available",
17
+ "source": "serialized",
18
+ "value": { "width": 64, "height": 64 }
19
+ },
20
+ "source_format": { "status": "unavailable", "reason": "not_serialized" },
21
+ "source_mips": { "status": "unavailable", "reason": "wrong_value_kind" },
22
+ "compression": { "status": "unavailable", "reason": "missing_source" },
23
+ "s_rgb": { "status": "available", "source": "serialized", "value": true },
24
+ "texture_group": { "status": "unavailable", "reason": "not_serialized" },
25
+ "mip_generation": { "status": "unavailable", "reason": "not_serialized" }
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 1,
6
+ "result": {
7
+ "kind": "inspect",
8
+ "inspection": {
9
+ "assets": [],
10
+ "decode_errors": [],
11
+ "package": {
12
+ "name": "/Game/Example",
13
+ "package_flags": 0,
14
+ "summary_size": 64,
15
+ "total_header_size": 128,
16
+ "version": {
17
+ "legacy_file": 0,
18
+ "legacy_ue3": 0,
19
+ "ue4": 1,
20
+ "ue5": 0,
21
+ "licensee": 0
22
+ }
23
+ },
24
+ "path": "Content/Example.uasset",
25
+ "schema_version": 8,
26
+ "status": "ok"
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "completed",
4
+ "outcome": "partial",
5
+ "requestId": "request-001",
6
+ "sequence": 3
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "kind": "accepted",
4
+ "operation": "project_index_refresh",
5
+ "requestId": "project-index-refresh-001",
6
+ "sequence": 0
7
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "kind": "result",
4
+ "requestId": "project-index-query-001",
5
+ "result": {
6
+ "kind": "project_index_page",
7
+ "page": {
8
+ "generation": 3,
9
+ "items": [
10
+ {
11
+ "kind": "map",
12
+ "mapPath": "Content/Maps/L_Fixture.umap",
13
+ "packageName": "/Game/Maps/L_Fixture"
14
+ },
15
+ {
16
+ "classes": ["/Script/Engine.DataTable"],
17
+ "kind": "header",
18
+ "packageName": "/Game/Data/DT_Items",
19
+ "packagePath": "Content/Data/DT_Items.uasset",
20
+ "serializedNames": ["TextProperty"]
21
+ }
22
+ ],
23
+ "nextCursor": "2",
24
+ "projectId": "fixture-project"
25
+ }
26
+ },
27
+ "sequence": 1
28
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "completedItems": 12,
4
+ "kind": "progress",
5
+ "phase": "reading_headers",
6
+ "requestId": "project-index-refresh-001",
7
+ "sequence": 1,
8
+ "totalItems": 40
9
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "limits": {
4
+ "maximumOutputBytes": 1048576,
5
+ "timeoutMs": 30000
6
+ },
7
+ "operation": {
8
+ "cacheRoot": "C:/Caches/project-index",
9
+ "kind": "project_index_query",
10
+ "query": {
11
+ "expectedGeneration": 3,
12
+ "kind": "exact_classes",
13
+ "limit": 50,
14
+ "projectId": "fixture-project",
15
+ "values": ["/Script/Engine.DataTable"]
16
+ }
17
+ },
18
+ "requestId": "project-index-query-001"
19
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "limits": {
4
+ "maximumOutputBytes": 1048576,
5
+ "timeoutMs": 30000
6
+ },
7
+ "operation": {
8
+ "cacheRoot": "C:/Caches/project-index",
9
+ "kind": "project_index_rebuild",
10
+ "projectRoot": "C:/project"
11
+ },
12
+ "requestId": "project-index-rebuild-001"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "limits": {
4
+ "maximumOutputBytes": 1048576,
5
+ "timeoutMs": 30000
6
+ },
7
+ "operation": {
8
+ "cacheRoot": "C:/Caches/project-index",
9
+ "kind": "project_index_refresh",
10
+ "projectRoot": "C:/project"
11
+ },
12
+ "requestId": "project-index-refresh-001"
13
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "actualGeneration": 4,
4
+ "code": "stale_generation",
5
+ "expectedGeneration": 3,
6
+ "kind": "failed",
7
+ "message": "The Project Index generation changed since this query started.",
8
+ "requestId": "project-index-query-001",
9
+ "retrySafe": true,
10
+ "sequence": 1
11
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "limits": {
4
+ "maximumOutputBytes": 1048576,
5
+ "timeoutMs": 30000
6
+ },
7
+ "operation": {
8
+ "cacheRoot": "C:/Caches/project-index",
9
+ "kind": "project_index_status",
10
+ "projectRoot": "C:/project"
11
+ },
12
+ "requestId": "project-index-status-001"
13
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "kind": "result",
4
+ "requestId": "project-index-status-001",
5
+ "result": {
6
+ "kind": "project_index_status",
7
+ "status": {
8
+ "status": "ready",
9
+ "summary": {
10
+ "changedPackages": 0,
11
+ "completeness": "complete",
12
+ "diagnostics": [],
13
+ "generation": 3,
14
+ "mapCount": 1,
15
+ "packageCount": 40,
16
+ "projectId": "fixture-project",
17
+ "removedPackages": 0
18
+ }
19
+ }
20
+ },
21
+ "sequence": 1
22
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 1 } },
3
+ "kind": "result",
4
+ "requestId": "project-index-refresh-001",
5
+ "result": {
6
+ "kind": "project_index_summary",
7
+ "summary": {
8
+ "changedPackages": 2,
9
+ "completeness": "complete",
10
+ "diagnostics": [
11
+ {
12
+ "code": "header_partial",
13
+ "message": "One package header decoded incompletely.",
14
+ "retrySafe": true
15
+ }
16
+ ],
17
+ "generation": 4,
18
+ "mapCount": 1,
19
+ "packageCount": 40,
20
+ "projectId": "fixture-project",
21
+ "removedPackages": 1
22
+ }
23
+ },
24
+ "sequence": 2
25
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 8,
6
+ "result": {
7
+ "kind": "saved_world",
8
+ "world": {
9
+ "authority": { "kind": "project_files", "mapPackage": "/Game/Maps/Example" },
10
+ "completeness": "complete",
11
+ "contract": {
12
+ "name": "unreal-saved-world",
13
+ "version": { "major": 1, "minor": 0 }
14
+ },
15
+ "diagnostics": [],
16
+ "mapPath": "Content/Maps/Example.umap",
17
+ "sourceKind": "level",
18
+ "actors": [],
19
+ "summary": {
20
+ "failedPackages": 0,
21
+ "partialPackages": 0,
22
+ "resolvedActors": 0,
23
+ "scannedPackages": 0
24
+ }
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 3,
6
+ "result": {
7
+ "kind": "scan_asset",
8
+ "entry": {
9
+ "depth": "full",
10
+ "fileBytes": 128,
11
+ "inspection": {
12
+ "assets": [
13
+ {
14
+ "kind": "UObject",
15
+ "object_path": "/Game/Example.Example",
16
+ "class_path": "/Script/Example.Example",
17
+ "properties": [
18
+ {
19
+ "name": "Title",
20
+ "type": "StrProperty",
21
+ "value_kind": "string",
22
+ "value": "hello"
23
+ }
24
+ ]
25
+ }
26
+ ],
27
+ "decode_errors": [],
28
+ "package": {
29
+ "name": "/Game/Example",
30
+ "package_flags": 0,
31
+ "summary_size": 64,
32
+ "total_header_size": 128,
33
+ "version": {
34
+ "legacy_file": 0,
35
+ "legacy_ue3": 0,
36
+ "ue4": 1,
37
+ "ue5": 0,
38
+ "licensee": 0
39
+ }
40
+ },
41
+ "path": "Content/Example.uasset",
42
+ "schema_version": 8,
43
+ "status": "ok"
44
+ }
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 4,
6
+ "result": {
7
+ "kind": "scan_inventory",
8
+ "entry": {
9
+ "kind": "package",
10
+ "modifiedMs": 0,
11
+ "path": "Content/Example.uasset",
12
+ "size": 128
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "limits": {
4
+ "concurrency": 4,
5
+ "maximumAssets": 1024,
6
+ "maximumOutputBytes": 67108864,
7
+ "timeoutMs": 30000
8
+ },
9
+ "operation": {
10
+ "depth": "header",
11
+ "inventory": true,
12
+ "kind": "scan",
13
+ "paths": [],
14
+ "projectRoot": "C:/project"
15
+ },
16
+ "requestId": "request-001"
17
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "contract": { "name": "uasset-io", "version": { "major": 1, "minor": 0 } },
3
+ "kind": "result",
4
+ "requestId": "request-001",
5
+ "sequence": 5,
6
+ "result": {
7
+ "kind": "scan_summary",
8
+ "summary": {
9
+ "cacheHits": 0,
10
+ "depth": "full",
11
+ "diagnostics": [],
12
+ "emittedAssets": 0,
13
+ "failedAssets": 0,
14
+ "inventoryComplete": true,
15
+ "inventoryFiles": 0,
16
+ "partialAssets": 0,
17
+ "projectRoot": ".",
18
+ "roots": [],
19
+ "scannedAssets": 0,
20
+ "schema_version": 8,
21
+ "skippedAssets": 0
22
+ }
23
+ }
24
+ }