toJson method

Map<String, Object?> toJson()

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(),
};