toJson method
Encodes this CockpitStepRecord as a JSON object.
Implementation
Map<String, Object?> toJson() => {
'index': index,
'actionType': actionType,
'actionArgs': actionArgs,
'observedAt': observedAt.toUtc().toIso8601String(),
if (observation != null) 'observation': observation!.toJson(),
if (snapshot != null) 'snapshot': snapshot!.toJson(),
'artifactRefs': artifactRefs.map((artifact) => artifact.toJson()).toList(),
if (commandType != null) 'commandType': commandType!.name,
if (locator != null) 'locator': locator!.toJson(),
if (locatorResolution != null)
'locatorResolution': locatorResolution!.toJson(),
if (commandError != null) 'commandError': commandError!.toJson(),
if (durationMs != null) 'durationMs': durationMs,
if (status != null) 'status': status!.name,
if (targetKind != null) 'targetKind': targetKind!.name,
if (executionPlane != null) 'executionPlane': executionPlane!.name,
if (surfaceKind != null) 'surfaceKind': surfaceKind!.name,
if (fallbackTrail.isNotEmpty)
'fallbackTrail': fallbackTrail.map((plane) => plane.name).toList(),
if (usedPlaneFallback) 'usedPlaneFallback': usedPlaneFallback,
if (requestedCaptureProfile != null)
'requestedCaptureProfile': requestedCaptureProfile!.name,
if (resolvedCaptureKind != null)
'resolvedCaptureKind': resolvedCaptureKind!.name,
'usedCaptureFallback': usedCaptureFallback,
if (degradationReason != null) 'degradationReason': degradationReason,
'captureRefs': captureRefs.map((artifact) => artifact.toJson()).toList(),
};